

CORE选择TZ_Non_Supported,Heap选择Heap_4
注释:
- heap_1:只实现了分配内存,未实现释放内存功能。适用于开始运行后就不再内核对象不再变动的应用;
- heap_2:允许释放内存,但不会合并相邻的空闲块,会产生碎片;
- heap_3:简单包装了C标准库的 malloc() 和 free(),以保证线程安全,需要修启动或链接文件中的堆空间大小且会增加代码大小;
- heap_4:增强了heap_2,可合并相邻的空闲块以避免碎片化,包含绝对地址放置选项;
- heap_5:如同 heap_4,能够跨越多个不相邻内存区域的堆。


创建任务

每个任务栈设定:

每个任务堆大小:

根据任务任务多少计算总堆栈大小,再下面设定

在app_freerots.c中下面添加对应的函数。
void StartTask02(void *argument)
{
/* USER CODE BEGIN myTask02 */
/* Infinite loop */
for(;;)
{
osDelay(1);
}
/* USER CODE END myTask02 */
}