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

Из хелпа ИАР: #pragma location={address|NAME}
sergik_vrn
Цитата(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";
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.