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

STM32 CubeIDE и внешняя SDRAM

Есть проект на STM32F429 с микросхемой внешней SDRAM-памяти.

Все настроил и сконфигурировал, память по указателям читается-пишется нормально.

Дальше хочу чтобы она распределялась линкером. Добавил секцию в .ld файл, отправил в нее здоровенный массив - работает.

Но эта скотобаза КубИДЕ в упор не хочет мне показывать сколько там памяти занято. Build Alalyzer эту мою секцию не отображает.

GCC на выходе говорит вот это:

   text       data        bss        dec        hex    filename
 105704         20    16001948    16107672     f5c898    qwe.elf

Тобишь все в одну кучу посчитано.

Но ведь оно работает, значит попало куда надо. Но что-то тут не так. Что и где я забыл прописать?

Раньше подобное делал в keil и там все было ясно-понятно.

***

Отбой, перезагрузил комп - все отобразилось в Build Analyzer как надо. Глюк какой-то был.

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


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

Может кому-то будет полезно. В файле *.ld в MEMORY добавляем строчку XRAM1

/* Memories definition */
MEMORY
{
  CCMRAM    (xrw)    : ORIGIN = 0x10000000,   LENGTH = 64K
  RAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = 192K
  XRAM1 (xrw) 		: ORIGIN = 0xD0000000, LENGTH = 16384K  
  FLASH    (rx)    : ORIGIN = 0x8000000,   LENGTH = 2048K
}

И в SECTIONS добавляем описание секции. (NOLOAD) указывает, что в момент старта эта память не проинициализирована и загружать в нее ничего нельзя. Все переменные там буду не проинициализированы.

	/* External RAM section */
	.xram1 (NOLOAD):
	{
  		*(.xram1*);
	} >XRAM1

Дальше в программе объявляем переменные вот так:

__attribute__((section(".xram1")))volatile uint8_t array[16000000];

и они попадают во внешнюю память.

 

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


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

Чтоб оптимизатор не выкинул. Я по-началу его создал только чтоб посмотреть куда он попадет, сам массив нигде в программе не использовался.

В общем случае конечно volatile не нужно делать.

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


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

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

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

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

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

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

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

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

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

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