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

 
 
> const unsigned long crp __attribute__ ((at(0x1FC))) = 0x87654321;, Аналог для IAR
mempfis_
сообщение Feb 9 2011, 15:09
Сообщение #1


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

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Добрый день.
Хочу установить CRP для LPC2368. Имеется FlashMagic 5.72 и информация взятая по ссылке http://forum.flashmagictool.com/index.php?topic=3620.0

Цитата
Previously code read protection was enabled by checking a box in the main window of Flash Magic. This supported only level 2 of CRP.
Starting with Flash Magic 5.11 the code read protection setting is read from the hex file and all CRP levels are supported. If an attempt is made to set the device to CRP3 then the user is prompted for confirmation.
To set the CRP value in your project add something like the following (Keil RealView example):
Code:
const unsigned long crp __attribute__ ((at(0x1FC))) = 0x87654321;
or:
Code:
const unsigned long crp __attribute__ ((at(0x2FC))) = 0x87654321;

If you don't wish to use CRP then set the value to zero.


Т.е. чтобы установить CRP необх. прописать в проекте одну из констант. Пример приведён для Keil, я же пользуюсь IAR.

Пример из хелпа не работает
Код
#pragma location=0x1fc
__root const unsigned long crp = 0x87654321;


Кто знает подскажите пожалуйста как задать эту константу в IAR.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Artem_Petrik
сообщение Feb 9 2011, 21:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(mempfis_ @ Feb 9 2011, 17:09) *
Пример из хелпа не работает
Код
#pragma location=0x1fc
__root const unsigned long crp = 0x87654321;

Кто знает подскажите пожалуйста как задать эту константу в IAR.

Собственно присоединяюсь к вопросу. Я вместо pragma location обычно пользуюсь @, но сути это не меняет. При программировании под AVR я использовал конструкцию типа
Код
__root unsigned short __flash var_name @ 0x100 = 0x1234;


Но под ARM (в новых версиях EWARM) такая запись не катит. Пишет что переменная, размещенная по абсолютному адресу не может быть инициализируемой. Т. е. можно только так:
Код
__root __no_init const unsigned short var_name @ 0x100;

Но иногда хочется, чтоб данная переменная все же имела конкретное значение.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Feb 10 2011, 08:59
Сообщение #3


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

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Всем спасибо за ответы. К сожалению ниодин из вариантов не прошёл.
Но решение проблемы нашлось в этом топике http://electronix.ru/forum/index.php?showt...%F2%E0%ED%F2%E0
Конкретно в последнем сообщении приводится ссылка на оффсайт IAR где доступно описано как разместить и проинициализировать переменную по необходимому адресу (не хотелось править icf-файл но как оказалось решение ужасно простое......).
Go to the top of the page
 
+Quote Post



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

 


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


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