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

 
 
> А возможно ли считать из внутренней Flash LPC21xx?, Други, помогите!
ASergej_R19
сообщение May 8 2008, 18:33
Сообщение #1


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

Группа: Свой
Сообщений: 86
Регистрация: 5-02-07
Из: Москва
Пользователь №: 25 060



Понятно, что во внутреннюю flash память можно писать с помощью IAP. А можно ли как-то считать оттуда данные из выполняющейся программы? IAP этого не позволяет сделать - только сравнить, а считать возможно ли?

p.s.: lpc2103.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение May 9 2008, 00:15
Сообщение #2


.
******

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



Скорее всего в вопросе про константы во флэш имелся ввиду отдельный сегмент флэша с конкретным адресом, который будет потом переписываться независимо от программы.

Код
#pragma location=0x1000
const char data[4096] = {...};

или другой вариант:

const char data[4096] @ 0x1000 = {...};

если же не нужна начальная инициализация, то так:

const __no_init char data[4096] @ 0x1000;

Только приходится выделять под такую константу весь сегмент, например 4096 байт. Это вобщем проще, чем лезть в XCL файл и там выделять независимый от CODE сегмент для констант и обзывать его своим уникальным именем.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
ASergej_R19
сообщение May 11 2008, 07:20
Сообщение #3


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

Группа: Свой
Сообщений: 86
Регистрация: 5-02-07
Из: Москва
Пользователь №: 25 060



Цитата(GetSmart @ May 9 2008, 04:15) *
const char data[4096] @ 0x1000 = {...};


Щас добрался до компа и попробовал данную конструкцию - не работает. Ругается:
"error: #7: enrecognized token". :-( и прагму такую не знает...

Keil 3.15 для arm

Для переменных и констант нашел, что можно __attribute__ ((section ("секция"))) - так указывать, а вот чтобы впрямую адрес - что-то не нашел. Может кто подскажет еще?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 11 2008, 07:34
Сообщение #4


Гуру
******

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



Цитата(ASergej_R19 @ May 11 2008, 09:20) *
Щас добрался до компа и попробовал данную конструкцию - не работает. Ругается:
"error: #7: enrecognized token". :-( и прагму такую не знает...

Правильно делает - то, что приводилось в примере - это непереносимая приблуда для старого IARовского компилятора. В общем случае этим линкер занимается - описываете свой сегмент и указваете линкеру куда его линковать.



Цитата(GetSmart @ May 9 2008, 02:15) *
Это вобщем проще, чем лезть в XCL файл и там выделять независимый от CODE сегмент для констант и обзывать его своим уникальным именем.

Проще один раз понять, что это дело линкера и сделать независимо от IAR-овских приблуд, чем полагаться на непереносимые и уже справедливо похеренные фичи компилятора.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th June 2025 - 14:37
Рейтинг@Mail.ru


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