嵌入式实时操作系统
文章平均质量分 55
ucosii,rtthread,freertos
枪眼
这个作者很懒,什么都没留下…
展开
-
pt-thread的使用
1. pt-thread使用官网:http://dunkels.com/adam/pt/index.html1.1 使用示例ptthread 有两种运行任务的方式,一种是switch,另一种是goto。这里使用的是switch,在lc.h文件中包含相应头文件即可。#include “lc-switch.h”//PT_BEGIN(p);{ char PT_YIELD_FLAG = 1; //LC_RESUME((pt)->lc) switch(p->lc)原创 2022-04-17 23:48:23 · 342 阅读 · 0 评论 -
pt-thread的使用
官网:http://dunkels.com/adam/pt/index.htmlptthread 有两种运行任务的方式,一种是switch,另一种是goto。这里使用的是switch,在lc.h文件中包含相应头文件即可。#include “lc-switch.h”//PT_BEGIN(p);{ char PT_YIELD_FLAG = 1; //LC_RESUME((pt)->lc) switch(p->lc) { case 0:;原创 2021-06-13 09:37:27 · 377 阅读 · 0 评论 -
Ucosii任务调度
为了提高查找任务就绪表的速度,建立了一个常量数组和任务就绪表,如图:图1图2图1是从rt-thread中截取的,没错rt-thread的任务调度就是模仿ucosii的。如果没有常量表,在不用前导0命令CLZ的情况下,只能通过循环的形式搜索就绪表中的最高任务优先级。所以个人认为搜索任务的实时性受到微小干扰,是否影响实时性还有待继续深究。Freertos是实时跟踪最高优先级就绪任务,搜索最高优先级就绪任务时只判断该优先级列表是否为空(几乎不可能出现),为空就往下一级,所以freertos不用原创 2021-03-28 17:21:19 · 543 阅读 · 0 评论 -
freertos任务调度简介
通用方式:c语言编写的调度算法,适用于所有的控制器;大概流程如下: 1.listLIST_IS_EMPTY()查找任务就绪列表数组pxReadyTasksLists[]中的最高优先级任务列表是否为空,为空即没有列表项,没有列表项即没有线程。为空的情况几乎是不可能出现的,所以这个查找算法只是存在可能的时间不确定性,总的来说时间是确定的; 2.由于一个任务列表对应一个优先级,一个优先级对应一个或多个任务,所以还需要调用listGET_OWNER_OF_NEXT_ENTRY()查找下一...原创 2021-03-28 17:14:43 · 649 阅读 · 1 评论 -
rtthrea-ucosii-freertos三系统学习总结
rtthread-ucosii-freertos基本功能对比 RT-thread ucosii freertos 任务调度 抢占式、时间片式(多级队列位图调度) 抢占式(纯位图调度) 抢占式、时间片式(遍历列表调度) 任务管理 256级,可自定义 每级可多个任务 6...原创 2021-03-28 17:09:52 · 1681 阅读 · 0 评论 -
ucosii消息队列使用
ucosii消息队列简介ucosii的消息队列源码定义在os_q.c文件;接口全部声明在ucos_ii.h,总共有如下接口:void *OSQAccept(OS_EVENT *pevent,INT8U *perr);说明:判断消息队列里是否含有消息,与OSQPend区别的是,如果没有消息,不会挂起线程;其中pevent是指向消息队列的指针句柄,perr是异常返回值。OS_EVENT *OSQCreate(void **start, INT16U size);说明:创建消息队列。返回值是一原创 2021-01-07 00:30:00 · 2932 阅读 · 0 评论