реклама на сайте
подробности

 
 
> Распределение ОЗУ, в STM32F4 и FreeRTOS
Atlantis-
сообщение Oct 6 2016, 12:52
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102



Здравствуйте!
Подскажите пожалуйста как распределяется оперативная память в STM32F4. Допустим есть 256 килобайт внутренней SRAM. От нее откусывается немного под стек, немного под кучу (для динамического выделения) и оставшаяся часть - для программных переменных. Все правильно?
Если используется FreeRTOS, то для нужд системы резервируется память под стек и кучу. Эта память берется из оставшейся внутренней памяти (грубо говоря, чем больше памяти под нужды RTOS, тем меньше можно объявить переменных)? Или эта память выделяется из кучи процессора?
На всякий случай скажу, что у меня применяется схема heap_4.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Oct 7 2016, 05:28
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Atlantis- @ Oct 6 2016, 15:52) *
Или эта память выделяется из кучи процессора?
Что такое в вашем понимании "куча процессора" и где, по вашему мнению, она находится?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Atlantis-
сообщение Oct 7 2016, 08:10
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102



Цитата(Сергей Борщ @ Oct 7 2016, 08:28) *
Что такое в вашем понимании "куча процессора" и где, по вашему мнению, она находится?

В оперативной памяти выделяется некая область heap. Я программирую в Keil, поэтому для меня это значения в файле startup: Heap_Size - размер области и __heap_base - это видимо начальный адрес. То есть выделяется данная область в памяти, которая служит для динамического выделения памяти. Иными словами, объявляя переменную в программе я точно знаю, что в область heap она не попадет, а если я буду использовать malloc, то эта функция вернет мне адрес выделенной памяти из области heap (если конечно я не запрошу выделить памяти больше, чем эта область)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th August 2025 - 20:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016