求电子版《嵌入式实时操作系统μCOS-II原理及应用》书
哪位好心的大侠有《嵌入式实时操作系统μCOS-II原理及应用》这本书,麻烦上传一下好吗?在此先谢过了! 或者有下载的网址也行呀! ./emotion/em007.gif 我只有这本书的光盘资料,现上传,但我希望能看看这本书光盘内容ourdev_404087.rar(文件大小:1.29M) (原文件名:嵌入式实时操作系统μC_OS-II原理及应用.rar) ucos-II的深刻理解 转贴
岳老师的大脑好比一个CPU(性能很好,P4++,/*类比 C->C++*/ ),它上面跑了个实时操作系统,分时操作系统不能满足岳老师的快速响应外部事件的要求。为了满足实时性的要求,这个实时操作系统内核一定是可剥夺内核型的。移植个操作系统是个好事啊,可以使得任务能够得到更好的维护,比起前后台系统,不知道要方便多少倍。最关键的问题是这个操作系统,是学校领导们移植到岳老师的大脑里的,任务的优先级,及具体的任务是他们一手制定好的。
人事处的事算成一个任务,这个任务的优先级为0,我噻,最高优先级。其他的任务包括学生的事情只能排在它之后了。
这个人事处的任务写的有点问题,任务的第一行语句就是OS_ENTER_CRITICAL();我靠,任务进入临界代码段了,关中断了。直到任务的倒数第二行才是OS_EXIT_CRITICAL();任务的最后一行是OSTimeDlyHMSM(16,0,0,0);任务的倒数第二行语句的意思是开中断了,但是这时开中断已经没用了,这个人事处的任务虽说是个死循环,但是它执行一次的时间特别长,需要8个小时,在这整整8个小时的时间内是不允许中断的。总算经过人事处任务的长达8个小时的运行,执行到任务的最后一行了,OSTimeDlyHMSM(16,0,0,0);学校的领导总算良心发泄了,让人事处的任务主动放弃了CPU的占用权,延时了16个小时,也就是这个任务被挂起了,等待16个小时后,继续运行。这个延时不同于for,或while循环的延时,后者还是让CPU在不停的进行无谓的运行,以来等待这段延时时间。要知道啊,要不是人事处的任务主动放弃了CPU的占用权,别的任务是不可能得到运行的啊,因为人事处任务的优先级是最高的,对于可剥夺内核的操作系统,系统总让就绪状态优先级最高的任务处于运行状态。
学校的领导可没这么傻,让岳老师在这16个小时内可以不受干扰的做自己的事情,他们另外开了几个后门任务,而且除了人事处任务,后门任务,其他的任务是不允许关中断的。别小看了这些后门任务,它们平时什么都不做,被挂起了,但是这种挂起不是休眠状态,它们在等待信号量。那么这些信号量是谁发的呢,不是别人,正是学校的领导。尽管这16个小时内,岳老师可以做其他的事情,但是学校的领导的一个电话,可以算是中断,这个中断发了信号量,完了!那些后门任务被激活了!!!而且这些后门的程序的优先级也很高,搞的其他的任务包括学生的任务没有机会再次运行啊。可怜的学生任务啊,被后门任务中断后,一直处于就绪状态,没机会运行啊!
那么学生任务有奋起反抗的机会吗?没的。这些学生任务的代码中没有OSTaskDel(0);这条语句。这条语句可以用来删除人事处的任务,但是可惜没有。被删除后的任务,CPU再也不会去执行这个任务了。倒是人事处的任务中可以删除学生任务,唉,可怜的学生任务,不但没什么机会去运行,反倒到最后被人事处的任务给删除了。
最终岳老师要睡觉了,CPU要休息了,这时Idle任务运行了。岳老师第二天早上刚起床,人事处的任务的延时16个小时的时间到了,立即从被挂起的状态变为就绪的状态,立即引发一次任务调度,因为人事处的任务的优先级最高,这个任务立即抢占了CPU,开始运行。
注: 文中岳老师为某校老师,名字虚构,切勿对号入座,切切!
上文中的嵌入式操作系统是UCOSII,因为我是学控制的,不是学计算机的,学计算机的人由于学过操作系统原理,所以可以将UCOSII当成课外读物看看,对于学控制的人来说,由于一开始操作系统的原理不懂,所以看UCOSII的话,会看的云里雾里的。我的经验是不要首先去看那本邵贝贝的经典书《嵌入式实时操作系统UCOSII》,不是说那本说讲的不好,只是说那本书不适合没有一点操作系统原理基础的人去看,如果你硬着头皮去看的话,估计你看了个一两个星期你都搞不清楚。这本经典的书写的过于详细,适合于当作手册去查。整本书没有一条红线贯穿始终,也没有具体的例子去阐述它讲的原理。推荐一本书《嵌入式实时操作系统μC/OS-II原理及应用》 任哲编著,既小又薄的一本书,讲的非常的清楚。特别是书中讲任务间相互通信那块,讲的太棒了!!!
我大概花了2,3天的时间就把这个UCOSII最核心的东东看懂了,基本上就可以写任务了,这时候会涉及到一些细节的问题,那本巨经典的厚书就可以派上用场了。这时候你会发现那本经典的书,的确是经典。 UCOS内核结构学习笔记 转贴
呵呵,大家好,暑假一直在实验室,校园网一直打不开我的BLOG,全国大赛结束后,我虽然没有参加,但是我也是经历了的,只是没有参赛而已。呵呵,感觉全国大赛不是比各高校学生的能力,而是各高校老师的能力。相信经历过的人应该清楚。
这是暑假写的笔记,刚才初步整理了一下,希望对大家用。
◆ 任务,在UCOS-ii实时系统中,一个任务其实就是一个线程,该任务可以认为CPU完全属于它自己。UCOS-ii中的任务拥有自己的堆栈和CPU寄存器,并且赋予一定的优先级,在UCOS-ii中,它可能处于睡眠、就绪、运行、等待、中断服务状态之一。具体这5种状态的定义请看我的另一篇博文《UCOS Learning Notes N.O. 01》。
◆ 基于优先级的内核有两种:不可剥夺型和可剥夺型。不可剥夺型内核它要求每个任务互相合作,也称为合作型内核,每个任务不会被其它任务剥夺去,除非中断的到来,即便如此,当中断结束后,还是会回到原来被中断的程序,而不会切换到具有高优先级的任务中去,这样,高优先级的任务就不能够及时得到执行,所以它的实时性是比较差的。但是它有一个很重要的特点,就是它可以使用不可重入函数,因为每个任务必须执行完,才能释放CPU,这样它对其它任务调用可重入函数没有影响;同理在大多数情况下它无须使用信号量来保护资源。
对于可剥夺型内核,只要高优先级任务一就绪,那它就会被执行,而当前正在执行的任务就会被挂起;正因为如此,对于系统的资源就不能像不可剥夺型那样去使用,而是在使用前必须检查是否可以使用,即互斥机制来保护临界资源,如果不用的话,那么如果低优先级在使用临界资源时,突然被高优先级把CPU给抢过去了,那么低优先级的临界资源就可能会被告优先级任务给破坏掉;可剥夺型的优点是是系统的响应时间得到了优化,且是可知的。
◆ 实时系统中,中断优先级反转这一问题是出现得最多的,这问题的本质其实也不能理解,就是低优先级的任务占有高优先级的任务所需要的资源,而使高优先级不得不等低优先级把资源释放才能执行。
◆ 任务控制块OS_TCB,它是一个有结构体组成的,每当一个任务被建立时,它就会被建立,并且和系统中的任务组成一个双向链表,它的第一个结构体成员是堆栈栈顶指针,这样做的好处避免在移植过程中出现不必要的偏移地址计算过程,节省了CPU的时间,由于它是一个双向链表,自然会有前向指针【指向前面一个任务控制块】和后向指针【指向后面一个任务控制块指针,最后一个任务块指针指向空指针】,还包含有与该任务优先级以及与优先级相关的数据成员和与该任务有关的事件、邮箱、队列等,其它的成员我暂时用不着,先PK掉,以后用时再看。在这个结构体中,我觉得应该值得时刻注意的是:任务堆栈指针,任务状态,任务优先级。
◆ 任务控制块的初始化,它其实就是从空任务控制块中取一个任务控制块,并对它的成员进行初始化。
◆ 任务的就绪表,我认为这时UCOS中的几个经典部分之一,记得我当时第一次看它时,发现这很奇妙,心中直夸作者的智慧。我们在创建任务时,系统跟住优先级来分配控制块和堆栈,首先系统会对优先级进行一个检查,如果该优先级没有被其它任务占有,那么它就分配给该任务;同时这很明显会出现一个问题,怎样去管理这些优先级以及怎样知道优先级的使用情况就成了该系统自然要解决的问题,该系统的作者很有智慧,发现了优先级的数字有这么一个功能,系统有64个优先级,由于我们的字节是8位的,呵呵,很明显来个8*8的矩阵,再仔细一看,原来一个优先级的位3~5的10进制数可以作为优先级在哪一组,位0~2的10进制数可以作为在该组中某位为1的位,然后一算,呵呵恰好是优先级的数,这种思维在UCOS中用了好几次。系统在进行任务切换时,是把CPU分配就绪表中优先级最高的任务,那怎样来找呢,因为我们已经知道优先级的数字有那么一个巧妙在里面,何不好好利用之呢,我们要想知道就绪任务的最高优先级的值,就要知道优先级所在的组以及所在列,我们先来找组,因为优先级的值越小优先级越高,那么无论就绪表中的表那几组为1,就绪任务肯定在最低一位为1所在的列中找,那么很自然我们可以这样来见表,依次从0~255开始来设,即优先级组的值为1时是在第几组,为253时又在第几组,这个表一建成,就是一个1*256的数组,再仔细看发现找列时也可以跟住这个表来查找,真是得来全不费功夫。优先级的低3位和3~5位都知道了,然后在跟住优先级就绪表的原理反过来就可以计算出就绪表中任务最高优先级的值拉。
◆ OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()也可以用来保护应用程序中的临界代码;然而要特别小心,如果在调用一些如OSTimeDel()之类的功能函数之前关中断,应用程序将会死机;原因是任务被挂起一段时间,直到挂起时间到,但由于中断关掉了,时钟节拍中断一直得不到服务,显然所有的挂起类调用都有这样的问题,所以要特别小心。作为一条普遍适用的规则,调用UCOS-ii功能函数时,中断总是开着的。
◆ 任务调度,因为UCOS总是运行优先级最高的任务,而CPU的使用权转移到优先级最高的任务这一过程是通过任务调度来完成的,具体它的实现步骤在UCOS中其实现代码是比较简单的,首先是关中断,其次检查其调用是否来自中断或者至少调用了一次给任务调度上锁函数,并且没有释放锁,都将不能执行调度,否则发生死锁,简单说明一下,在中断中,肯定是不能调度的,应该不难理解,如果任务调用了上锁函数,但是又没有释放,即没有释放资源,那么很有可能其它任务需要那资源而发生优先级反转现象。然后在执行任务的切换。
◆ 任务级的任务切换和中断级的任务切换,其具体思路清参照我写得
◆ 给调度器上锁和开锁,给调度器上锁用于禁止任务调度,一般它开锁成对使用,其在UCOS中的实现代码很简单,只是要特别注意的是,上锁时要先关中断。
◆ 空闲任务,UCOS中至少要有一个任务,那就是空闲任务,不过其优先级最低,也就是说当其它任务没有进入就绪表时,它才运行,因为它总是处于就绪状态,它只是一个简单的计数器计数。在统计任务中要用到它。
◆ 统计任务,它就做一件事,就是计算CPU的利用率,可这过程我个人认为要一定的时间,因为里面尽是计算,并且牵涉到除法。在UCOS启动时,如果要启动统计任务,首先要把OS_CFG.H中的OS_TASK_STAT_EN设为1,那么这个任务就会建立,且一直处于就绪状态,并且刚开始时,由于空闲任务,肯定会运行的,运行多久,1秒,为什么是1秒,自己分析下代码就会明白啦,计数1秒又有什么用呢,为以后计算CPU的利用率提供一个基准值,因为这个值将会一直保存起来的,保存在哪,保存在统计任务的堆栈里,且不会改变,除非重新启动CPU;那么以后空闲任务不一定会有1秒的时间连续执行,空闲任务执行时,没次被其它任务抢走CPU时,它里面的计数器就会直接记录下CPU空闲的时间,怎么算呢,1s内它的计数值我们是知道的,那么CPU以后空闲的计数值我们也有记录,只是这些计算过程由统计任务来完成。
◆ UCOS的初始化,它首先是系统所用的全局变量比如上锁次数,中断次数,任务次数,任务切换次数等等的初始化,然后是就绪列表、任务控制块、事件控制块等的建立,其次是空闲任务或和统计任务的创建。
◆ UCOS的启动,找出就绪列表中的优先级最高的任务,并启动任务调度,且永不返回 还没有人来? 阿莫 在吗? 再发个好的,希望对大家学习操作系统有所好处,也希望好心人能帮帮我呀
点击此处下载 ourdev_404107.rar(文件大小:165K) (原文件名:uCOS2精华快速掌握.rar) 我是想把UC/OS学好,可是发现就是看邵贝贝译的书把我给转得晕了头呀,听说《嵌入式实时操作系统μCOS-II原理及应用》任哲编著的这本书重于实践,就想先看看,不知哪位有没有电子版,帮帮我吧 帮帮 我有买一本,但是没东东扫描。
所以帮不了你 记号 本来不想传的(到处都有,不想浪费网站资源),看你那么积极,就传一下给你吧,doc转成pdf版的。
点击此处下载 uCOS-II中文版电子书(pdf版).rar文件大小:2.89M) (原文件名:uCOS-II中文版电子书.rar)
PS:网站的上传功能需要好好改进一番。 帮帮 我
帮帮 我 不知道是不是指我传的那本??? 还是有别的 ? 我指的是任哲的《嵌入式实时操作系统μCOS-II原理及应用》,听说这本书重于实践,对μCOS-II入门循序渐进,在百度搜了
很久也没有找到,所以请各位帮帮传上
最近想学嵌入式实时操作系统μCOS-II,但是看了绍贝贝的译书真的是转得头很晕,所以想找个简单点的,好入门的。 谢谢kanprin 萧威的热心,但那本我已经有了!!! songguoda去买一本吧。
不然去图书城,看一下。看值得买吗?
我买的是任哲的《嵌入式操作系统基础uc/os-II和Linux》。 我是想去买一本呀,可就是没得时间去呀,每天都要加班呀,很少有休息 现在做一个多路实时数据采集项目,就要用到这个嵌入式实时操作系统μCOS-II,但学起来好劲啊,想找这本书从实践上好好学习一下,理解应该会深刻很多呀 大家都没有???? 再上传一个,能帮点初学者就再好不过了ourdev_404388.DOC(文件大小:134K) (原文件名:嵌入式操作系统中的关键技术.DOC) 哪位好心大侠有呀,上传一份吧,先谢过啦 哪位好心大侠有呀,上传一份吧,先谢过啦 banyan_city AVR小菜 想问一下你看了这本书之后有何感想,觉得这本书怎么样??? 我想要看看这本书的原因:
引自上面的发表
"推荐一本书《嵌入式实时操作系统μC/OS-II原理及应用》 任哲编著,既小又薄的一本书,讲的非常的清楚。特别是书中讲任务间相互通信那块,讲的太棒了!!!"
看过的兄弟觉得怎样,是上面所说的这么棒吗? 我买的是任哲的《嵌入式操作系统基础uc/os-II和Linux》,觉得条理相当清楚,支持一下作者。 http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_404448.gif
放松一下 (原文件名:191.gif) 兄弟,传上来共享一下,好吗? 那本书我没有,也没看过,不知道怎么样,好书可以考虑买的, 呵呵。
如果说没空,你打开网页的时候就可以去逛逛卓越网或当当网,顶多几分钟搞定。
还能货到付款,服务不错。 嵌入式实时操作系统μC\OS-Ⅱ原理及应用(高等院校通用教材)
作者: 任哲 编著
ISBN: 9787810777216 , 7810777211
出版社: 北京航天航空大学出版社
出版日期: 2005-9-5
内容提要 :
μC/OS-Ⅱ是一个源码开放的嵌入式实时操作系统内核。本书详细介绍了嵌入式实时操作系统μC/OS-Ⅱ内核的任务管理和调度、系统时钟和节拍服务、时间管理、中断、任务的通信和同步、内存的简单管理原理,同时给出了大量的实例以帮助读者学习和理解。
最后,以在51单片机和ARM上移植μC/OS-Ⅱ介绍了移植方法。
本书可作为高等院校计算机、电子技术、自动化技术、仪器仪表等信息类专业的教材,也可供对嵌入式操作系统感兴趣的工程技术人员参考。
目录 :
第1章 嵌入式实时操作系统的基本概念
1.1 计算机操作系统1
1.2 嵌入式系统和嵌入式操作系统3
1.3 嵌入式实时操作系统μC/OS-II简介12
1.4 小结13
1.5 练习题14
第2章 μC/OS-II中的任务
2.1 任务的基本概念15
2.2 任务堆栈21
2.3 任务控制块及任务控制块链表25
2.4 任务就绪表及任务调度29
2.5 任务的创建37
2.6 任务的挂起和恢复46
2.7 其他任务管理函数53
2.8 μC/OS-II的初始化和任务的启动60
2.9 一个示例64
2.10 小结72
2.11 练习题73
第3章 μC/OS-II的中断和时钟
3.1 μC/OS-II的中断74
3.2 μC/OS-II的时钟80
3.3 时间管理88
3.4 小结96
3.5 练习题97
第4章 任务的同步与通信
第5章 信号量集
第6章 内存的动态分配
第7章 在51单片机上移植μC/OS-II
第8章 在ARM7上移植μC/OS-II
第9章 μC/OS-II可剪裁性的实现
附录A 文件PC.C中的函数
附录B μC/OS-II中使用的数据类型
附录C μC/OS-II在80x86上的移植
附录D C51开发工具μVision2简介
附录E MagicARM2200教学实验开发平台简介
附录F 光盘上例题代码的使用方法
参考文献 再上传一个,能帮点初学者就再好不过了ourdev_404528.doc(文件大小:1.78M) (原文件名:µC_OS-II实验指导书.doc) 还发一个AVR资源网址,希望大家能学好AVR
ATmel官方Application Note:
http://www.atmel.com/dyn/products/app_notes.asp?family_id=607
OUR AVR翻译中文版Application Note:
http://www.ouravr.com/atmel_AVR_docs_list_1.htm
http://www.ouravr.com/atmel_AVR_docs_list_2.htm
http://www.ouravr.com/atmel_AVR_docs_list_3.htm
编译器:
ICC AVR: http://www.imagecraft.com/
CodeVisionAVR:http://www.hpinfotech.ro/
IAR For AVR:http://www.iar.com/website1/1.0.1.0/107/1/index.php
WinAVR(GCC for windows):http://winavr.sourceforge.net/
技术讨论区&资源站:
http://www.ouravr.com/index.html
http://www.ouravr.com/bbs
http://www.proteus.com.cn/html/bbs.html
http://www.avrvi.com/
http://bbs.avrvi.com/
http://www.avrarm.com/bbs/
http://www.iccavr.com/
http://www.mcuzone.com/
http://www.avrfreaks.net/(English)
ISP下载软件:
PonyProg2000:http://www.lancos.com/prog.html
双龙SLISP:http://www.sl.com.cn/Download.asp
智峰ProgISP:http://www.zhifengsoft.com/download.htm
技术前辈手记:
http://www.mcublog.com/blog/blog2006/cxjr/archives/2006/19158.html
http://blog.21ic.com/user1/349/index.html
真的没有兄弟 大侠来帮助一下我了吗????? 急切等待着呀!!!!!!!!!!
迫切需要呀!!!!!!!!!!!! MARK,楼主发的东西都不错 http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_404588.gif
再开心一笑,放松一下 (原文件名:89.gif) “这里远比混乱的现实世界美好”
感谢阿莫给我们提供了这么好的技术讨论平台 我也正在挑 OS 的书呢 songguoda
浅析UCOSII v2.85源代码ourdev_404648.pdf(文件大小:286K) (原文件名:浅析UCOSII v2.85源代码.pdf)
看有帮助没? 39楼banyan_city AVR小菜 谢谢
我已经在论坛中下过了 亲爱的兄弟们,谁来帮帮我呀,我今天特意在新华书店找了一个上午也没有呀 上当当 淘宝 都有的 !MARK 我就是想先看看,别人说得那么好,我看值不值得买呀 再说到网上买我个人觉得也麻烦 真的没有人能帮我呀? 建议你先阅读陈明计的《SMALL RTOS51》也属于嵌入式占先式操作系统,更适合在C51和AVR单片机上运行。 陈明计的《SMALL RTOS51》更适用,更适合在单片机上跑操作系统,
讲解更详细,还有每个子程序的流程图。
建议先阅读完它,再去读UCOSII吧! 谢谢! 没有朋友有这本书的电子版?《嵌入式实时操作系统μCOS-II原理及应用》 mark!!! mark m 标记下 标记 mark! mark 楼主是在抛砖引玉吧?想要的东西到现在也没有人传上来,楼主倒是上传了许多好东西。先收藏了。 看到两篇长贴,刚开始还以为楼主自己解决了呢。仔细看才注意是转贴。 持续关注,不知几月过去楼主搞到没,还是已经买了纸书? 点击此处下载 ourdev_535436.pdf(文件大小:24.18M) (原文件名:嵌入式实时操作系统μCOS-II原理及应用 任哲编著.pdf) 收藏,定 embeded osmark 非常感谢!好东西要顶 感谢啊正 需要 非常感谢啊 非常感谢啊 回复【60楼】ba_wang_mao
-----------------------------------------------------------------------
thanks mark 太给力了 非常感谢大家 ⊙﹏⊙b汗 我这边扫描了半天不清楚,现在有兄弟居然传上来了! 收藏了 mark! 受用了,非常感谢ba_wang_mao !!! 感谢~~~~~~ 非常感谢ba_wang_mao,谢谢! ddddddddddd 回复【楼主位】songguoda
-----------------------------------------------------------------------
我有,怎么传给你? ba_wang_mao 发表于 2010-2-26 16:24 static/image/common/back.gif
点击此处下载 ourdev_535436.pdf(文件大小:24.18M) (原文件名:嵌入式实时操作系统μCOS-II原理及应用 任哲 ...
下载的好缓慢。。。 ba_wang_mao 发表于 2010-2-26 16:24 static/image/common/back.gif
点击此处下载 ourdev_535436.pdf(文件大小:24.18M) (原文件名:嵌入式实时操作系统μCOS-II原理及应用 任哲 ...
还是很谢谢你{:lol:} 这个好。。谢谢哈 看了 各位都很热心啊
化石贴 ... , 楼主安在? 刚下的,给你吧 受用!
谢谢分享很多啊 谢谢楼主的分享 也谢谢上面那位兄弟的pdf书籍, 祝大家共同进步
页:
[1]