动态内存分配
//线程控制块定义
osThreadId_t dynamicTaskHandle;
const osThreadAttr_t dynamicTask_attributes = {
.name = "dynamicTask",
.stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityLow,
};
//入口函数定义
void dynamicTaskEntry(void *argument);
//创建任务
void MX_FREERTOS_Init(void)
{
dynamicTaskHandle = osThreadNew(dynamicTaskEntry, NULL, &dynamicTask_attributes);
}
//入口函数实现
void dynamicTaskEntry(void *argument)
{
for(;;)
{
osDelay(1);
}
}
静态内存分配
//线程控制块定义
typedef StaticTask_t osStaticThreadDef_t;
osThreadId_t staticTaskHandle;
uint32_t staticTaskBuffer[ 128 ];
osStaticThreadDef_t staticTaskControlBlock;
const osThreadAttr_t staticTask_attributes = {
.name = "staticTask",
.cb_mem = &staticTaskControlBlock,
.cb_size = sizeof(staticTaskControlBlock),
.stack_mem = &staticTaskBuffer[0],
.stack_size = sizeof(staticTaskBuffer),
.priority = (osPriority_t) osPriorityLow,
};
//入口函数定义
void staticTaskEntry(void *argument);
//创建任务
void MX_FREERTOS_Init(void)
{
staticTaskHandle = osThreadNew(staticTaskEntry, NULL, &staticTask_attributes);
}
//入口函数实现
void staticTaskEntry(void *argument)
{
for(;;)
{
osDelay(1);
}
}