
µCOS-III从入门到精通
文章平均质量分 92
Zevalin爱灰灰
如果能找到就好了
展开
-
µCOS-III从入门到精通 第一章(初识µCOS-III)
(1)裸机又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应用程序。(2)裸机的特点:①实时性很差,应用程序得依次执行。②容易出现空等待的情况,浪费CPU资源。③结构臃肿,所有功能的代码放在一个主循环中。(1)µC/OS-III的发音为“Micro C O S Three”,这意味着µC/OS-III是基于C语言编写的第三代小型操作系统。特征uC/OSuC/OS-IIuC/OS-III发布年份199219982009抢占式多任务是是是最大任务数64。原创 2025-02-27 23:01:17 · 632 阅读 · 0 评论 -
µCOS-III从入门到精通 第二章(µCOS-III移植)
组件版本号µC-OS3v3.08.01µC-CPUv1.32.01µC-LIBv1.39.01。原创 2025-02-27 23:06:44 · 881 阅读 · 0 评论 -
µCOS-III从入门到精通 第三章(任务创建和任务删除)
(1)任务的创建和删除本质就是调用µC-/OS-III的API函数。API函数描述创建任务删除任务(2)在调用任何关µC-/OS-III函数之前必须先初始化µC-/OS-III,仅初始化一次即可,通过调用函数OSInit实现。(3)任务在创建之后是不会直接运行的,需开启任务调度器,任务才能得以运行,通过调用函数OSStart实现。原创 2025-03-02 00:26:17 · 909 阅读 · 0 评论 -
µCOS-III从入门到精通 第四章(任务挂起和恢复)
(1)任务挂起和恢复的本质就是调用µCOS-III的API函数。API函数描述挂起任务恢复任务(2)挂起任务类似暂停任务,它可重新恢复,但删除任务则是将任务永远删除,除非是重新创建任务(任务也会重头开始执行),否则任务将永远消失。(3)这两个函数不允许在中断中调用,且不能挂起空闲任务。原创 2025-03-02 00:29:19 · 732 阅读 · 0 评论 -
µCOS-III从入门到精通 第五章(中断管理)
(1)让CPU打断正常运行的程序,转而去处理紧急的事件(程序),这个过程就叫中断,受理的事件称为中断服务程序。(2)中断执行机制,可简单概括为三步:①外设产生中断请求(GPIO外部中断、定时器中断等)。②CPU停止执行当前程序,转而去执行中断处理程序(ISR)。③执行完毕,返回被打断的程序处,继续往下执行。原创 2025-03-03 04:00:00 · 1805 阅读 · 0 评论 -
µCOS-III从入门到精通 第六章(µC/OS-III临界区代码保护及任务调度锁)
(1)临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段。(2)临界段适合于需严格按照时序的场合,如软件通信协议的实现,如果其实现过程中被中断打断,将会扰乱时序,从而引发通讯错误。(3)临界区外,中断与任务调度可以打断当前程序的运行,而临界区内直接屏蔽了中断(实际上,任务调度也是依靠中断实现的)。(1)µC/OS-III在进入临界段代码的时候需要关闭中断,当处理完临界段代码以后再打开中断。函数描述进入临界段退出临界段/* 非临界区代码 */… … /* 临界区代码 */原创 2025-03-03 05:00:00 · 441 阅读 · 0 评论 -
µCOS-III从入门到精通 第七章(任务调度)
(1)OSInit函数用于初始化µC/OS-III,必须在调用任何其它µC/OS-III函数之前调用它,仅调用一次即可。(2)该函数的执行内容:①对一些全局变量赋初始值。②初始化就绪列表以及Tick列表等。③创建三个任务:空闲任务(必须创建),统计任务(条件创建),软件定时器任务(条件创建)。[1]空闲任务:任务优先级最低31,当系统无其它就绪任务,那么空闲任务将会执行(空闲任务不能被阻塞)。[2]统计任务:任务优先级为30,用来统计CPU使用率和各个任务的堆栈使用量。原创 2025-03-06 23:50:42 · 1586 阅读 · 0 评论 -
µCOS-III从入门到精通 第八章(时间片调度)
时间片调度主要针对优先级相同的任务,当多个任务的优先级相同时,同等优先级任务轮流地享有相应的CPU时间(可分别设置),叫时间片,在µC/OS-III中,一个时间片就等于SysTick(滴答定时器)中断周期。创建三个任务——Task1、Task2、Task3,Task1、Task2、Task3的优先级均设置为1,时间片默认值(或者说时间片的数量)均设置为100运行过程如下:首先Task1运行完100个时间片后,切换至Task2运行Task2运行完100个时间片后,切换至Task3运行。原创 2025-03-06 23:50:49 · 822 阅读 · 0 评论 -
µCOS-III从入门到精通 第九章(时间管理)
(1)OSTimeDly函数:形参描述dly任务延时的系统时钟节拍数opt延时选项p_err指向接收错误代码变量的指针②延时选项:opt描述任务延时的结束时刻为OSTickCtr + dly任务延时的结束时刻为 OSTickCtr + dly任务延时的结束时刻为 dly(绝对时间)任务延时的结束时刻为OSTCBCurPtr -> TickCtrPrev+dly[1]OSTickCtr是系统时钟节拍计数器,它是一个32bit的数,会溢出,然后回到0重新开始计数。原创 2025-03-08 16:14:37 · 962 阅读 · 0 评论 -
µCOS-III从入门到精通 第十章(µC/OS-III消息队列)
(1)队列是任务到任务、中断到任务数据交流的一种机制,它不同于全局变量。假设有一个全局变量a,现有两个任务都在写这个变量a,如下所示,变量自增分为三个步骤,如果在任务1读数据以后、修改数据以前发生任务切换,这将导致任务2和任务1读取相同的数据,并且基于相同的数据做相同的修改,这显然是有问题的,而使用队列可以避免这种问题(指访问冲突)。。原创 2025-03-08 16:19:11 · 814 阅读 · 0 评论 -
µCOS-III从入门到精通 第十一章(信号量)
(1)信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问,µC/OS-III中使用的是二值信号量、计数型信号量与互斥信号量。(2)以计数型信号量进行举例说明:①计数值大于0,代表有信号量资源。当获取信号量,即将资源分配给一个任务时,信号量计数值(资源数)减一,也即可分配的资源数减一;当释放信号量,即任务将资源归还给OS时,信号量计数值(资源数)加一,也即可分配的资源数加一。②信号量的计数值都有最大值限制,如果最大值被限定为1,那么它就是二值信号量,如果最大值不是1,它就是计数型信号量。原创 2025-03-09 00:42:13 · 779 阅读 · 0 评论 -
µCOS-III从入门到精通 第十二章(任务信号量及队列)
(1)任务内嵌信号量本质上就是一个信号量,任务信号量是分配于每一个任务的任务控制块结构体中的,因此每一个任务都有独自的任务内嵌信号量。(2)任务内嵌信号量只能被该任务获取,这也意味着任务内嵌信号量无法广播给多个任务,但是可以由其它任务或者中断释放。(1)任务信号量相关API函数概览:函数描述获取任务信号量终止任务挂起等待任务信号量释放指定任务的任务信号量强制设置指定的任务信号量为指定值①释放任务信号量API函数可以用于任务和中断服务函数中。②接收任务信号量API函数只能用在任务中。原创 2025-03-12 23:43:44 · 896 阅读 · 0 评论 -
µCOS-III从入门到精通 第十三章(事件标志组)
(1)事件标志位是一个“位”,用来表示事件是否发生。(2)事件标志组是一组事件标志位的集合,可以简单的理解事件标志组,是一个整数。(3)事件标志组的特点:①每一个位与一个事件相关联,高8位除外,高8位用作存储事件标志组的控制信息。(下图所示的是32 位长度的事件标志组)②每一位事件的含义,以及高电平和低电平分别代表什么,由用户自己决定。③任意任务或中断都可以写这些位,但读这些位只能由任务来读。④可以等待某一位成立,或者等待多位同时成立。⑤支持读取阻塞。原创 2025-03-12 23:46:43 · 1029 阅读 · 0 评论 -
µCOS-III从入门到精通 第十四章(软件定时器)
(1)定时器的概念:从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可自定义定时器的周期。(2)定时器的种类:①硬件定时器:芯片本身自带的定时器模块,硬件定时器的精度一般很高,每次在定时时间到达之后就会自动触发一个中断,用户在中断服务函数中处理信息。②软件定时器:具有定时功能的软件,可设置定时周期,当指定时间到达后要调用回调函数(也称超时函数),用户在回调函数中处理信息。原创 2025-03-13 21:08:30 · 764 阅读 · 0 评论 -
µCOS-III从入门到精通 第十五章(µC/OS-III内存管理)
(1)内存管理是指软件运行时对内存资源的分配和使用的一种技术,其最主要的目的就是为了能够高效且快速地分配,并且在释放的时候释放不再使用的内存空间。(2)标准C库的动态内存管理方法的缺点:①占用大量的代码空间,不适合用在资源紧缺的嵌入式系统中。②没有线程安全的相关机制。③运行有不确定性,每次调用这些函数时花费的时间可能都不相同。④有内存碎片化的现象(内存碎片是在多次申请和释放内存的过程中产生的)。/* 指向内存区起始地址指针 *//* 指向空闲的内存块链表指针 */原创 2025-03-13 21:10:49 · 715 阅读 · 0 评论