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

 
 
 
Reply to this topicStart new topic
> 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
sergeeff
сообщение Feb 9 2011, 18:09
Сообщение #2


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Код
volatile unsigned int * const pcrp = (volatile unsigned int *)0x1FC;

*pcrp = 0x87654321;


везде и всегда будет работать
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Feb 9 2011, 21:56
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Свой
Сообщений: 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
GetSmart
сообщение Feb 10 2011, 09:20
Сообщение #5


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(sergeeff @ Feb 9 2011, 23:09) *
Код
volatile unsigned int * const pcrp = (volatile unsigned int *)0x1FC;

*pcrp = 0x87654321;


везде и всегда будет работать

ржунимагу sm.gif


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Feb 10 2011, 09:54
Сообщение #6


Местный
***

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



Цитата(mempfis_ @ Feb 10 2011, 10:59) *
Но решение проблемы нашлось в этом топике http://electronix.ru/forum/index.php?showt...%F2%E0%ED%F2%E0
Конкретно в последнем сообщении приводится ссылка на оффсайт IAR где доступно описано как разместить и проинициализировать переменную по необходимому адресу (не хотелось править icf-файл но как оказалось решение ужасно простое......).


Спасибо. Про Migration guide я почему-то и не вспомнил.


Go to the top of the page
 
+Quote Post

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

 


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


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