FreeRTOS实时操作系统
文章平均质量分 80
FreeRTOS学习和实战应用
双木雨
记录学习和分享技术和经历
展开
-
FreeRTOS的任务创建和删除
描述动态方式创建任务静态方式创建任务删除任务动态创建任务:任务的任务控制块以及任务的栈空间所需的内存,均由FreeRTOS从FreeRTOS管理的堆中分配静态创建任务:任务的任务控制块以及任务的栈空间所需的内存,需用户分配提供pdPASS任务创建成功任务创建失败动态创建任务步骤1、将宏配置为12、定义函数入口参数3、编写任务函数此函数创建的任务会立刻进入就绪态,由任务调度器调度运行动态创建任务函数内部实现1、申请堆栈内存任务控制块内存2TCB。原创 2024-02-05 10:31:54 · 886 阅读 · 1 评论 -
FreeRTOS移植
FreeRTOS官网:https://www.freertos.org/对FreeRTOS的功能进行配置和裁剪,以及API函数的使能等。建立Middlewares文件夹存放FreeRTOS源码。将FreeRTOS源码添加至基础工程、头文件路径等。修改Systick中断、SVC中断、PendSV中断。添加FreeRTOSConfig.h 配置文件。source文件夹下是FreeRTOS源码。配置FreeRTOS中可选的API函数。完成FreeRTOS的功能配置和裁剪。PendSV宏定义、SVC宏定义。原创 2024-02-05 10:00:33 · 331 阅读 · 1 评论 -
FreeRTOS的任务挂起与恢复
调度器没有运行,判断挂起任务数是否等于任务总数,是:当前控制块赋值为。在运行,更新下一次阻塞时间,防止被挂起任务为下一次阻塞超时任务。无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复。如果挂起的是任务自身,且调度器正在运行,需要进行一次任务切换。是:就会将该任务在挂起列表中移除, 将该任务添加到就绪列表中。挂起:挂起任务类似暂停,可恢复;删除任务,无法恢复。将待挂起任务的任务状态列表项插入到挂起态任务列表末尾。通过传入的任务句柄,判断所需要挂起哪个任务,,则代表挂起任务自身(当前正在运行的任务)原创 2024-02-05 11:18:24 · 874 阅读 · 1 评论 -
FreeRTOS基础知识
3、Task3运行过程中(还不到一个时间片),Task3阻塞了(系统延时或等待信号量等),此时直接切换到下一个任务Task1。3、Task3运行过程中,Task3阻塞了(系统延时或等待信号量等),此时就绪态中,优先级最高的任务Task2执行。1、首先Task1在运行中,在这个过程中Task2就绪了,在抢占式调度器的作用下Task2会抢占Task1的运行。2、Task2运行过程中,Task3就绪了,在抢占式调度器的作用下Task3会抢占Task2的运行。原创 2024-02-04 17:16:29 · 810 阅读 · 1 评论