本人小白一枚,刚接触嵌入式两个月,,,,,,,,,老师给我们说了一个叫ucos的操作系统,以后正式工作的时候还会用这个操作系统吗,或者说还有 其他的操作系统,如果有,能介绍几个么。谢谢
官方手册写的很简洁,而且不是哪些狗屎一样的书死命借介绍没卵用的概念,什么任务机制啊什么独立堆栈之类的废话,他用了好些实际的例程不仅教你怎么用,而且还给你讲明白了很多操作系统的实际概念,网上有一份中文翻译版,坐作者虽然是随便翻译的,声明了有错也不要揍他,但我看了几章下来其实翻译质量蛮高的 向你推荐这个并不是说它多好,不过作为一个入门还是相当不错的,过后你想挑哪个玩都可以。。
至于自己做操作系统,我觉得还是看情况。
其一,一件东西你用都没用过,就自己去做,何况这个东西确实很复杂的时候,那完全是瞎闹。
其二,做程序员,就是要少重造轮子,除非有必要,关于这点,在这行里混久一些都会知道,有空看看 unix linux开源世界的一些东西,你就会理解我的意思。
伟大的自由软件之父 理查德斯托曼 Linux之父 Linus Torvaldo无一不是善用已有程序获得巨大成就的典范人物。
所以,是不是重写一个功能甚至项目,很值得深思。
其三,就目前,国内的一些所谓自主创新的RTOS,我也略有耳闻,有些我还粗粗看过其代码。
说实话,都是新瓶子装老酒,没有半点新意。
这不同于十几年前,Adam在有了ucos freertos之后写出了contiki
因为contiki确实有过人之处,有非常不同的创造之处,比如那个protothread。
做程序员当然要敢于创造,但这种创造到底有没必要,自己要考虑清楚,不要老是被一些什么民族情绪煽动,或者仅仅只是自己小打小闹,在你什么都不知道的时候,你最好虚心学习而不是鼓噪着要创新这创新那。
ucos比较主流
freertos的注意力和关注度逐渐上升(我本人也对此很感兴趣)
前者源码开放,商用收费。
后者提供 社区版,GPL协议,商用完全免费。
另外,ucos功能完整,但也相对庞大,而且部分组件并不开放源码,比如以太网之类。
后者其实就是一个 多任务机制 + 内存管理模块,别的并非其内核,但我最近看到其官网,出现一个freertos+的东西,有带上其他常见的组件,如fs tcpip等,相当值得关注,但我这几天身体不适,还没细看,不清楚其协议和版权问题,关于freertos+io我相对比较了解,因为它提供的posix like的接口,是我最感兴趣的,但这个目前还不完整,并且只有针对lpc1几来着的那个CPU,我对LPC的CPU不熟悉,也不知道它指定的那些ide以及板子是否试运行这个库的必备条件。
至于其他操作系统,确实很多。但比较著名的备受关注的,往往与该系统所使用的主要场合领域有关,比如物联网方面特别流行的一个操作系统 contiki,你也可以看看,这个操作系统也是很简单,其小的程度可媲美freertos,但相对比它多了一些必需的组件。
总之,自己多对比对比,找一个合适的钻研最好,不要一个一个的跑了例程就完事了。
现在我们用STM32跑FreeRTOS,正在学啊。常见还有u/cOS RTX MQX ...一大堆,还有用于Cortex A系的高端Linux
正式工作的时候用什么系统,那看你具体的工作内容了。stm32一般只能跑类似这种的小型系统。
如果说刚接触嵌入式两个月,如果觉得这方面不精的话,还是先不要考虑操作系统的问题了,先了清楚一款ARM内核的控制器,可以用Stm32的库踏踏实实的做上一两个作品,待你对操作系统有一定了解的情况下,再去好好学上系统吧。跑系统,C语言很重要,因为你要移植系统及上层的协议栈等等,对C的功底考验不小。
真心想学,我建议你自己做系统,那样会接触到很多的知识。底层有bootloader,u-boot、shell这些非常基础,根本的知识。中间可以自己架构简易的操作系统,tasklist,时间轮询,写驱动和应用协议,bus之类的。在上层你还可以学习自己编译接口调试程序或者是bootloader的传输程序。
差点忘了说。 在这里向你推荐一下freertos,并不是它多好,或者说我多推荐,只是,单从学习和理解操作系统的基本功能而言,它是个不错的选择,因为它很纯粹,没有什么乱七八糟的东西干扰学习路线,没有太多自我表现自我标榜的东西。而且它的官方手册也写的好,
具体要看从事的行业,如果做得产品不是很复杂UCOS系统够用了