Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

попробовал немного усложнить

Отправлено колян безпарольный 16 ноября 2009, г. 20:55
В ответ на: я так понял, делать надо так отправлено пользователем вот_так 16 ноября 2009, г. 20:45

Теперь 2 сегмента

define block _BOOT0_ with alignment = 8, size = 0x1000 { };
place at address mem: 0x70000 { readonly section _BOOT0_ };

define block _BOOT1_ with alignment = 8, size = 0x1000 { };
place at address mem: 0x75000 { readonly section _BOOT1_ };

place in ROM_region { readonly, block _BOOT0_, block _BOOT1_ };

в теле

void LedON(void);
void LedOFF(void);

int main()
{ IO0DIR=(1<<22);
while(1)
{if (IO0PIN&(1<<22)) LedOFF(); else LedON();
}
}

void LedON(void) @ "_BOOT0_"
{
IO0SET|=(1<<22);
}
void LedOFF(void) @ "_BOOT1_"
{
IO0CLR|=(1<<22);
}

и получается что LedON() расположилось в 0x70000, LedOFF() расположилось в 0x75000- тоесть как и просил. А вот main расположилось между ними, притом что еще дохерища места в начале.


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru