【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);
  }
}
相关推荐
z落落17 小时前
C# WinForm Socket 转串口设备服务器+Modbus CRC16校验+Socket 客户端
服务器·开发语言·c#
小灰灰搞电子1 天前
Rust+Slint 实现动态消息提示框源码分享
开发语言·后端·rust
魏 无羡1 天前
webclient
java·webclient
神仙别闹1 天前
基于 C++ 实现两个有序链表序列的交集
java·c++·链表
传奇开心果编程1 天前
【Rust入门知识点学与练】第21课:Trait 进阶 Advanced Traits
开发语言·学习·rust
新时代牛马1 天前
字符设备驱动完整篇:从 cdev_add、file_operations 到chrdev_open 与排障
开发语言·python
swordbob1 天前
ReentrantLock 与 AQS 完整学习手册
java·开发语言
政企项目老覃1 天前
大模型幻觉治理与自动评测:金融风控场景的落地实践
人工智能·算法·机器学习
淡海水1 天前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable