Jump to content

    

STM32F405 Размещение большого массива в SRAM

Добрый день!

Проц stm32f405, на борту 192 kB SRAM. Хочу разместить массив размером около 100 кБ, компилер Keil 5.20 ругается:

 

Error: L6407E: Sections of aggregate size 0x5bc bytes could not fit into .ANY selector(s).

 

Если массив уменьшить на пару кБ, все ок:

 

Program Size: Code=10128 RO-data=31276 RW-data=164 ZI-data=130300 

 

Как я понимаю, есть ещё 60+ кБ, почему компилер выдает ошибку?

 

Share this post


Link to post
Share on other sites
26 minutes ago, Алексей ВМ said:

Как я понимаю, есть ещё 60+ кБ, почему компилер выдает ошибку?

 

Откройте даташит хотя бы в разделе Memory Mapping и посмотрите где и как размещено ОЗУ, все сразу станет понятно.

Если лень лезть так глубоко, то откройте первую страницу даташита, там указано как делится все ОЗУ этого семейства.

Для полного использования ОЗУ часть данных нужно размещать в одной области, часть в другой, явно указывая в объявлении переменных название соотв. секций ОЗУ. 

Тогда линкер поймет, что от него хотят и все будет хорошо :)

 

 

зы - Keil - это не "компилер", Keil - это среда (IDE) 

компиляторов в Keil встроено аж ДВА, в настройках проекта можно выбрать нужный: античный v5.xx или современный v6.xx

Share this post


Link to post
Share on other sites
Just now, Forger said:

Откройте даташит хотя бы в разделе Memory Mapping и посмотрите где и как размещено ОЗУ, все сразу станет понятно.

Для полного использования ОЗУ часть данных нужно размещать в одной области, часть в другой, явно указывая в объявлении переменных название соотв. секций ОЗУ. 

Тогда линкер поймет, что от него хотят и все будет хорошо :)

Спасибо, в настройках проекта галка IRAM2 была снята, из-за этого и не влезало.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now