Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проект по заданному адресу
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
IJAR
IAR 4.12 Mega128
Есть ли компактный/простой способ разместить ВЕСЬ проект
начиная с заданного адреса (myAdres)? Если есть пожалуйста подскажите.

Рихтовка файла *.xls "загоняет" код в нужные адреса, но оствляет
Код
0x0000     JMP  ?C_STARTUP
......
?C_STARTUP:
RESTART:
myAdres  ......

по адресу 0x0000, а вот этого и хотелось бы избежать.
KRS
Цитата(IJAR @ Mar 6 2008, 13:57) *
Рихтовка файла *.xls "загоняет" код в нужные адреса, но оствляет
Код
0x0000     JMP  ?C_STARTUP

по адресу 0x0000, а вот этого и хотелось бы избежать.


надо или не использовать библиотеку, или удалить из библиотеки ?RESET ( используя XLIB)(почему то в 4ой версии переопределение точки входа не отключает использования этого блока из библиотеки и его надо принудительно выкидывать что бы сделать свой стартап). Но при этом вы отключите переход на ?C_STARTUP, если вам стандартная инициализация нужна вам надо вставить jmp ?C_STARTUP по адресу входа, или свой стартап (достаточно только стеки проинитить все остальное можно на С сделать)
IJAR
Цитата(KRS @ Mar 6 2008, 14:19) *
надо или не использовать библиотеку, или удалить из библиотеки ?RESET ( используя XLIB)(почему то в 4ой версии переопределение точки входа не отключает использования этого блока из библиотеки и его надо принудительно выкидывать что бы сделать свой стартап). Но при этом вы отключите переход на ?C_STARTUP, если вам стандартная инициализация нужна вам надо вставить jmp ?C_STARTUP по адресу входа, или свой стартап (достаточно только стеки проинитить все остальное можно на С сделать)


Спасибо!
Вроде бы помогла следующая рихтовка *.xls
Цитата
-D_..X_FLASH_START=14000/*+ Start of Flash memort*/
-Z(CODE)INTVEC=_..X_FLASH_START-(_..X_FLASH_START+_..X_INTVEC_SIZE-1) /*~*/
//-Z(CODE)TINY_F=_..X_INTVEC_SIZE-_..X_FLASH_TEND /*~*/
//-Z(CODE)NEAR_F,SWITCH,DIFUNCT=(_..X_FLASH_START+_..X_INTVEC_SIZE)-_..X_FLASH_NEND /*~*/
-Z(CODE)CODE=(_..X_FLASH_START+_..X_INTVEC_SIZE)-_..X_FLASH_END /*~*/
-Z(FARCODE)FAR_F=(_..X_FLASH_START+_..X_INTVEC_SIZE)-_..X_FLASH_END /*~*/
-Z(CODE)HUGE_F,INITTAB=(_..X_FLASH_START+_..X_INTVEC_SIZE)-_..X_FLASH_END /*~*/
//-Z(CODE)TINY_ID,NEAR_ID=_..X_INTVEC_SIZE-_..X_FLASH_END /*~*/


Проект ложится куда попросил и старт на _..X_FLASH_START
Но может что то всплыть потом. Может есть что-либо более цивилизованное?
IgorKossak
Цитата(IJAR @ Mar 6 2008, 14:42) *
Проект ложится куда попросил и старт на _..X_FLASH_START
Но может что то всплыть потом. Может есть что-либо более цивилизованное?

Это наиболее цивилизованный способ.
AVR может стартовать либо с 0, либо с бутлоадера, а это в лучшем случае ещё 4 вполне фиксированных адреса.
Хотя если у Вас уже есть код, стартующий с одного из этих адресов и в последствии осуществляющий переход на программу, лежащую по _..X_FLASH_START, то ничего такого страшного всплыть не должно.
IJAR
Цитата(IgorKossak @ Mar 6 2008, 16:00) *
Это наиболее цивилизованный способ.
AVR может стартовать либо с 0, либо с бутлоадера, а это в лучшем случае ещё 4 вполне фиксированных адреса.
Хотя если у Вас уже есть код, стартующий с одного из этих адресов и в последствии осуществляющий переход на программу, лежащую по _..X_FLASH_START, то ничего такого страшного всплыть не должно.


Да, конечно есть довольно хитрый BootLoader - на него и старт.
Просто хотелось в свободную память прописать настроечную программу и вызывать ее
при старте и зажатом Button.
IgorKossak
Цитата(IJAR @ Mar 6 2008, 16:49) *
Да, конечно есть довольно хитрый BootLoader - на него и старт.
Просто хотелось в свободную память прописать настроечную программу и вызывать ее
при старте и зажатом Button.

Вы будете смеяться, но я в своё время именно так и сделал.
Старт через бутлоадер, если стоит один джампер - тестирование, если другой - остаёмся в бутлоадере, если ни одного - рабочая программа.
В итоге, один воркспейс, три проекта.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.