Перейти к содержанию
    

Создание массива во FLASH по конкретному адрессу

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Из хелпа ИАР: #pragma location={address|NAME}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишу под 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";

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...