搜索
bottom↓
回复: 19

UC/OS-II的学习

[复制链接]

出0入0汤圆

发表于 2012-2-28 16:48:09 | 显示全部楼层 |阅读模式
第一天:
UCOS-II的基本概念和常用知识
1.        所有UC/OS-II 的要素(函数、变量、常数定义、宏)都已OS开头
2.        临界区:指处理时不可分割的代码。一旦开始执行,则不允许任何中断打入。
3.        资源:任何为任务所占用 的实体(如:打印机、键盘、变量、结构体等)
4.        共享资源:可以被一个以上的任务所使用的资源。  (必须存在互斥即每个任务使用时独占资源。)
5.        任务:也叫线程,是一个简单的程序。典型的每个任务都是一个无限的循环。处于5种状态之下:休眠、就绪、运行、挂起、中断。见图1.1
休眠态:  驻留在内存中,但不被多任务内核调度。
就绪态:该任务可以运行,但是priority比较低,暂不能运行
运行态:掌握了CPU的控制权
挂起态:该任务在等待,等待某一事件的发射。
中断态:进入被中断的状态。
6.        任务切换:(上下文切换/CPU寄存器内容切换)
将当前状态即CPU寄存器全部入栈,将新任务状态出栈,并进行下一个任务。
7.        内核(kennel)
负责管理各个任务。其提供的基本服务就是任务切换!
8.        调度(scheduler)
内核的职责之一,就是决定轮到那个任务运行了。UCOS采用的是占先式内核。采用的是优先级调度法:让处在就绪态的优先级最高的任务运行。
8.1        占先式内核:响应时间得到了最优化,应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件。
8.2        占先式内核总是让就绪态的高优先级的任务运行,中断服务程序可以抢占CPU,到ISR完成后,内核让优先级最高的任务运行,并不一定是被中断了的任务了。
8.3        可重入性(reentrancy)
可重入型函数可以被一个以上的任务调用,不用担心数据破坏,可被中断,因为其使用的是局部变量,或者在使用全局变量时,进行了保护。
                不可重入型函数会使数据等破坏,使用以下三点可以使其成为可重入型:
1.        把全局变量定义成局部变量
2.        调用函数时关中断,然后开中断
3.        用信号量禁止该函数在使用时被调入。
9.        时间片 轮番调度法
UC/OS没有用,它要求当优先级相同时的一种方法,UC/OS要求priority都不相同。
10.优先级   PRIORITY
        静态优先级  :其优先级在编程时确定了。
动态优先级  :应用程序执行时,任务的优先级可变。但要避免出现优先级反转的问题。(优先级反转和任务优先级的分配将会单独列一个专题)
11.         互斥条件:在处理共享数据时,要避免竞争和数据的破坏。有以下四种方法:
11.1关中断和开中断
                利用宏OS_ENTER_CRITICAL() 关中断
                           OS_EXTI_CRITCAL()   开中断
在处理内部变量和数据结构时常用这种方法,但时间不要太长,否则影响时间特性

11.2        测试并置位(可以用一个全局变量测试能否使用这个共享资源)
11.3        禁止,然后允许任务切换  (给任务切换上锁,但不建议使用)
11.4        信号量(semaphore)
一种约定机制。其像一把钥匙,任务要想运行下去,就得拿到这把钥匙,否则只能被挂起
        控制共享资源的使用权
        标志某事件的发生
        使两个任务的行为同步
对信号量进行三种操作,
        初始化 Initilize/建立 Create   (要给信号量赋初值,等待信号量的任务表要清空)
        等信号 Wait /挂起 Pend   (想要得到信号量的执行等待操作 OSSemPend( , , ) 如果信号量有效,则信号量值减1,如果为0,则进入等待信号量的任务表,等待超时或有效)
        给信号 Signal/发信号 Post   (任务发信号释放信号量)
        有的情况要隐藏信号量,有些简单的共享变量在处理时,就不要用信号量了,否则浪费时间太多,得不偿失,可以用开中断,关中断的方法。
