控制/MCU
邵老师长期从事单片机和嵌入式系统教学和应用工作,并负责清华大学飞思卡尔实验室工作。邵老师与大家分享了μC/OS的发展经历,即将发布的μC/OS-III的细节,以及他对未来嵌入式操作系统的认识。
邵贝贝 清华大学教授
以下是文字实录。
大家好,我讲讲μC/OS-III,原来是μC/OS-II,现在到了μC/OS-III。今年第一期《电子产品世界》里有一篇调查,有627份中国嵌入式系统工程师的调查问卷,显示出现在用的最多的38%使用Linux,排在第二个就是μC/OS-II占到34%,其中μC/OS-II还是专门为嵌入式设计的实时操作系统,说明μC/OS-II从前几年进到中国以来,是有影响力的操作系统,据我了解,在美国好像还没有这么多的影响。影响力比较大的是中国和印度这样大的发展中国家,也包括日本和韩国。我们可以看到几乎能想到的CPU,在网上都可以下载到、移植的范例,这还不是全部,很多像Altera软核里面都有μC/OS的移植。
最早μC/OS是一本书,是93年出的,95年我到意大利国际物理中心准备做instructor,开一个叫做《嵌入式实时系统在物理学应用》的一个讲习班,讲习班大部分是印度人、中国人等,讲课老师大部分从欧洲核研究中心和美国大学来的,其中就拿了这个东西作为教材。它最早是为摩托罗拉68HC11增强型单片机写的,管理四个任务,用查表的办法来确定优先级。90%以上的代码是自己写的,和硬件无关,相关的代码不到200行,书上提供了一个可以在PC上跑的一个8088范例,可裁剪可固化,其实μC/OS这本书是个很好的教材,只有261页,其中有100页是源代码,解释了150页。后来这本书,96年以后,在我们实验室,给研究生用的较多,一直没找到哪个出版社愿意买它的版权。
到了2000年的时候,再想回到μC/OS的时候,已经不太可能,μC/OS-II出来了,后来第二年,电力出版社买了版权,我们就翻译了一下,到了第三本书,μC/OS-II这本书,这个就有了差不多600页,而且把源码附在光盘上,就被美国航空航天管理局认可的可以上直升飞机的一个操作系统,是一个很好用的操作系统,对于学校教学来说,这个功能很强,又很复杂。在教学上不如老版本了。这是第三本书的中译文,2003年出的。我们看它的发展,在μC/OS一开始,书上有个μC/OS的故事,讲到他写的这个东西,当时发表文章都没人理他,后来放到网上,下载的人很多,慢慢得到认可,所以最早1.08的版本,是放在网上,是不要版权的。到了1.10版本以后,被认可了,如果想要拿去牟利的话,就要给他一些回报。但作为教学研究,不谋利的时候,还是可以使用的。μC/OS也好,μC/OS-II也好,它是基于优先级的,用查表的算法去管理64个任务,只能取0~63这64个优先级。今年3月,已经有μC/OS-III发布可以使用了。
那么从μC/OS-II到μC/OS-III有哪些不同的地方呢?增加了什么,我们看改动还是很大的。一个是原来只有0~63个优先级,而且优先级不能重复,现在允许几个任务使用同一个优先级,在同一个优先级里面,支持时间片调度法;第二个是允许用户在程序运行中动态配置实时操作系统内核资源,比如,任务、任务栈、信号量、事件标志组、消息队列、消息数、互斥型信号量、存储块划分和定时器,可以在程序运行中变更。这样,用户可以避免在程序编译过程中出现资源不够分配的问题。在资源复用上,也做了一些改进。μC/OS-II中,最多任务数有64个,到了版本2.82以后是256个,μC/OS-III中,用户可以由任意多的任务、任意多的信号量、互斥型信号量、事件标志、消息列表、定时器和任意分配的存储块容量,仅受限于用户CPU可以使用的RAM量。这个也是一个很大的扩展。(问:邵老师,它的这个数是启动时就固定的,还是启动后随便定?)它是配置的时候可以自由定义的,只有你的RAM足够大的话。第四点是增加了很多功能,功能总是越来越多的,大伙可以看一下的。原来这些功能在μC/OS-II里面是没有的。
STM32/STM8
意法半导体/ST/STM
全部0条评论
快来发表一下你的评论吧 !