LINUX.ORG.RU

Модификация HEX-файлов для контроллеров AVR.

 ,


0

1

Есть прошивка для контроллера AVR (8-bit) в формате Intel HEX. В ней есть два байта в виде констант.

const unsigned char snh = 0x77;
const unsigned char snl = 0x88;

Задача: модифицировать HEX файл, чтобы менять серийный номер прошивки для каждого прибора без перекомпиляции.

Вот что есть: сделал сначала прошивку с номерами 0x77 0x88 (это два отдельный байта). Затем с 0xAA 0xAA и сделал diff, чтобы было видно что изменилось в файле:

-:1006940089F0FC010385073769F40485083851F4AF
+:1006940089F0FC0103850A3A69F404850A3A51F4A5
Возникает вопрос, а где же наши 77 88 AA?

:1006940089F0FC010385 0737 69F40485 0838 51F4AF
:1006940089F0FC010385 0A3A 69F40485 0A3A 51F4A5

тут видно где они спрятались: перед ними теперь стоят 0 а затем 3, например для 0x77 это 0737.

Вторая странность это наличие 69F4 0485 между этими двумя цыфирьками.

Вопрос: почему так отображается в HEX-файле, и можно ли сделать чтобы я видел в HEX-файле тупо 7788, чтобы было легко найти?

Ответ на: комментарий от beastie

Ну так читал, к тому же там черным по белому написано что поле Data - это значения как есть, безо всяких хитростей. Мне же интересно почему unsigned char константа в HEX-файле перемешивается с 0X3Y а не идет сразу как XY. Вот в чем проблема. Равно как и подмешивание еще чего-то. Я подозреваю что 69F4 0485 это две каких-то команды.

Я подозреваю что если бы эти константы были реализованы загрузкой значения командой, то было бы так **77.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от RVictor

Хм... Хороший вопрос, надо посмотреть, сейчас нет возможности. Компилятор - проприеторастический иар, у него есть amp-файл? Хотя аналог наверняка есть.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от anonymous

мигалка светодиодом без rapsbery pi

2013

anonymous
()

Почему бы не использовать для этого специально предназначенную вещь — EEPROM?

prischeyadro ★★★☆☆
()

Если по теме, то как выглядит исходный код, содержащий номер прошивки? Какое-нибудь присвоение значения переменной?

prischeyadro ★★★☆☆
()
Ответ на: комментарий от anonymous

У меня и raspberry pi есть и кое что посильнее. AVR-ка как раз вспомогательный контроллер в системе.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

iar

А.

Ох ё.

Тогда обратитесь в службу технической поддержки Вашего поставщика программного обеспечения. При звонке не забудьте указать используемую версию программы и номер лицензионного соглашения.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

Это не я решил пользовать это проприетарное гумно. Торжественно клянусь что если мне поручат начать новый проект - там будет gcc и ничто другое.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

STM32 не используешь часом? А то я уже второй день бьюсь, да все никак не работает у меня ethernet на 407-мом.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от I-Love-Microsoft

У STM очень заманчивые цены на ARM-микроконтроллеры. Дешевле я не встречал.

Eddy_Em ☆☆☆☆☆
()
3 февраля 2014 г.
24 октября 2014 г.
Ответ на: комментарий от I-Love-Microsoft

Отлично. MAP-то удалось получить?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.