【FreeRTOS】创建任务
1. 函数接口在freertos.c文件中已经默认创建了一个任务defaultTaskHandleosThreadNew(StartDefaultTask,NULL,defaultTask_attributes);osThreadNew函数位于cmsis_os2.c文件中cmsis_os2.c其实提供了统一的RTOS接口在FreeRTOS中创建任务的接口与RT-Thread使用的接口可能不一样FreerRTOS可能使用xTaskCreateRT-Thread可能使用rt_thread_createcmsis_os2.c把这两者统一在一个接口下osThreadNew下当然在使用FreeRTOS时也可以使用两个原生接口xTaskCreate与xTaskCreateStaticBaseType_txTaskCreate(TaskFunction_t pxTaskCode,// 函数指针, 任务函数constchar*constpcName,// 任务的名字constconfigSTACK_DEPTH_TYPE usStackDepth,// 栈大小,单位为word,10表示40字节void*constpvParameters,// 调用任务函数时传入的参数UBaseType_t uxPriority,// 优先级TaskHandle_t*constpxCreatedTask);// 任务句柄, 以后使用它来操作这个任务参数作用TaskFunction_t pxTaskCode传入一个任务函数其函数指针为typedef void (*osThreadFunc_t) (void *argument);下面一节中的伪代码const char * const pcName给任务取一个名字这个无所谓自己取一个自己喜欢的就可以了const configSTACK_DEPTH_TYPE usStackDepth栈深度不理解也不要紧可以认为是一个任务中的变量、数据等需要一定的空间来存放这里的栈空间大小要比需要的大 才可以void * const pvParameters传入参数可以向任务中传入参数比如说UART任务可以传入波特率等一般取NULL就可以(如果不用的话)UBaseType_t uxPriority任务具有优先级 如果对优先级比较熟悉的话 可以使用数字 也可以使用cmsis_os2.h中提供的宏osPriorityAboveNormal,osPriorityHigh都可以TaskHandle_t * const pxCreatedTask返回任务句柄 句柄在C语言中可以用结构体理解 里面的参数在任务调度时被使用 可以通过句柄来修改任务的特性等(比如说 : 任务级等)返回值自已go define看一下吧也可以静态分配内存xTaskCreateStatic只不过要手动分配任务栈与任务控制块其实cmsis_ov2统一的接口就可以了 也就是osThreadNew2. 创建新的任务使用osThreadNew去创建任务这种方式简单 而且也方便移植 当然也可以使用FreeRTOS的源码这也是没有问题的2.1 任务添加在哪在main.c中具有启动FreeRTOS的代码对于1 3可以不需要去管 1是去配置FreeRTOS的一些基本参数 3是去启动FreeRTOS的调度对于FreeRTOS的调度 就是去协调每一个任务 让每一个任务都可以正常地执行 如果说没有接触过操作系统或者是只是简单学习过一些编程语言的话 可能会好奇 main下的函数不是顺序执行吗 那么是怎么每个任务都会好依次都可以执行的其实是一个任务运行一会退出 然后上另一个任务运行一会儿退出 而决定哪个任务上CPU运行 是由任务调度决定的在MX_FREERTOS_Init()中初始化任务 也就是在这里面添加任务在MX_FREERTOS_Init()中可以添加自定义的初始化函数User_Tasks_Init()可以在User_Tasks_Init()中添加自己的任务 这样也方便管理在MX_FREERTOS_Init()的下面有 一个默认任务使用任务函数StartDefaultTask不向任务中传入参数NULL使用参数defaultTask_attributesdefaultTaskHandleosThreadNew(StartDefaultTask,NULL,defaultTask_attributes);defaultTask_attributes查看一下给任务设置的参数可以看到起的名字申请的栈空间设置的优先constosThreadAttr_tdefaultTask_attributes{.namedefaultTask,.stack_size128*4,.priority(osPriority_t)osPriorityNormal,};定义了一个句柄来承接返回值osThreadId_tdefaultTaskHandle;同样 给出StartDefaultTask这个默认任务默认任务为 每隔500ms 对PC13端口的电平进行翻转for(;;)不是陷入了死循环了吗 其实不需要担心 任务就是不会停止(当然除非 主动停止)不需要担心死循环 因为FreeRTOS会不断地调度任务也可以写为while(1) { /*task任务*/ }voidStartDefaultTask(void*argument){/* USER CODE BEGIN StartDefaultTask *//* Infinite loop */for(;;){HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);osDelay(500);}/* USER CODE END StartDefaultTask */}给一个添加LVGL任务的例子如果在参数中没有给 任务栈空间 与 任务控制块的话 会自动动态分配在创建了新的进程之后 启动FreeROTS调度器之后 就可以正常运行LvHandlerTask任务也会上调度器运行osThreadId_tLvHandlerTaskHandle;constosThreadAttr_tLvHandlerTask_attributes{.nameLvHandlerTask,.stack_size128*24,.priority(osPriority_t)osPriorityLow,};voidUser_Tasks_Init(void){LvHandlerTaskHandleosThreadNew(LvHandlerTask,NULL,LvHandlerTask_attributes);}

相关新闻

【git ssl error check process】

【git ssl error check process】

查看git 配置:git config --list 禁用ssl:git config --global http.sslVerify false 将 GitHub 仓库地址从 HTTPS 改为 SSH,可以绕过 SSL 验证问题。 git remote set-url origin gitgithub.com:username/repository.git 生成新的 SSH Key 推荐使用 Ed25…

2026/7/5 1:10:17 阅读更多 →
手撕ml+dl题

手撕ml+dl题

1. 从头实现X1. ReLUx是Tensor,所以只能用Tensor操作。def relu(x: torch.Tensor) -> torch.Tensor:return x*(x>0).float()2. Softmax当针对某一dim处理时,需要加keepdim参数,否则后续shape不一致无法计算。softmax归一化时&#xff0…

2026/7/5 1:09:32 阅读更多 →
MySQL事务和锁

MySQL事务和锁

什么是事务为什么使用事务怎么使用事务如何实现原子性回滚(rollback)是如何实现的如何实现持久性所以总体步骤是:1.读取磁盘中的页数据到内存2.DML操作3.将原数据存入undo log日志(用于后面服务器故障导致未提交事务的回滚&#x…

2026/7/5 1:10:15 阅读更多 →

最新新闻

BWorkflow:给人 + Claude Code 团队用的项目交付“规则层”

BWorkflow:给人 + Claude Code 团队用的项目交付“规则层”

分享一个我自己总结的软件研发工作流,在Claude Code上基于这个工作流严格把控产品研发质量。也是因为一些工作痛点,以及自己结合cc开发了一些工具后,沉淀的一套工作流。 使用也很简单,在研发项目根目录,把包解压到对应…

2026/7/5 1:12:11 阅读更多 →
FP8 训练与推理:E4M3/E5M2 格式的数值特性与混合精度策略

FP8 训练与推理:E4M3/E5M2 格式的数值特性与混合精度策略

FP8 训练与推理:E4M3/E5M2 格式的数值特性与混合精度策略 一、八个比特的两种面孔——E4M3 与 E5M2 的格式分化 IEEE FP8 并非单一格式,而是两种互补表示的精妙双生子。E4M3(4 位指数 3 位尾数)提供更高的精度(2⁻ 的…

2026/7/5 1:12:11 阅读更多 →
gInk屏幕标注工具:从技术实现到专业应用的深度解析

gInk屏幕标注工具:从技术实现到专业应用的深度解析

gInk屏幕标注工具:从技术实现到专业应用的深度解析 【免费下载链接】gInk An easy to use on-screen annotation software inspired by Epic Pen. 项目地址: https://gitcode.com/gh_mirrors/gi/gInk 在数字化演示和远程协作日益普及的今天,Windo…

2026/7/5 1:10:10 阅读更多 →
AI Agent自动化工作流实战:从Loop Engineering到落地部署

AI Agent自动化工作流实战:从Loop Engineering到落地部署

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个正在改变 AI 开发工作方式的新范式:AI Agent 构建 AI Agent 的自动化工作流。这听起来有点“套娃”&…

2026/7/5 1:08:09 阅读更多 →
主库“写入过 binlog,但后来主库 binlog 文件里看不到了”

主库“写入过 binlog,但后来主库 binlog 文件里看不到了”

典型场景是: 主库事务提交时 binlog 已经写到 OS page cache 或 MySQL binlog 文件缓冲;binlog dump 线程已经把这些 event 发给从库;从库 IO/SQL 线程收到并执行;从库开启了 log_slave_updates,所以这些 event 又写进…

2026/7/5 1:08:09 阅读更多 →
文生3D模型工具推荐哪个:按创作链路来选,为什么更该先看V2Fun

文生3D模型工具推荐哪个:按创作链路来选,为什么更该先看V2Fun

文生3D模型工具没有统一“最好”的答案,但如果目标不是只生成一个可看的模型,而是想继续做绑定、动作、导出和下游应用,那么更值得优先试的是V2Fun。原因很直接:它把AI生图、AI建模、Auto-Rigging、动作应用和导出放在同一条工作流…

2026/7/5 1:08:09 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