嵌入式操作系统知多少?

简介: 嵌入式操作系统知多少?

常见的嵌入式系统有这么多:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive、autosar

什么是嵌入式操作系统?嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统的重要组成部分。嵌入时操作系统具有通用操作系统的基本特点,能够有效管理复杂的系统资源,并且把硬件虚拟化。

从应用角度可分为通用型嵌入式操作系统和专用型嵌入式操作系统。常见的通用型嵌入式操作系统有Linux、VxWorks、Windows CE.net等。常用的专用型嵌入式操作系统有Smart Phone、Pocket PC、Symbian等。

按实时性可分为两类:

实时嵌入式操作系统主要面向控制、通信等领域。如WindRiver公司的VxWorks、ISI的pSOS、QNX系统软件公司的QNX、ATI的Nucleus,很多汽车电子行业都是利用实时性很强的操作系统等。

非实时嵌入式操作系统主要面向消费类电子产品。这类产品包括PDA、移动电话、机顶盒、电子书、WebPhone等。如微软面向手机应用的Smart Phone操作系统。

嵌入式系统的设计和实现而言,基本上需要四种不同的工作:系统设计工作,硬件设计工作,驱动程序和操作系统移植工作和应用程序设计开发工作。

1.系统设计工作                    

在系统的设计阶段,系统分析师将根据需求确定系统的硬件的基本构成,根据系统的需求选择使用那种处理器,使用哪种操作系统,使用那些软件开发工具。系统分析师往往是较为完整的参与过嵌入式系统设计的全过程,对于系统应用的行业较为了解,对于嵌入式系统本身的开发流程十分清楚的人。

2.硬件设计工作

系统硬件设计人员需要根据系统分析师的设计结果,进行硬件原理图的设计。通常需要硬件设计人员熟悉嵌入式系统的硬件构成。硬件设计人员需要了解常用的嵌入式系统处理器,存储器(Flash,SDRAM),以太网MAC芯片,音频/视频编解码芯片,电源管理芯片,总线接口电路 (USB,PCI),液晶显示模块,可编程逻辑器件(FPGA/CPLD),无线网络通信模块(Bluetooth,WLAN,GPRS)等硬件电路构成元素的基本工作原理,连接使用方法,使用注意事项,基本调试方法等内容。在网络上能找到很多公司的评估板的原理图,对于这些原理图要仔细研究,摸清处理器同存储器,网卡,液晶模块等器件的连接方法和原因。通过对这些电路的研究,能够较快地了解整个嵌入式系统的构成,这些电路同实际产品中的电路虽有一定差别的,特别是对于手持设备,但这些差别不影响初学者学习嵌入式系统的硬件设计基本构成。


1)学习 Linux系统安装、 常用命令、应用程序安装。


2) 学习 Linux 下的 C 编程、这本书必学《UNIX 环境高级编程》、《UNIX 网络编程》,Rechard Stevens 写的,C 高手大都学习过 《C 和指针》、《C 缺陷与陷阱》、《高质量C/C++编程指南》、《C 专家编程》、《The C programming Language》

3)程序员大都要学:数据结构,嵌入式程序员数据结构必学!

4)底层开发人员大都要学:微机原理、计算机体系结构,嵌入式开发人员必学!

5)单片机可以让一个从事软件开发的人了解和如何操作硬件,有必要学,因为一开始就从 ARM 入手,不太现实!

6)ARM 体系结构,其中有汇编。

7)数字电路有必要学习,不然你在做底层开发时真的会不知道怎么看原理图,起码也得懂与或门吧。

8)ARM + Linux 应用程序开发。(前提是要有开发板)

9)要做底层开发,就必须知道软硬件之间是如何衔接和配合工作的,那么电子技术应该要好好学习了,很多时候会用到模拟电路知识,这是区别好手与菜鸟的不同之处之一。

10)Linux 下的汇编要学,这样你才能真正了解你写的程序是如何在一个特定的硬件上跑的。这是区别好手与菜鸟的不同之处之二。

11)TCP/IP 协议栈要学,所有的嵌入式高手都得掌握的东西,这是区别好手与菜鸟的不同之处之三。

