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

 
 
 
Reply to this topicStart new topic
> Создание массива во FLASH по конкретному адрессу
piz2383
сообщение Aug 13 2009, 20:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Пишу под ARM7. В проекте создается строка static const unsigned char NAME[200]. Которая является идентификатором. Массив храниться во флеши. Со временем мне возможно понадобиться поменять значение этого массива. Для того что бы можно было поменять это значение во флеш нужно что бы адрес начала был выровнен на размер страницы (256). Вопрос: как указать линкеру что данную переменную нужно размещать во флеш по конкретному адресу?
Go to the top of the page
 
+Quote Post
elektronshik
сообщение Aug 14 2009, 07:16
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 25-10-07
Из: Тольятти
Пользователь №: 31 723



Цитата(piz2383 @ Aug 14 2009, 00:11) *
Пишу под ARM7. В проекте создается строка static const unsigned char NAME[200]. Которая является идентификатором. Массив храниться во флеши. Со временем мне возможно понадобиться поменять значение этого массива. Для того что бы можно было поменять это значение во флеш нужно что бы адрес начала был выровнен на размер страницы (256). Вопрос: как указать линкеру что данную переменную нужно размещать во флеш по конкретному адресу?

Из хелпа ИАР: #pragma location={address|NAME}
Go to the top of the page
 
+Quote Post
sergik_vrn
сообщение Aug 14 2009, 08:01
Сообщение #3


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

Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491



Цитата(piz2383 @ Aug 14 2009, 00:11) *
Пишу под ARM7. В проекте создается строка static const unsigned char NAME[200]. Которая является идентификатором. Массив храниться во флеши. Со временем мне возможно понадобиться поменять значение этого массива. Для того что бы можно было поменять это значение во флеш нужно что бы адрес начала был выровнен на размер страницы (256). Вопрос: как указать линкеру что данную переменную нужно размещать во флеш по конкретному адресу?

если Вам надо поместить массив по конкретному, заранее известному адресу, можно пользоваться директивой
@ address,
Код
static const unsigned char NAME[200] @ 0xFFFFFFF;

если же просто надо выровнять границу, то можно положить массив в блок с установленным выравниванием в конфиге линкера, например
Код
-- .icf ---
define block USB_RAM      with alignment = 16 { readwrite section USB_DMA_RAM };

-- .c ---
static const unsigned char NAME[200] @ "USB_DMA_RAM";
Go to the top of the page
 
+Quote Post

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

 


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


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