wf778899 0 6 июля, 2013 Опубликовано 6 июля, 2013 · Жалоба Всем привет! Недавно начал осваивать IAR и сейчас у меня проблемка - не могу разобраться, как в нём записывать данные в EEPROM. Пишу в коде на C++ всё как в примере из хелпа: __eeprom char strHello[] = "Hello World"; Линкер тогда мне выдаёт ошибку - BE009, см. "1" во вложении. По ходу в настройках линкера надо что-то поменять. Или дать команду в его Extra Options. Подскажите, пожалуйста, с каким бубном плясать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 6 июля, 2013 Опубликовано 6 июля, 2013 · Жалоба Всем привет! Недавно начал осваивать IAR и сейчас у меня проблемка - не могу разобраться, как в нём записывать данные в EEPROM. Пишу в коде на C++ всё как в примере из хелпа: __eeprom char strHello[] = "Hello World"; Линкер тогда мне выдаёт ошибку - BE009, см. "1" во вложении. По ходу в настройках линкера надо что-то поменять. Или дать команду в его Extra Options. Подскажите, пожалуйста, с каким бубном плясать? Объявляйте массив как глобальную переменную - вынесете ее за тело функции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wf778899 0 6 июля, 2013 Опубликовано 6 июля, 2013 · Жалоба Да, мог бы и сам догадаться) Спасибо! А вот такой ещё вопрос: я выбрал формат выходного файла intel standard. IAR в этом случае генерит один файлик .hex. Поскольку я использую EEPROM в AVRке, то мне надо знать - этот файл содержит информацию о том, где должны храниться данные - на флешке или в епромке? Я на одном сайте нашёл, что при использовании епромки в контроллере нужно генерить 2 отдельных hex-файла - для епромки и для флешки. Так ли это? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 6 июля, 2013 Опубликовано 6 июля, 2013 · Жалоба Да, мог бы и сам догадаться) Спасибо! А вот такой ещё вопрос: я выбрал формат выходного файла intel standard. IAR в этом случае генерит один файлик .hex. Поскольку я использую EEPROM в AVRке, то мне надо знать - этот файл содержит информацию о том, где должны храниться данные - на флешке или в епромке? Я на одном сайте нашёл, что при использовании епромки в контроллере нужно генерить 2 отдельных hex-файла - для епромки и для флешки. Так ли это? Да, так. Но я не вспомню, как это делать. Нужно в опциях линкера, в Extra Options задавать параметры для командной строки. Посмотрите в хелпе на компилятор - там это описано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wf778899 0 6 июля, 2013 Опубликовано 6 июля, 2013 · Жалоба Я применил вот такое заклинание: -Ointel-standard,(CODE)=.flash.hex -Ointel-standard,(XDATA)=.eeprom.hex Линкер выдал глобально-фатальную ошибку, несущую смуту и хаос... Fatal Error[e62]: File name "D:\Projects\IAR EWB\Atmel\Try\Debug\Exe\try.hex" used for multiple files Вам не известно, что бы это могло означать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bbill 0 6 июля, 2013 Опубликовано 6 июля, 2013 (изменено) · Жалоба Примените вот такое "заклинание": -we133=i -Ointel-extended,(CODE)=$PROJ_DIR$\Имя.hex -Ointel-extended,(XDATA)=$PROJ_DIR$\ee_Имя.hex Использую для Си(без плюсов) Изменено 6 июля, 2013 пользователем bbill Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wf778899 0 6 июля, 2013 Опубликовано 6 июля, 2013 (изменено) · Жалоба И при этом во вкладке Output поменять расширение на hex и выбрать Format->Other->Intel-Extended ? Хотя я там уже по-разному все варианты перепробовал. Генерится всё равно только один общий hex, раздельными для епромки и для флешки там даже и не пахнет... Изменено 6 июля, 2013 пользователем Wolfenstein Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ut1wpr 0 8 июля, 2013 Опубликовано 8 июля, 2013 · Жалоба И при этом во вкладке Output поменять расширение на hex и выбрать Format->Other->Intel-Extended ? Хотя я там уже по-разному все варианты перепробовал. Генерится всё равно только один общий hex, раздельными для епромки и для флешки там даже и не пахнет... Я пользуюсь батниками. Вызов батника делаю прямо их ИАРа. Вот один из примеров: @echo off c:\postlink.exe -intel-extended -code fox48.raw fox48.hex > nul c:\postlink.exe -intel-extended -xdata fox48.raw fox48.eep > nul avreal32 +mega48 -aft2232:enable=~adbus4,~acbus2 -az -e -w -n fox48.hex fox48.eep -v exit 0 Утилита postlink к ИАРу прилагается. В закладке Linker->Output ставлю переключатель на other, Output format выбираю simple. Генерируется файл с расширением .raw С ним и расправляется postlink. Если в программе я не работаю с eeprom, выбираю intel-standart. Тогда нужен иной батник. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться