b站铁头山羊Freertos入门篇学习3

上节我们说到freertos的代码规范

接着我们继续看框图

这是freertos的5种堆内存管理方式,配置的时候选一种即可

问题来了?frtos为什么不使用c语言的内存管理方式呢?

c语言有两个关于堆内存的函数分别是:开辟malloc,释放free,

不具有可重入性就是:一个函数被重复调用时出错

frtos中的五种堆内存管理方式,默认选第四种

适用于不销毁内核对象的程序

堆内存管理方式3在动态创建内存的时候会导致任务调度器停止freertos自行管理的堆内存存放在数组(ucheap)里,该数组为全局静态变量,所以实际上对于sram的heap段也就是说frtos创建的内核在bss段.

创建任务时,任务由两部分组成,TCB(任务控制块100个字节左右)和任务栈(每个任务单独的调用栈,该参数为创建任务函数中任务栈深度)

主函数和中断服务程序还是使用sram对应的stack段(所以编写程序时,不能把sram栈的大小设置为0)