12)有了这些东西,拿下 Linux 驱动 已经不再话下,需要你去学习 Linux 内核源代码和Linux驱动程序设计,这是一个技术升华。

13)音频、视频的解码译码技术你得学。

14)各种 IC ,各种 bootloader 你能够参与其开发设计。

15)自行设计开发新产品,新技术。

学到这个地步差不多要花个3年的时间吧。但是后面的路该怎么走呢?嵌入式系统性的东西搞了一个产品之后,基本上一些套路都摸清楚了。不同的行业,对于系统的要求是不一样的,比如汽车行业,航空航天行业等一些高精度,高安全的需要对实时性要求非常之高,对于安全性和可靠性的要求非常严格。而有些行业比如消费类产品,娱乐类的,生活用具方面的对于用户体验是不一样的,数码产品对于一些图像声音的处理,要求更高,需要高清,高品质的。而对于一些通信设备类对于网络的应答数据传输要求就非常严格,等等。这些根据不同的要求,选择符合自己的操作系统,能对开发工作有更大的帮助。


相关文章
|
6月前
|
安全 物联网 调度
【软件设计师备考 专题 】网络操作系统和嵌入式操作系统基础知识
【软件设计师备考 专题 】网络操作系统和嵌入式操作系统基础知识
117 0
|
2月前
|
编译器 C# Android开发
震惊!Uno Platform 与 C# 最新特性的完美融合,你不可不知的跨平台开发秘籍!
Uno Platform 是一个强大的跨平台应用开发框架,支持 Windows、macOS、iOS、Android 和 WebAssembly,采用 C# 和 XAML 进行编程。C# 作为其核心语言,持续推出新特性,如可空引用类型、异步流、记录类型和顶级语句等,极大地提升了开发效率。要在 Uno Platform 中使用最新 C# 特性,需确保开发环境支持相应版本,并正确配置编译器选项。通过示例展示了如何在 Uno Platform 中应用可空引用类型、异步流、记录类型及顶级语句等功能,帮助开发者更好地构建高效、优质的跨平台应用。
184 59
|
3月前
|
移动开发 开发框架 C#
跨平台移动开发王者之战:Xamarin对决Uno Platform,谁将主宰.NET的未来?
【8月更文挑战第28天】Xamarin和Uno Platform是.NET生态下的两大跨平台移动开发框架。Xamarin自2011年起成为.NET的重要组成部分,使用C#实现高度代码共享。Uno Platform则是较新的框架,支持C#和XAML,并能将代码编译为WebAssembly,兼容Web平台。两者在代码共享、性能、社区支持及平台兼容性方面各有优势。Xamarin在性能和生态上更为成熟,Uno Platform则在Web兼容性方面表现出色。开发者可根据项目需求和技术栈选择合适的框架。
47 3
|
4月前
|
算法 数据处理 开发者
LabVIEW开发为何仿制(致敬)经典成熟软件
LabVIEW开发为何仿制(致敬)经典成熟软件
28 2
|
6月前
|
NoSQL 安全 Shell
操作系统(第二周 第二堂)
操作系统(第二周 第二堂)
|
JavaScript 芯片
聊聊身边的嵌入式,2年质保期刚过就翘辫子,这是什么骚设计?
聊聊身边的嵌入式,2年质保期刚过就翘辫子,这是什么骚设计?
|
网络协议 Linux Android开发
从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议
从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议
|
Linux 开发工具 Android开发
嵌入式软件开发十二种开发工具与链接之优秀
嵌入式软件开发十二种开发工具与链接之优秀
118 0
嵌入式软件开发十二种开发工具与链接之优秀
|
存储 传感器
一张图看懂嵌入式系统组成
一张图看懂嵌入式系统组成
一张图看懂嵌入式系统组成
|
Linux Windows
嵌入式Linux编程--我的第一次艰难跋涉
最近由于隧道项目中用到嵌入式Linux(Arm CPU上的Linux),并且提供硬件的单位针对Linux的编程收费很高,并且时间很长,所以犹豫再三,决定开始深入学习Linux,并在学习过程中完成预定的任务
1032 0