12.         死锁 :(两个任务无限期等待对方控制的资源)
13.         同步:可以使某个任务和ISR同步。
14.        事件标志:Event Flag UC/OS-II不支持。
15.        任务之间的通信:两个途径:1.全程变量2.发消息给另一个任务
16.        消息邮箱: message mail box   mbox  
是一个指针型变量,通过内核服务,一个任务或者ISR可以把一则消息放到邮箱中去,一个任务或多个任务也可以解释这个消息,但是,要有约定。改指针指向的内容就是那则消息。
17.        消息队列 : message queue 给任务发消息。和邮箱差不多
18.        中断  ISR:中断服务子程序。允许中断嵌套。。。
19.        中断延迟: 关中断的最长时间+开始执行ISR的第一个条指令的时间。
20.        中断响应:从中断发生到开始执行用户的ISR代码来处理这个中断的时间。
  对于占先式内核:中断响应时间是:  中断延迟+保存CPU内部寄存器的时间
                                            +内核的进入ISR的执行时间。
21.        中断恢复时间:微处理器返回到被中断了的程序代码所需要的时间
   对于占先式内核:中断恢复时间: 判定是否有优先级更高的任务进入了就绪态的时间+恢复那个优先级更高任务的CPU寄存器的时间+执行中断返回指令的时间。
22.        中断延迟、响应和恢复。  见图1.2
23.        非屏蔽中断 NMI : 对于其服务子程序,不能使用内核提供的服务。
24.        时钟节拍 :clock tick  特定的周期性中断。
25.        对存储器的要求:(8位单片机基本服务1K到3K) ROM 应用程序代码+内核代码
RAM :应用程序代码 +内核RAM  + SUM (任务堆栈+MAX(ISR堆栈))??????
燕山大学 电气工程学院  09级检测技术与仪器

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-2-28 16:55:52 | 显示全部楼层

图1.1 (原文件名:293679_1293458449KAGC_副本.jpg)


图1.2 (原文件名:201111271745328630389.jpg)

出0入0汤圆

发表于 2012-2-28 18:38:06 | 显示全部楼层
支持,跟帖学习。

出0入0汤圆

发表于 2012-2-28 19:58:36 | 显示全部楼层
学习

出0入0汤圆

发表于 2012-2-28 23:06:16 | 显示全部楼层
跟帖学习。 ..

出0入0汤圆

发表于 2012-2-28 23:15:43 | 显示全部楼层
UCOS2.86支持信号量组flag的,

出0入0汤圆

发表于 2012-2-28 23:21:13 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2012-2-29 23:00:42 | 显示全部楼层
我用的是UC/OS-II的V2.52版本的,也是初学,放在这儿是为了1.留个笔记2.供大家来参考3.欢迎大家指正,批评。谢谢。
这是第二天的总结。http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5442403&bbs_id=3004

出0入0汤圆

发表于 2012-3-1 08:33:01 | 显示全部楼层
mark....

顶楼主。

出0入0汤圆

发表于 2012-3-1 10:22:41 | 显示全部楼层
mark 顶起!

出0入0汤圆

发表于 2012-3-6 14:38:30 | 显示全部楼层
mark顶!

出0入0汤圆

发表于 2012-3-8 15:01:31 | 显示全部楼层
支持楼主 我刚刚想学 请问楼主用什么资料的

出0入0汤圆

发表于 2012-3-9 11:24:28 | 显示全部楼层
ding

出0入0汤圆

发表于 2012-3-24 22:34:07 | 显示全部楼层
东西太多,看了就忘,学的很郁闷

出0入0汤圆

发表于 2012-3-24 23:35:06 | 显示全部楼层
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

出0入0汤圆

发表于 2012-3-28 22:57:30 | 显示全部楼层
为什么现在用UC/OS-3的还是那么少啊

出0入0汤圆

发表于 2012-4-3 00:32:49 | 显示全部楼层
楼主,怎样快速掌握UC/OS-ii啊?

出0入0汤圆

发表于 2012-4-3 01:26:28 | 显示全部楼层
mark
顶一下

出0入0汤圆

发表于 2012-4-3 17:12:35 | 显示全部楼层
表示支持啊 !

出0入0汤圆

发表于 2012-6-4 00:30:44 | 显示全部楼层
MARK
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 01:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表