Jump to content

    

IAR 6.21

Вот обновился и впал в ступор. Раньше была директива #pragma segment="CODE_ID" и по ней я мог вычислить, где начало/конец прошивки. Мне это нужно для проверки целостности было.

Это первая проблема.

Взял старт код из примеров. У меня AT91SAM7X256. Все конечно заработало. Но дальше стало совсем интересно. Решил добавить формирование CRC линкером. Но как оказалось происходит ремап из адреса 0 в 0x100000. И как результат линкер впадает в ступор - генерит прошивку размером более мегабайта, и, ессно, прошивальщик грит что прошивка не влезет.

 

Кто знает, как найти конец прошивки и сформировать вменяемую прошивку с CRC?

 

Share this post


Link to post
Share on other sites

Сама прагма никуда не делась, а вот имена секций изменились.

Читайте, там всё написано:

arm\doc\EWARM_DevelopmentGuide.ENU.pdf

arm\doc\EWARM_MigrationGuide.ENU.pdf

 

Share this post


Link to post
Share on other sites

Чудесно, сегменты исчезли, появились секции, и они ни к чему не обязывают.... Здорово... Хоть возвращайся к старому компилеру...

А по второму вопросу?

Edited by mungo

Share this post


Link to post
Share on other sites

__section_begin("CODE_ID")

__section_end("CODE_ID")

 

Разве вам не это надо ???

Share this post


Link to post
Share on other sites
__section_begin("CODE_ID")

__section_end("CODE_ID")

 

Разве вам не это надо ???

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

Share this post


Link to post
Share on other sites

Так создай и положи туда код, а так по умолчанию код находится в секции .text

 

__section_begin - получает адресс заданной секции.

__section_end - получает конец заданной секции.

Share this post


Link to post
Share on other sites

Так и сделал.

Появился еще вопрос - можно как-то глобально выравнивание поменять, не выписывая везде прагму? А то 8 байт дофига, когда работаешь с епром на 8 кб, а подбирать всюду надоедает...

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