mungo 0 14 марта, 2012 Опубликовано 14 марта, 2012 · Жалоба Вот обновился и впал в ступор. Раньше была директива #pragma segment="CODE_ID" и по ней я мог вычислить, где начало/конец прошивки. Мне это нужно для проверки целостности было. Это первая проблема. Взял старт код из примеров. У меня AT91SAM7X256. Все конечно заработало. Но дальше стало совсем интересно. Решил добавить формирование CRC линкером. Но как оказалось происходит ремап из адреса 0 в 0x100000. И как результат линкер впадает в ступор - генерит прошивку размером более мегабайта, и, ессно, прошивальщик грит что прошивка не влезет. Кто знает, как найти конец прошивки и сформировать вменяемую прошивку с CRC? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 14 марта, 2012 Опубликовано 14 марта, 2012 · Жалоба Сама прагма никуда не делась, а вот имена секций изменились. Читайте, там всё написано: arm\doc\EWARM_DevelopmentGuide.ENU.pdf arm\doc\EWARM_MigrationGuide.ENU.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mungo 0 14 марта, 2012 Опубликовано 14 марта, 2012 (изменено) · Жалоба Чудесно, сегменты исчезли, появились секции, и они ни к чему не обязывают.... Здорово... Хоть возвращайся к старому компилеру... А по второму вопросу? Изменено 14 марта, 2012 пользователем mungo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 14 марта, 2012 Опубликовано 14 марта, 2012 · Жалоба __section_begin("CODE_ID") __section_end("CODE_ID") Разве вам не это надо ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mungo 0 15 марта, 2012 Опубликовано 15 марта, 2012 · Жалоба __section_begin("CODE_ID") __section_end("CODE_ID") Разве вам не это надо ??? Дело в том, что таких названий секциий нету, это раз, а два - код и данные разделились как я понял, поэтому нет точного адреса окончания прошивки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 15 марта, 2012 Опубликовано 15 марта, 2012 · Жалоба Так создай и положи туда код, а так по умолчанию код находится в секции .text __section_begin - получает адресс заданной секции. __section_end - получает конец заданной секции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mungo 0 27 марта, 2012 Опубликовано 27 марта, 2012 · Жалоба Так и сделал. Появился еще вопрос - можно как-то глобально выравнивание поменять, не выписывая везде прагму? А то 8 байт дофига, когда работаешь с епром на 8 кб, а подбирать всюду надоедает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться