【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);
  }
}
相关推荐
NetX行者2 分钟前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust
刘 大 望13 分钟前
Agent 的规划与执行范式:Plan-Execute-Replan 与 ReAct
java·python·ai·chatgpt·langchain·ai编程
Pniubi23 分钟前
力扣146.LRU缓存机制
算法·leetcode·缓存
云上工程笔记26 分钟前
2026年7B到67B模型训练与推理GPU配置评测:LoRA、量化与全量微调对比
人工智能·算法·机器学习
softlgh27 分钟前
鼾声识别:嵌入式离线鼾声检测 SDK 与睡眠健康数据
算法·智能家居·智能音箱·鼾声识别·智能枕头·打呼噜
了了37 分钟前
图搜索基础学习笔记
算法
const_qiu1 小时前
第四章 05:4.5 Multi-Agent —— 五个专职智能体协作
java·人工智能
我就是不信1 小时前
Java8 lambda 表达式 forEach 如何提前终止?
开发语言·windows·python
Cx330❀1 小时前
深入浅出 Qt 绘图机制:从 QPainter 到四大图像类解析
开发语言·qt·ui·性能优化·图形渲染
A小码哥1 小时前
大模型成本怎么降,5 个动作先做前两个
java·前端·spring