реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> IAR 6.10 Запись в EEPROM
Wolfenstein
сообщение Jul 6 2013, 12:03
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 23-03-13
Из: Планета Земля
Пользователь №: 76 167



Всем привет! Недавно начал осваивать IAR и сейчас у меня проблемка - не могу разобраться, как в нём записывать данные в EEPROM. Пишу в коде на C++ всё как в примере из хелпа:
__eeprom char strHello[] = "Hello World";

Линкер тогда мне выдаёт ошибку - BE009, см. "1" во вложении. По ходу в настройках линкера надо что-то поменять. Или дать команду в его Extra Options. Подскажите, пожалуйста, с каким бубном плясать?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jul 6 2013, 13:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Wolfenstein @ Jul 6 2013, 18:03) *
Всем привет! Недавно начал осваивать IAR и сейчас у меня проблемка - не могу разобраться, как в нём записывать данные в EEPROM. Пишу в коде на C++ всё как в примере из хелпа:
__eeprom char strHello[] = "Hello World";

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


--------------------
Go to the top of the page
 
+Quote Post
Wolfenstein
сообщение Jul 6 2013, 13:27
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 23-03-13
Из: Планета Земля
Пользователь №: 76 167



Да, мог бы и сам догадаться) Спасибо! А вот такой ещё вопрос: я выбрал формат выходного файла intel standard. IAR в этом случае генерит один файлик .hex. Поскольку я использую EEPROM в AVRке, то мне надо знать - этот файл содержит информацию о том, где должны храниться данные - на флешке или в епромке? Я на одном сайте нашёл, что при использовании епромки в контроллере нужно генерить 2 отдельных hex-файла - для епромки и для флешки. Так ли это?
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jul 6 2013, 13:34
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



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

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


--------------------
Go to the top of the page
 
+Quote Post
Wolfenstein
сообщение Jul 6 2013, 14:13
Сообщение #5





Группа: Участник
Сообщений: 14
Регистрация: 23-03-13
Из: Планета Земля
Пользователь №: 76 167



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

-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

Вам не известно, что бы это могло означать?
Go to the top of the page
 
+Quote Post
bbill
сообщение Jul 6 2013, 18:47
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 21-10-05
Пользователь №: 9 941



Примените вот такое "заклинание":
-we133=i
-Ointel-extended,(CODE)=$PROJ_DIR$\Имя.hex
-Ointel-extended,(XDATA)=$PROJ_DIR$\ee_Имя.hex

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

Сообщение отредактировал bbill - Jul 6 2013, 18:48
Go to the top of the page
 
+Quote Post
Wolfenstein
сообщение Jul 6 2013, 19:05
Сообщение #7





Группа: Участник
Сообщений: 14
Регистрация: 23-03-13
Из: Планета Земля
Пользователь №: 76 167



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

Сообщение отредактировал Wolfenstein - Jul 6 2013, 19:12
Go to the top of the page
 
+Quote Post
ut1wpr
сообщение Jul 8 2013, 16:35
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 98
Регистрация: 20-06-05
Пользователь №: 6 150



Цитата(Wolfenstein @ Jul 6 2013, 22:05) *
И при этом во вкладке 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. Тогда нужен иной батник.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016