ucosll学习
初出江湖的小码农
这个作者很懒,什么都没留下…
展开
-
UCOSII操作系统 第6课—事件控制块
1、任务和任务,任务和中断子程序是如何进行通信的?–事件控制块事件控制块使用的几点须知:(1)任务或者中断服务子程序可以给事件控住块ECB发送信号。(2)中断服务子程序不能等待事件控制块ECB给它发送信号的。(3)等待事件可以设置超时时间,后面会详细的说明实现的原理。(4)多个任务可以同时等待同一个事件发生,在这种情况下面,当事件发生后,所有等待该事件的任务中,只有优先级最高的任务得到该事件并进入就绪状态。2、事件控制块的结构(1)只有当所定义的事件是消息邮箱或者消息队列的时候才能使用,当所定原创 2020-11-04 16:02:29 · 426 阅读 · 0 评论 -
UCOSII操作系统 第5课—时间管理
1、UCOSII的定时中断(1)绝大多数的内核要求提供定时中断,以实现延时与超时控制等功能。这个定时中断叫做时钟节拍。(2)时钟的中断子程序ISR和时钟节拍函数OSTimeTick()该函数用于通知UCOSII,发生了时钟的节拍中断。2、UCOSII的5个关键的时钟函数(1)OSTimeDly();后面的4个函数可以根据需要进行配置使用(2)OSTimeHMSM();(3)OSTimeDlyResume();(4)OSTimeGet();(5)OSTimeSet();3、关键的时钟延时函原创 2020-11-04 15:23:31 · 304 阅读 · 0 评论 -
UCOSII操作系统 第4课—任务管理
1、重讲任务(1)任务可以是一个无限的循环,也可以在一次执行完毕后被删除。这里需要注意的是,任务的代码并不是真正的删除了,而是UCOSII不再理会该任务代码,所以该任务代码不会再执行。(2)建立任务,OSTaskCreate()如果想让UCOSII管理用户的任务,必须先建立任务,可以通过将任务的地址(函数名)和其他参数传递到这2个函数中来建立任务。(3)任务可以在多任务调度之前开始建立,也可以在其他的任务中创建需要的任务。但是有一点需要注意的是,在启动UCOS之前必须至少得建立一个任务。2、分析原创 2020-10-30 16:53:16 · 488 阅读 · 0 评论 -
UCOSII操作系统 第3课—UCOSII启动过程
1、初始化UCOSII(1)在调用UCOSII在任何的其他的服务之前,UCOSII要求首先调用初始化函数OSInit();这个函数的目的就是在整个系统启动之前,初始化所有的变量和数据结构。(2)其中,在OSInit()函数中建立空闲任务OS_TaskIdle();这个任务总是处于就绪态的,空闲任务的优先级是设置为最低的。(3)调用OSInit以后,任务控制块缓冲池中有OS_MAX_TASKS个任务控制块,事件控制缓冲区中有OS_MAX_EVENTS个事件控制块,消息队列缓冲池OS_Q中有OS_MAX原创 2020-10-30 15:18:10 · 565 阅读 · 0 评论 -
UCOSII操作系统 第2课—UCOSII的内核实现
UCOSII操作系统2–UCOSII的内核实现参考书籍:《嵌入式实时操作系统μCOS-II原理及应用》、《嵌入式实时操作系统uCOS-II 邵贝贝(第二版)》1、任务的结构–任务控制块首先这个任务控制块是非常的大的,这里面使用很多的宏定义,估计是可以让使用者使用的时候按需配置。(1)任务的关键 OS_STK == 任务的堆栈,用于保存任务的信息,最主要的是保存在程序的运行的SP指针。任务切换的实质就是SP指针的变化,通过SP指针的变化,可以跳转到你想要去的任何的一块不受保护的地址去。(2原创 2020-10-28 15:08:30 · 408 阅读 · 0 评论 -
UCOSII操作系统 第1课—UCOSII的基础知识
UCOSII操作系统1–UCOSII的基础知识前言:目前比较主流的操作系统有UCOSII、FREERTOS、LINUX等,UCOSII的资料相对比其余的两个操作系统的资料还是非常全面的。此次专栏涉及到的API的使用是非常小的,仅仅作为本人学习的记录。后期也会对比UCOSII说出实现的更多功能的代码。参考书籍:《嵌入式实时操作系统μCOS-II原理及应用》、《嵌入式实时操作系统uCOS-II 邵贝贝(第二版)》学习代码的出处:http://bbs.elecfans.com/jishu_345856_原创 2020-10-28 11:02:28 · 950 阅读 · 0 评论