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

Подскажите по распределению памяти в STM32L476

В процессоре есть память CCM(IRAM2), с нулевым циклом ожидания. Хотелось бы туда запихнуть стек и некоторые переменные. Собственно, это с успехом делает линкер когда я ставлю галочку разрешения IRAM2. Но. Линкер пихает туда в частности и буфер, с которым работает DMA. Но доступа у DMA туда нет и код разумеется не работает. Нашел атрибут __attribute__((at(0x10000000))); для размещения в IRAM2. Это тоже работает. Но нужно указать что определенные буфера надо размещать в IRAM1. Попробовал поменять на __attribute__((at(0x20000000)));, но ругается линкер:

Quote

Error: L6971E: main.o(.data) type RW incompatible with doublebuff.o(.ARM.__AT_0x20000000) type ZI in er RW_IRAM1.

Как все - таки указать явное размещение в IRAM1 линкеру ?

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


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

30 минут назад, Димон Безпарольный сказал:

Как все - таки указать явное размещение в IRAM1 линкеру ?

Создать секцию, размещать переменные в данной секции.

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


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

2 minutes ago, adnega said:

Создать секцию, размещать переменные в данной секции.

Это в скаттере *.sct?

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


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

Я Кейлом не пользуюсь, но в нем встроена неплохая документация где можно прочитать про секции.

Скорее всего, нужно будет поправить *.sct, а в коде у переменных указывать атрибут с данной секцией.

Ну, и startup поправить, чтоб стек инициализировался на конец IRAM2 и выделялось достаточное место под него.

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


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

Нашел очень доступно на картинках здесь:

 

http://www.stmcu.org.cn/module/forum/thread-604814-1-1.html

 

Весьма удобно. Из MAP переносим название объектных файлов в scr в разные секции IRAM по желанию. И код даже работает.

Изменено пользователем Димон Безпарольный

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


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

Только в MAP файле не нашел куда куча кладется. А она используется. Точно.

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


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

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

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

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

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

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

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

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

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

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