вот из какого-то FAQа
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Булатов 08 декабря 2004 г. 16:26
В ответ на: А вот какбы создать файл для записи в внутреннюю eeprom Mege использую IAR C? отправлено dmx 08 декабря 2004 г. 16:14

Q: Как получить HEX-файл для прошивки EEPROM?

Q: Что делать с Error[e133]?

Q: Завел переменную __eeprom, а данные для EEPROM в выходном файле
записались поверх векторов прерываний. Что делать?

A: К сожалению, стандарт на всеми любимый формат файлов прошивок
intel-hex, не предусматривает размещение данных для нескольких
адресных пространств с одинаковыми адресами. Линкер из v2.25
неправильно интерпретировал такую ситуацию, что приводило к записи
данных EEPROM поверх программы. Более новый линкер из v2.26 вместо
этого выдает ошибку e133. Тем не менее выход есть, и даже не один.

Некоторые программаторы требуют отдельного файла для прошивки EEPROM.
Для этого случая в v2.26 предусмотрена специальная утилита
postlink.exe. Как ей пользоваться описано в документации
(postlink.htm).

Другие программаторы (например, Sterh) ожидают увидеть данные для
EEPROM в том же файле, что и для программ, но по адресам,
расположенным сразу за концом памяти программ. Такой вариант IARом не
предусмотрен, однако IAR имеет все необходимое, чтобы сгенерить такой
файл.

Первым делом надо избавиться от ошибки e133 (для 2.26). К счастью, IAR
предусмотрел возможность замаскировать любую ошибку. Добавляем ключик

-we133=i

Теперь перемещаем EEPROM по нужному нам адресу:

-M(XDATA)0-_..X_EEPROM_END=(_..X_FLASH_END+1)

Упс! В отладочной версии появилась ошибка e123. Не беда!

-we123=i

Вот и все. Да, добавлять эти строчки можно в свой XCL файл, если вы
его используете, а можно в EW23\avr\src\template\cfgXX.xcl (XX зависит
от используемой модели памяти - сами разберетесь), если вы используете
конфигурацию через меню.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru