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)