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

 
 
> IAR 5.11 для ARM, как быть с инициализированной константой по адресу?
LeshaL
сообщение Feb 22 2008, 11:29
Сообщение #1


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

Группа: Свой
Сообщений: 166
Регистрация: 14-01-06
Пользователь №: 13 160



В ИАР для АРМ версии 4.XX инициализированную константу, расположенную во флеш по определенному адресу я описывал как:

const unsigned char date_def @ 0x102 = DATE_;

В версиях 5.ХХ запретили инициализированным константам явно указывать адреса хранения. Т.е. транслятор ругается:

Error[Be022]: location address not allowed for initialized variables (writable variables without the __no_init attribute)...

Как это можно обойти в новом ИАРе?
Собственно, мне нужно чтобы в памяти программ по определенному адресу забить константу, к которой можно будет обращаться внутри программы.
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 22)
Ынжынэр
сообщение Apr 2 2008, 11:36
Сообщение #16





Группа: Новичок
Сообщений: 4
Регистрация: 24-08-06
Из: Минск
Пользователь №: 19 793



Цитата
А ссылки на эту строку есть?


Спасибо за наводку, вставил в первую попавшуюся функцию такую штуку:

(void)Signatura;

И линкер таки эту строку увидел ).
Go to the top of the page
 
+Quote Post
vet
сообщение Apr 2 2008, 12:07
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Цитата(Ынжынэр @ Apr 2 2008, 14:36) *
Спасибо за наводку, вставил в первую попавшуюся функцию такую штуку:

(void)Signatura;

И линкер таки эту строку увидел ).

достаточно применить к нужной константе #pragma required.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
Ынжынэр
сообщение Apr 2 2008, 12:19
Сообщение #18





Группа: Новичок
Сообщений: 4
Регистрация: 24-08-06
Из: Минск
Пользователь №: 19 793



Цитата
достаточно применить к нужной константе #pragma required.

Да, это вариант красивше.
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение May 14 2008, 12:20
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Хочу задать такой вопрос. (немного не по теме)

Можно ли cкомпилировать библиотеки GCC ARM с расширением *.a в IAR?

например эти:

Сообщение отредактировал Vitaliy_ARM - May 14 2008, 12:22
Прикрепленные файлы
Прикрепленный файл  write.erase.secure.lpc2364.lpc2366.lpc2368.lpc2378.lpc2468.lpc2478.zip ( 104.31 килобайт ) Кол-во скачиваний: 32
 


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 14 2008, 13:46
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Vitaliy_ARM @ May 14 2008, 14:20) *
Можно ли cкомпилировать библиотеки GCC ARM с расширением *.a в IAR?

Для начала скажите, что Вы понимете под словом "скомпилировать"???
Если не то, что под этим понимаю я smile.gif, то да. Естественно с 5.xx а не с 4.xx


Цитата(Vitaliy_ARM @ May 14 2008, 14:20) *
Хочу задать такой вопрос. (немного не по теме)

АБСОЛЮТНО не по теме.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение May 15 2008, 07:47
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(zltigo @ May 14 2008, 17:46) *
Для начала скажите, что Вы понимете под словом "скомпилировать"???


Что тут не понятного. Создать проект в IAR5.11. Поключить к нему заголовочный файл write_erase_secure_gnu.h. Повызывать из него функции, например.

Код
main()
{
    TargetInit();

     write_erase_secure_get_version();

}


были так же поправлены строчки *.h файла на:
Код
extern __ramfunc WES_Return_Code  write_erase_secure_user_sector(unsigned start, unsigned end, unsigned cclk);
extern __ramfunc  WES_Return_Code write_erase_secure_boot_sector(unsigned cclk);
extern __ramfunc unsigned write_erase_secure_get_version(void);

Добавил файл *.a в дерево проекта
При компиляции компановщик выдает ошибку:

Error[Li005]: no definition for "write_erase_secure_get_version()" [referenced from D:\BootLoader\Debug\Obj\main.o]

что не так делаю?


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 15 2008, 08:05
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Vitaliy_ARM @ May 15 2008, 09:47) *
были так же поправлены строчки *.h файла на:

ЗАЧЕМ?


Цитата(Vitaliy_ARM @ May 15 2008, 09:47) *
Что тут не понятного.

То, что это называется на самом деле "прилинковать".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение May 15 2008, 08:16
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(zltigo @ May 15 2008, 12:05) *
ЗАЧЕМ?


IAR синтаксис GCC не понимает smile.gif

Цитата(zltigo @ May 15 2008, 12:05) *
То, что это называется на самом деле "прилинковать".


Суть вопроса не меняется

Сообщение отредактировал Vitaliy_ARM - May 15 2008, 08:17


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post

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

 


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


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