《嵌入式实时操作系统μC/OS原理与实践》
分析和学习指导
一:图书概况
电子科技大学卢有亮的《嵌入式实时操作系统μC/OS原理与实践》在2012.2电子工业出版社出版后受到读者欢迎,因为谁看了谁知道,明白易学.站在客观的角度上分析:
优点有:
1.比较适合入门,对代码的讲解详细充分, 采用逐层深入,反复认证的方法,通过从数据结构到函数代码再到例程的方法比较容易学懂。
作者根据教学和项目开发,自己整理的思路。
书是老师自己根据教学经验编写的,适合学习。
2.提供容易上手的例程,例程明白易懂,在WINDOWS下可运行无误。
有VC下的工程文件,源代码是2.91的,可单步调试,观察变量内容,这个比贝贝的学习环境直观有效.
3.该书事件管理、消息管理及内存管理代码解释也很详细深入。
因此不止是入门,包含了操作系统代码作者的内容。
4.内容充分而价格便宜,纸质比较好(请相信电子工业出版社),书很舒服。
5.网上搜索,提供了部分视频教程。
6.书中源代码解释详细,适合学过点C语言的同学读,门槛不高。
很多读者放映书说的比较其他书详细。
例如TCB就绪链表和空闲链表,ECB的相关数据结构都以图形方式给出,然后代码解析后还给出流程图,基本上每个重要的函数都有解释和流程图,这个其他书是没有的。
7.交流方式多,有问必答。
有什么问题直接联系书中老师的邮箱或微博, 并欢迎加入微群。
缺点有:
1.有一些错误之处,虽然可以在微博看到勘误表。
2.没有提供教学光盘,需要在网上下载,视频的第一章部分不是高清的,部分视频有声音不同步的问题.
3.移植部分是针对WINDOWS下的虚拟移植及软核FPGA的,没有51单片机的、STM32的、ARM7、9、11的
二:图书PPT使用指导
教学PPT质量一般,简明易懂。
PPT简明为主,包含了流程
图,数据结构图解等,没有大片大片的文字。
PPT在微博有下载地址,315的目前可以下.(原来是在电子工业出版社下载第3个)另外阿莫电子论坛和电子工程师论坛也有下载。
应该说,PPT不是亮点,但是对于使用该PPT的教师来说,绝对是福音。
可以根据自己的教学特点对PPT进行改编,核心的东西都在了。
另外,提供了实验指导PPT。
三:学习和实验代码使用指导
代码在VC下完全编译,目前新的代码没有一个警告。
代码结构对UCOS的内核代码一个字没动,都在SOURCE目录下,在工程中在CORE下。
对于配置的头文件及工程包含文件在CFG
下,移植部分在CPU下。
用户代码单独在USER下。
结构清晰。
示例代码针对各章节,不追求难度,以实用有效为主。
代码运行的示例见下图。
在跟踪模式下,使用观察窗,更可以洞悉系统的重要全局变量如任务控制块、事件控制块、任务优先级表等的实际情况,了解任务堆栈的变化情况!下面给出跟踪过程,如我们要跟踪操作系统初始化OSINIT的执行过程,并观察变量,首先在代码中设置断点如下图
然后按F5运行,我们看到
然后我们输入1就可以,然后回车
现在因为断点,停在这里了。
如果按F11,进入OSInitHookBegin(); 如果按F10,不进入OSInitHookBegin()但这个运行之。
如果对它熟悉,就按F10,否则按F11。
我们跟踪到OS_InitMisc内部,看到OS_InitMisc实际上对重要的全局变量进行了初始化。
可以在观察窗口输入变量,例如OSRunning
我们继续单步调试,并逐渐添加以下重要的全局变量,如就绪组和就绪表。
我们单步运行到OS_InitRdyList的时候,因为有循环,我们
在最后一句设置断点,然后按F5, 应该在最后一句停下来,这样我们看到:
我们看到OS_InitRdyList执行完成的时候,就绪组和就绪表的内容都是0!的确是清0!
然后,我们继续单步运行到这里
我们看到就绪组和就绪表变了,OSRdyGrp变为0X80,OSRdyTble(7)=0x80,这是因为我们创建了空闲任务!
可见,单步调试是很说明问题的!
代码在卢有亮博客有下载地址,315的目前可以下(原来是在电子工业出版社下载第3个)。
另外阿莫电子论坛和电子工程师论坛也有下载。
四:提供了视频
视频对学习起到辅助作用,建议读不懂的地方看看视频,个人感觉看书结合跑代码快些。
当然有些读者喜欢看视频,视频分成很多个,可以选择看哪些内容。
个别视频不是高清的,有些有声音不同步的现象。
网上视频,土豆和优酷
五:提供了交流平台
可以在博客获得最新资料。
微群没有什么人数限制
六:总结
只要按该书的思路,使用这些资源,能够尽快掌握UCOS,付出的只是一本书的价格30元左右。
当需要移植到ARM、STM32或其他系统,在读懂这本书的情况下,不是难事。
否则,下载了移植代码,也用不好!再者,学习好OS的同时,C的水平提高很快!
卢有亮
2012.4.27 成都。