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

 
 
> Скрипты линкера ld
EugeNNe
сообщение Mar 26 2009, 12:55
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Возникла задача подсчитать CRC прошивки загружаемой во флэш AVR и писать в CRC ну скажем в последнюю ячейку памяти. Считать СRC бинарного файла и потом отдельно загружать в память совсем неудобно. Хотелось бы что бы в WinAVR собрал проект и загрузил. Люди подсказали что такое можно сотворить если написать скрипт для линкера. Сейчас с этим разбираюсь. Но может быть кто то подобное уже делал и есть примерчик. Просто время жмёт, а доки на ld немало надо сказать...

P.S. И хотелось бы полагать что CRC надо посчитать и загрузить куда надо.
А вопрос "зачем это надо?" несущественен....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Harbour
сообщение Mar 27 2009, 11:38
Сообщение #2


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



скрипт-то тут нафиг ненужен - в makefile вставляем генератор CRC после objcopy :

%.bin: %.elf
$(OBJCOPY) -j .data -j .text -j .board -O $(FORMAT) $< $@
@gencrc $@

его задача тупо дописать CRC в конец бинарной паршивки. В проге пишем что-то типа :

....
u32 plen = (u32)((&_etext + (&_edata - &__data_start)) - (unsigned long) AT91C_IFLASH);
u16 *crc = (u16 *)((unsigned long) AT91C_IFLASH + plen);
printf("Bootloader size - %d bytes, crc - 0x%X [ %s ]\r\n", plen, *crc,
(compute_csum((unsigned char *) AT91C_IFLASH, plen) == *crc) ? "valid" : "*** invalid ***");
....

это кусман от арм, но принцип тот же и для AVR. compute_csum - это та-же f() только внутри паршивки
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- BigBolt   Скрипты линкера ld   Mar 26 2009, 12:55
- - Сергей Борщ   Цитата(BigBolt @ Mar 26 2009, 14:55) Возн...   Mar 26 2009, 15:29
|- - BigBolt   Цитата(Сергей Борщ @ Mar 26 2009, 18:29) ...   Mar 26 2009, 16:58
|- - IgorKossak   Цитата(BigBolt @ Mar 26 2009, 18:58) Мне ...   Mar 26 2009, 18:31
|- - demiurg_spb   Тоже думал на эту тему. И подумалось что не надо C...   Mar 26 2009, 22:12
- - ARV   может, я недопонимаю чего-то... но как подсчет CRC...   Mar 27 2009, 08:45
|- - Сергей Борщ   Цитата(ARV @ Mar 27 2009, 10:45) не самоо...   Mar 27 2009, 09:49
- - ARV   а, ну в таком контексте - я согласен. я почему-то ...   Mar 27 2009, 10:21
|- - demiurg_spb   Цитата(Harbour @ Mar 27 2009, 14:38) это ...   Mar 27 2009, 14:04
- - Harbour   Да, правильно. Так ее туды и помещают узнает разм...   Mar 28 2009, 08:06
|- - demiurg_spb   Цитата(Harbour @ Mar 28 2009, 11:06) Мой ...   Mar 28 2009, 10:23
- - Harbour   Конец данных, обычно это и есть последнее что запи...   Mar 30 2009, 06:15
- - boldgambler   а где бы можно посмотреть примеры скрипта линкера ...   Dec 17 2009, 14:06
|- - Сергей Борщ   Цитата(boldgambler @ Dec 17 2009, 16:06) ...   Dec 17 2009, 14:30
- - boldgambler   спасибо. буду смотреть. а когда имеет смысл писать...   Dec 17 2009, 15:01
- - Сергей Борщ   Цитата(boldgambler @ Dec 17 2009, 17:01) ...   Dec 17 2009, 20:36


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

 


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


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