论坛元老
- 积分
- 3316
- 金钱
- 3316
- 注册时间
- 2016-3-19
- 在线时间
- 815 小时
|
发表于 2023-6-1 11:13:51
|
显示全部楼层
对于FreeRTOS而言 默认情况下 uc_heap 其实就是一个全局数组
所以系统中自动申请的内存都是一段全局变量,只不过是这些数据用来存放任务的一些数据信息
包含任务句柄 任务栈
任务栈里包含任务运行时的所有现场数据(r0-r15以及高级单片机的其它寄存器)、任务中申请的变量、任务中所有调用函数中申请的变量等等
应该不全 请高手补充
默认情况下
#ifndef configAPPLICATION_ALLOCATED_HEAP
#define configAPPLICATION_ALLOCATED_HEAP 0
#endif
/* Allocate the memory for the heap. */
#if( configAPPLICATION_ALLOCATED_HEAP == 1 )
/* The application writer has already defined the array used for the RTOS
heap - probably so it can be placed in a special segment or address. */
extern uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];
#else
uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];
#endif /* configAPPLICATION_ALLOCATED_HEAP */
|
|