Перейти к содержанию
    

IAR 6.10 Запись в EEPROM

Всем привет! Недавно начал осваивать IAR и сейчас у меня проблемка - не могу разобраться, как в нём записывать данные в EEPROM. Пишу в коде на C++ всё как в примере из хелпа:

__eeprom char strHello[] = "Hello World";

 

Линкер тогда мне выдаёт ошибку - BE009, см. "1" во вложении. По ходу в настройках линкера надо что-то поменять. Или дать команду в его Extra Options. Подскажите, пожалуйста, с каким бубном плясать?

post-76167-1373112206_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет! Недавно начал осваивать IAR и сейчас у меня проблемка - не могу разобраться, как в нём записывать данные в EEPROM. Пишу в коде на C++ всё как в примере из хелпа:

__eeprom char strHello[] = "Hello World";

 

Линкер тогда мне выдаёт ошибку - BE009, см. "1" во вложении. По ходу в настройках линкера надо что-то поменять. Или дать команду в его Extra Options. Подскажите, пожалуйста, с каким бубном плясать?

Объявляйте массив как глобальную переменную - вынесете ее за тело функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, мог бы и сам догадаться) Спасибо! А вот такой ещё вопрос: я выбрал формат выходного файла intel standard. IAR в этом случае генерит один файлик .hex. Поскольку я использую EEPROM в AVRке, то мне надо знать - этот файл содержит информацию о том, где должны храниться данные - на флешке или в епромке? Я на одном сайте нашёл, что при использовании епромки в контроллере нужно генерить 2 отдельных hex-файла - для епромки и для флешки. Так ли это?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, мог бы и сам догадаться) Спасибо! А вот такой ещё вопрос: я выбрал формат выходного файла intel standard. IAR в этом случае генерит один файлик .hex. Поскольку я использую EEPROM в AVRке, то мне надо знать - этот файл содержит информацию о том, где должны храниться данные - на флешке или в епромке? Я на одном сайте нашёл, что при использовании епромки в контроллере нужно генерить 2 отдельных hex-файла - для епромки и для флешки. Так ли это?

Да, так. Но я не вспомню, как это делать. Нужно в опциях линкера, в Extra Options задавать параметры для командной строки. Посмотрите в хелпе на компилятор - там это описано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я применил вот такое заклинание:

 

-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

 

Вам не известно, что бы это могло означать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Примените вот такое "заклинание":

-we133=i

-Ointel-extended,(CODE)=$PROJ_DIR$\Имя.hex

-Ointel-extended,(XDATA)=$PROJ_DIR$\ee_Имя.hex

 

Использую для Си(без плюсов)

Изменено пользователем bbill

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И при этом во вкладке Output поменять расширение на hex и выбрать Format->Other->Intel-Extended ? Хотя я там уже по-разному все варианты перепробовал. Генерится всё равно только один общий hex, раздельными для епромки и для флешки там даже и не пахнет...

Изменено пользователем Wolfenstein

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И при этом во вкладке 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. Тогда нужен иной батник.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...