【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);
  }
}
相关推荐
灿飞屋8 分钟前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
石小石Orz12 分钟前
AI 正在蚕食我们的编码能力
前端·后端·算法
xiaoye-duck22 分钟前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
NE_STOP43 分钟前
Spring AI Alibaba - MCP入门
java
nice_lcj5201 小时前
【从零理解 Spring AI · 07】对话记忆:让模型记住上一句说了什么
java·spring ai·ai应用开发·chatmemory·对话记忆
总要学点什么1 小时前
第98篇:三维特效-材质线效果——给一条线换十种材质,虚线的图案只填了一半
开发语言·前端·javascript·ecmascript·gis·webgl·材质
田甲2 小时前
做一款 Type-C 母座读卡器:GL3224 双卡方案实测
c语言·开发语言
民乐团扒谱机2 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法
SL_staff2 小时前
制造业交付崩盘?用跨部门节点协同计划打通销售、生产与质量链路
java·开源·产品
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