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

 
 
> Контроль CRC программы из BootLoader, Помогите победить линкер пожалста
Artem
сообщение May 22 2009, 06:12
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 4-02-05
Пользователь №: 2 424



Доброго времени суток. Понадобилось добавить bootloader в рабочий проект, и просчитывать при загрузке CRC приложения. Проблема в следующем: Я хочу сделать так - чтобы линкер во время сборки приложения, считал CRC используемой памяти, последним сементом располагал значение CRC. А по фиксированному адресу в конце ROM, расположил указатель на значение CRC. После ресета, попадаем в бутлодер, который из фиксированного адреса считывает адрес значения CRC, затем просчитывает CRC до этого адреса (т.е. до значения). Вот перечитал документация на линкер, и не могу понять как такое можно сделать. Может что-то пропустил... Как это описать линкеру? С линкером экспериментов раньше не проводил, видать пришло время учиться... Заранее спасибо.
P.S. mcu - ATMega16.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Artem
сообщение May 25 2009, 03:27
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 4-02-05
Пользователь №: 2 424



Всем спасибо за ответы! Я так и сделал - заполнил неиспользуемую память RETI, считаю CRC от начала и до конца flash. Вот как сделано сейчас:
Код
-Z(CODE)INTVEC=0-53 /* 20 Interrupt vectors * 4 bytes each */

/* заполняем неиспользуемую память RETI */
-H1895 -h(CODE)0-37FD

/* Определяем сегменты */
-Z(CODE)TINY_F=54-FF
-Z(CODE)NEAR_F,SWITCH,INITTAB,DIFUNCT=54-37FD
-Z(CODE)CODE=54-37FD
-Z(CODE)TINY_ID,NEAR_ID=54-37FD
/*прилинковываем сегмент CRC */
-Z(CODE)CHECKSUM=37FE-37FF
/* считаем CRC */
-J2,crc16,,,CHECKSUM,2=(CODE)00-37FD


Просто приложение занимает только примерно половину флэшки, вот и хотел прилинковывать сегмент CRC в самый конец приложения, а не в конец флэшки(области приложения). Как прилинковать CRC в конец приложения, я понял. Но как определить из бутлодера адреc расположения CRC, вот это я не знаю... Ведь бутлодер то отдельная программа и не знает об приложении ничего. Вот и хотел расположить в конец области приложения АДРЕС расположения CRC.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение May 25 2009, 05:23
Сообщение #3


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(Artem @ May 25 2009, 06:27) *
Но как определить из бутлодера адреc расположения CRC, вот это я не знаю... Ведь бутлодер то отдельная программа и не знает об приложении ничего. Вот и хотел расположить в конец области приложения АДРЕС расположения CRC.

Этот АДРЕС нужно разместить в заголовке приложения по заранее определенному смещению. Уж об этом бутлоадеру знать можно.
Go to the top of the page
 
+Quote Post



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

 


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


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