Размер heap FreeRTOSConfig.h и в настройках IAR. В чем разница? С недавних пор решил освоить FreeRTOS, вроде все понятно, но есть пара вопросов по поводу кучи. Использую IAR и порт FreeRTOS для Cortex-M0.
В настройках линкера IAR есть два поля (размер stack и heap), с этим все понятно. Но в файле FreeRTOSConfig.h снова необходимо указать размер heap. Я так понимаю, размер кучи, указываемой в настройках линкера - это для функций malloc(), а размер, указываемый в файле FreeRTOSConfig.h - это для pvPortMalloc()?

21 Авг 2019 в 06:28
204 +1
0
Ответы
1

Да, вы правильно понимаете. Размер кучи, указываемой в настройках линкера IAR, относится к обычной динамической памяти, которая выделяется функциями malloc() и free(). Это память, которую вы можете использовать для выделения динамических переменных и структур данных в вашем приложении.

С другой стороны, размер кучи, указываемый в файле FreeRTOSConfig.h для pvPortMalloc(), относится к куче, управляемой FreeRTOS. FreeRTOS использует свою собственную кучу для управления памятью, выделяемой задачам, очередям и другими структурами данных внутри ядра операционной системы.

Поэтому вам необходимо указать размер кучи и в настройках линкера IAR и в файле FreeRTOSConfig.h, чтобы обеспечить корректную работу как стандартных функций работы с памятью (malloc(), free()), так и функций FreeRTOS для управления памятью в вашем приложении.

20 Апр в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир