Jump to content

    

Прописывание версии ПО (прошивки)

Помогло. Сейчас собирается без предупреждений. И создается два пустых байта после строки содержащей четное количество символов, и один байт если строка содержит не четное количество символов.
Строка в Си заканчивается нулевым байтом. . = ALIGN(2); при необходимости добавляет еще один, чтобы выровнять адрес на четный (команды у AVR должны располагаться по четным адресам.

 

Поэтому

*(.fw_version)
KEEP(*(.fw_version))
. = ALIGN(2);

 

перенес из начала секции .text чуть ниже после *(.vectors) KEEP(*(.vectors)).

Да, ваш файл я не посмотрел, поленился. Мне казалось очевидным, что вектора прибиты к своим адресам гвоздями и никто не догадается их сдвигать, запихнув перед ними какие-то данные..

Share this post


Link to post
Share on other sites
Да, ваш файл я не посмотрел, поленился. Мне казалось очевидным, что вектора прибиты к своим адресам гвоздями и никто не догадается их сдвигать, запихнув перед ними какие-то данные..

А я вот догадался, с вашей помощью кстати ))) Зато как красиво было ... Бинарник открываешь и в первой же строчке информация о версии прошивки. Но такой вариант оказался не рабочий.

 

Огромное спасибо, что помогли замутить такую полезную штуку. В процессе я почерпнул много нового.

Edited by Twin_by

Share this post


Link to post
Share on other sites
А я вот догадался, с вашей помощью кстати )))
"А что поделать, если хлопец одаренный?" ;)

 

Бинарник открываешь и в первой же строчке информация о версии прошивки.
Вы можете разместить ее в конце файла, тоже будет удобно искать.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this