|
IAR: Расчет CRC только для секции CODE, запись размера прошивки во FLASH |
|
|
|
Sep 8 2017, 07:01
|
Группа: Участник
Сообщений: 13
Регистрация: 8-09-17
Пользователь №: 99 176

|
Приветствую! Подскажите пожалуйста:
1) Есть ли возможность в IAR настроить расчет CRC не для всей области памяти, как это делается по умолчанию путем предварительного заполнения неиспользуемой памяти значениями 0xFF, а только для той, где лежит программа? Ведь в процессе работы содержимое flash может изменяться (например, записали туда какие-то настройки) и CRC уже не совпадет. 2) Допустим генерацию CRC настроили как надо, но как определить по какому объему данных рассчитывать CRC? Может быть можно настроить линкер так, чтобы перед кодом программы он вставил размер прошивки (4 байта) или в конец программы специальный маркер из 4...8 байт, который нигде больше не встречается? Какие для этого используются директивы?
Сообщение отредактировал 93 - Sep 8 2017, 07:02
|
|
|
|
|
 |
Ответов
|
Sep 20 2017, 13:57
|
Группа: Участник
Сообщений: 13
Регистрация: 8-09-17
Пользователь №: 99 176

|
Ну что же, с маркерами разобрались, осталось разобраться с расчетом CRC: Возможно ли как-то не вручную узнать адреса сегментов, чтобы указать в параметре range откуда начать расчет CRC и где закончить? Что-то вроде: считаем от START_MARKER до END_MARKER. Можно конечно объявлять адреса явно, но это не удобно. Добавил:Впрочем, вот с такими настройками CRC считается там где надо  Код -J2,crc16={CODE}
Сообщение отредактировал 93 - Sep 20 2017, 14:09
|
|
|
|
|
Sep 25 2017, 07:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(k155la3 @ Sep 25 2017, 02:10)  Если из кода - то в переменных препроцессора надо смотреть. У препроцессора вообще никаких переменных нет, он просто делает замены одного текста на другой, ну и есть ещё выражения в директивах типа #if. В программе можно ссылаться на адреса и размеры сегментов, но их реальные значения станут известны только в результате работы линкера. Можно также сделать доступными программе константы, объявленные в .icf файле. Так что, если это действительно нужно, придётся получать реальные адреса из выхлопа линкера.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Sep 28 2017, 20:12
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(SSerge @ Sep 25 2017, 10:02)  У препроцессора вообще никаких переменных нет, . . . Да, Вы правы. Вот нашел, где я на эту тему натыкался в Help/IAR/MSP430 Код #pragma segment="MYSEGMENT" __data16 __root void * seg_addr;
int main(void) { seg_addr = __segment_begin("MYSEGMENT"); . . . MYSEGMENT должен быть определен в файле линкера.
|
|
|
|
Сообщений в этой теме
93 IAR: Расчет CRC только для секции CODE, запись размера прошивки во FLASH Sep 8 2017, 07:01 jcxz Цитата(93 @ Sep 8 2017, 14:01) Ведь в про... Sep 8 2017, 08:19 93 ЦитатаКто-ж пишет в тот-же сектор, в котором лежит... Sep 11 2017, 16:07 jcxz Цитата(93 @ Sep 11 2017, 23:07) Легко - п... Sep 12 2017, 02:55 x893 Тем более, что пишется за 10-15 минут. Sep 11 2017, 16:13 93 Цитатачто будет если попытаться записать (с предва... Sep 12 2017, 13:07 k155la3 Цитата(93 @ Sep 12 2017, 16:07) . . .
Ка... Sep 14 2017, 23:00  93 Obam, проц MSP430F5418A и MSP430F5438A
Цитата(k15... Sep 20 2017, 08:06   jcxz Цитата(93 @ Sep 20 2017, 15:06) Вот с опр... Sep 20 2017, 09:49 jcxz Цитата(93 @ Sep 12 2017, 20:07) Кто вам э... Sep 16 2017, 11:30 x893 А чем не устраивает запись CRC например после табл... Sep 16 2017, 13:56 Obam Цитата(x893 @ Sep 16 2017, 17:56) А чем н... Sep 16 2017, 14:26 93 jcxz,
Ларчик просто открывался!
Компилятор ... Sep 20 2017, 12:34 jcxz Цитата(93 @ Sep 20 2017, 19:34) Компилято... Sep 20 2017, 16:41    jcxz Цитата(k155la3 @ Sep 29 2017, 03:12) MYSE... Sep 29 2017, 05:35 93 Интересно, как правильно выбрать значения маркеров... Sep 29 2017, 19:39 k155la3 Цитата(93 @ Sep 29 2017, 22:39) Интересно... Sep 30 2017, 17:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|