реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проект по заданному адресу
IJAR
сообщение Mar 6 2008, 10:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



IAR 4.12 Mega128
Есть ли компактный/простой способ разместить ВЕСЬ проект
начиная с заданного адреса (myAdres)? Если есть пожалуйста подскажите.

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

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


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 6 2008, 11:19
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



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

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


надо или не использовать библиотеку, или удалить из библиотеки ?RESET ( используя XLIB)(почему то в 4ой версии переопределение точки входа не отключает использования этого блока из библиотеки и его надо принудительно выкидывать что бы сделать свой стартап). Но при этом вы отключите переход на ?C_STARTUP, если вам стандартная инициализация нужна вам надо вставить jmp ?C_STARTUP по адресу входа, или свой стартап (достаточно только стеки проинитить все остальное можно на С сделать)
Go to the top of the page
 
+Quote Post
IJAR
сообщение Mar 6 2008, 12:42
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(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
Но может что то всплыть потом. Может есть что-либо более цивилизованное?


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 6 2008, 13:00
Сообщение #4


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



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

Это наиболее цивилизованный способ.
AVR может стартовать либо с 0, либо с бутлоадера, а это в лучшем случае ещё 4 вполне фиксированных адреса.
Хотя если у Вас уже есть код, стартующий с одного из этих адресов и в последствии осуществляющий переход на программу, лежащую по _..X_FLASH_START, то ничего такого страшного всплыть не должно.
Go to the top of the page
 
+Quote Post
IJAR
сообщение Mar 6 2008, 14:49
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



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


Да, конечно есть довольно хитрый BootLoader - на него и старт.
Просто хотелось в свободную память прописать настроечную программу и вызывать ее
при старте и зажатом Button.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 6 2008, 18:06
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



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

Вы будете смеяться, но я в своё время именно так и сделал.
Старт через бутлоадер, если стоит один джампер - тестирование, если другой - остаёмся в бутлоадере, если ни одного - рабочая программа.
В итоге, один воркспейс, три проекта.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016