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

 
 
 
Reply to this topicStart new topic
> Как в ИАР задать пкременную в eeprom, и зашить ее в мк при программировании
arttab
сообщение Oct 26 2005, 09:42
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



объявляю так
#pragma location=0x0100
const __eeprom unsigned char Zone1 = 10;

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


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Pat
сообщение Oct 26 2005, 11:04
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Цитата(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
Это вам поможет
Go to the top of the page
 
+Quote Post
arttab
сообщение Oct 27 2005, 05:09
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Хороший ответ для знающих инглиш на хорошем уровне, но не читавших доки по иару.
Прошу объяснить для плохо знающего английский (для меня).
Еще вопрос Пони и Аврил по разному работают с hex? Т.е. где они ожидают найти данные для еепрома? У аврила можно отдельно подключить прошивку еепрома, а единым файлом не поймет?

Начел совет выставить интел расширеный и добавить в экстраопции -M(XDATA)0-_..X_EEPROM_END=(_..X_FLASH_END+1).
Что то не получилось.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 27 2005, 05:53
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
arttab
сообщение Oct 28 2005, 02:13
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



чего у меня получилось:
если задать так
#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
не помогает.
или все правильно, а глючит иар на имеено этом проекте?


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
arttab
сообщение Oct 28 2005, 02:53
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



выставил в debug info и все пошло

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


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
nml
сообщение Oct 28 2005, 09:21
Сообщение #7


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

Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29



Цитата(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;

Это по адресу
Go to the top of the page
 
+Quote Post
_artem_
сообщение Oct 29 2005, 03:53
Сообщение #8


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



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 )).


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
Gematogen
сообщение Oct 31 2005, 10:32
Сообщение #9





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



Цитата(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 заливаю оба файла и все путем!
Go to the top of the page
 
+Quote Post
arttab
сообщение Nov 1 2005, 03:13
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



делал так:
#pragma location=0x10
__eeprom unsigned long S_nombe=0xFFFFFFFF;//íîìåð ïðèáîðà

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

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


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Gematogen
сообщение Nov 3 2005, 21:10
Сообщение #11





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



Цитата(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
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:38
Рейтинг@Mail.ru


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