【freertos】Task创建(v2)

动态内存分配

c 复制代码
//线程控制块定义
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);
  }
}

静态内存分配

c 复制代码
//线程控制块定义
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);
  }
}
相关推荐
牛油果子哥q1 小时前
C++内存模型与深浅拷贝万字详解:栈堆静态内存布局、深浅拷贝底层差异、内存泄漏根治、拷贝崩溃踩坑、手写深拷贝实战
java·开发语言·c++
Nil2082 小时前
leetcode 24两两交换链表中的节点
算法·leetcode·链表
曹牧2 小时前
C#:函数参数指定默认值
开发语言·c#
.格子衫.2 小时前
033动态规划之状态压缩DP——算法备赛
算法·动态规划
ysa0510302 小时前
c++常用自带函数用法与注意
c++·笔记·算法
AAA@峥2 小时前
Python 基础开篇:认识 Python、版本选择、环境部署与首个 HelloWorld
开发语言·python
caimouse3 小时前
ReactOS 图形系统分析(47):GDI 批处理 — gdibatch.c
c语言·开发语言
qq21084629533 小时前
在python中什么是 self 和 cls?
开发语言·前端·python