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

XC32 определение региона внешней памяти.

Собственно, проблема в названии темы.

В мануале по ХС32 дана рекомендация. Описать внешний сегмент с помощью определения региона

 

#pragma region name="ext_mem" origin=0xC0000000 size=0x1000
...
int ext_array[256] __attribute__((region("ext_mem")));

оно, каг-бы, да. Но, при попытке компилить, выдаётся варнинг, что переменной не может быть присвоен атрибут и она будет расположена во внутренней памяти. Процессор 2048EFH144, т.е. регион отображается в нужную часть виртуальной памяти.

Если тупо обращаться по абсолютному адресу в этот кусок адресного пространства, опять-же, выдаётся варнинг, но обращение происходит. Жить можно, но горбато.

У компилера оптимизация на "0".

Биться за чистоту кода или забить?

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


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

Собственно, проблема в названии темы.

В мануале по ХС32 дана рекомендация. Описать внешний сегмент с помощью определения региона

 

#pragma region name="ext_mem" origin=0xC0000000 size=0x1000
...
int ext_array[256] __attribute__((region("ext_mem")));

оно, каг-бы, да. Но, при попытке компилить, выдаётся варнинг, что переменной не может быть присвоен атрибут и она будет расположена во внутренней памяти. Процессор 2048EFH144, т.е. регион отображается в нужную часть виртуальной памяти.

Если тупо обращаться по абсолютному адресу в этот кусок адресного пространства, опять-же, выдаётся варнинг, но обращение происходит. Жить можно, но горбато.

У компилера оптимизация на "0".

Биться за чистоту кода или забить?

В общем, оказалось все банально. По запарке объявлял переменную в функции. Стоило объявить переменную глобально, всё заработало.

Мораль: не надо запариваться.

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


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

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

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

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

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

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

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

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

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

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