Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как в ИАР задать пкременную в eeprom
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
arttab
объявляю так
#pragma location=0x0100
const __eeprom unsigned char Zone1 = 10;

а как получить данные для прошивки eeproma?
Pat
Цитата(arttab @ Oct 26 2005, 12:42)
объявляю так
#pragma location=0x0100
const __eeprom unsigned char Zone1 = 10;

а как получить данные для прошивки eeproma?
*

Посмтрите описание на прогу $\IAR\avr\bin\postlink.exe
Сама дока лежит здесь $\IAR\avr\doc\postlink.htm
Обратите еще внимание на $\IAR\avr\bin\postlink.bat
Это вам поможет
arttab
Хороший ответ для знающих инглиш на хорошем уровне, но не читавших доки по иару.
Прошу объяснить для плохо знающего английский (для меня).
Еще вопрос Пони и Аврил по разному работают с hex? Т.е. где они ожидают найти данные для еепрома? У аврила можно отдельно подключить прошивку еепрома, а единым файлом не поймет?

Начел совет выставить интел расширеный и добавить в экстраопции -M(XDATA)0-_..X_EEPROM_END=(_..X_FLASH_END+1).
Что то не получилось.
dxp
Цитата(Pat @ Oct 26 2005, 17:04)
Цитата(arttab @ Oct 26 2005, 12:42)
объявляю так
#pragma location=0x0100
const __eeprom unsigned char Zone1 = 10;

а как получить данные для прошивки eeproma?
*

Посмтрите описание на прогу $\IAR\avr\bin\postlink.exe
Сама дока лежит здесь $\IAR\avr\doc\postlink.htm
Обратите еще внимание на $\IAR\avr\bin\postlink.bat
Это вам поможет
*


Postlink уже давно obsolete. Все разруливается через опции линкера. Подробнее не скажу, копаться надо, давно было, все уже забыл. smile.gif
arttab
чего у меня получилось:
если задать так
#pragma location=0x0100
const __eeprom unsigned char Zone1 = 10;
, то это константа по заданному сной адресу.
а если так
__eeprom unsigned char Zone1=100;
, то это переменная с заданным значением где то в еепром.

но сейчас ругается
Error[e133]: The output format intel-extended cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted

пробовал в экстра опциях
-Ointel-extended,(CODE)=%PROJ_NAME%.hex
-Ointel-extended,(XDATA)=ee_%PROJ_NAME%.dat
не помогает.
или все правильно, а глючит иар на имеено этом проекте?
arttab
выставил в debug info и все пошло

А создать переменную по заданному адресу никак?
nml
Цитата(arttab @ Oct 28 2005, 05:53)
выставил в debug info и все пошло

А создать переменную по заданному адресу никак?
*

Код
-we133=i
-Ointel-extended,(CODE)=$PROJ_DIR$\rxd8535.hex
-Ointel-extended,(XDATA)=$PROJ_DIR$\ee_rxd8535.hex

Это по линковке...
Код
volatile __eeprom char e_stupVN  @0x17 = 0x90;

Это по адресу
_artem_
ya vose ne ispolziyu iar dlya eeprom hex'a. Sdelal svoy initialayzer . On rabotayet s simvolami , mozno ukazivat adresa v eeprome stringi i vse tomu podobnoe - programma preobrazovivaet ix v intel format .A vixodnoy file ya potom zapisivayu programmatorom. Naverno bilo len razboratsya v IAR'e )).
Gematogen
Цитата(arttab @ Oct 28 2005, 06:53)
выставил в debug info и все пошло

А создать переменную по заданному адресу никак?
*



Я у себя в IAR(4.11A) поступаю следующим образом:
#pragma location=0x00
__eeprom unsigned long BOOT_FLAG=0xХХХХХХХХ;
#pragma location=0x04
__eeprom unsigned long APP_SECT_CRC1=0xХХХХХХХХ;

ДЛЯ ЛИНКЕРА:

выходной формат:
debug information for C-SPY

в экстра опшинсах линкера:
-Ointel-extended,(CODE)=$PROJ_DIR$\Release\Exe\code.hex
-Ointel-extended,(XDATA)=$PROJ_DIR$\Release\Exe\eeprom.eep

В результате он нормально генерит код в code.hex и данные вида 0xXXXXXXXX
в eeprom.eep. Дальше через Image Craft или CodeVision заливаю оба файла и все путем!
arttab
делал так:
#pragma location=0x10
__eeprom unsigned long S_nombe=0xFFFFFFFF;//íîìåð ïðèáîðà

а он мне ошибку

выходной формат: debug information
в экстра опшинсах линкера прописал что нужно
Gematogen
Цитата(arttab @ Nov 1 2005, 07:13)
делал так:
#pragma location=0x10
__eeprom unsigned long S_nombe=0xFFFFFFFF;//íîìåð ïðèáîðà

а он мне ошибку

выходной формат: debug information
в экстра опшинсах линкера прописал что нужно
*



Очень странно, т.к. такая ошибка возникает, если кроме Output файлов, указанных в Extra Otions, для Linker на вкладке Output выбран формат intel-extended, а не debug information for C-SPY. И тогда линкер не может в один файл записать код и данные eeprom -> (Error[e133]: The output format INTEL-EXTENDED cannot handle multiple address spaces).

Если на вкладке линкера выбран debug information for C-SPY, а IAR выдает такую ошибку, то может быть компилятор и глючит, но я в таких ситуациях потом всегда находил где-то свой ляп и выяснял, что сам сглючил smile3046.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.