Алексей ВМ 0 20 августа, 2019 Опубликовано 20 августа, 2019 · Жалоба Добрый день! Проц 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+ кБ, почему компилер выдает ошибку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 20 августа, 2019 Опубликовано 20 августа, 2019 · Жалоба 26 minutes ago, Алексей ВМ said: Как я понимаю, есть ещё 60+ кБ, почему компилер выдает ошибку? Откройте даташит хотя бы в разделе Memory Mapping и посмотрите где и как размещено ОЗУ, все сразу станет понятно. Если лень лезть так глубоко, то откройте первую страницу даташита, там указано как делится все ОЗУ этого семейства. Для полного использования ОЗУ часть данных нужно размещать в одной области, часть в другой, явно указывая в объявлении переменных название соотв. секций ОЗУ. Тогда линкер поймет, что от него хотят и все будет хорошо :) зы - Keil - это не "компилер", Keil - это среда (IDE) компиляторов в Keil встроено аж ДВА, в настройках проекта можно выбрать нужный: античный v5.xx или современный v6.xx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Алексей ВМ 0 20 августа, 2019 Опубликовано 20 августа, 2019 · Жалоба Just now, Forger said: Откройте даташит хотя бы в разделе Memory Mapping и посмотрите где и как размещено ОЗУ, все сразу станет понятно. Для полного использования ОЗУ часть данных нужно размещать в одной области, часть в другой, явно указывая в объявлении переменных название соотв. секций ОЗУ. Тогда линкер поймет, что от него хотят и все будет хорошо :) Спасибо, в настройках проекта галка IRAM2 была снята, из-за этого и не влезало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться