且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Linux嵌入式实时应用开发实战(原书第3版)》——第1章 嵌入式和实时空间1.1 什么是嵌入式

更新时间:2022-10-08 15:52:54

本节书摘来自华章计算机《Linux嵌入式实时应用开发实战(原书第3版)》一书中的第1章,第1.1节,作者:(美)Doug Abbott 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第1章 嵌入式和实时空间

如果你想周游世界并应邀去许多不同的地方演讲,那么写一个UNIX操作系统就可以了。
——Linus Torvalds

1.1 什么是嵌入式

在一个聚会上,当一个有吸引力的异性走近你,问你的工作时,你应该轻描淡写,说得越少越好,但最终谈话还是会落在你为嵌入式系统写软件这个事实上。在这位新相识开始扫视周围,找到一个律师或医生谈话前,你***用最引人注意的解释说明到底什么是嵌入式系统。
我通常会说嵌入式系统就是一个内置计算机的设备,但是该设备的使用者不必知道或者特别在意那个计算机。它是隐蔽的。我通常以汽车里控制发动机的计算机为例来说明。你不觉得开车有什么不同,那是因为发动机是计算机控制的,而且汽车里还有很多计算机,有的控制防震刹车片,有的决定什么时候打开气囊,另外一些在交通拥堵的早晨给坐在车里的你提示信息和提供娱乐。事实上,今天普通的车都比20世纪70年代的登月飞行器有更强的处理能力。甚至你的手机也比登月飞行器处理能力强大。
你可以继续举出很多例子,嵌入式计算机的应用比个人电脑(PC)要多得多。事实上,最近的市场数据显示,个人计算机使用的微处理器芯片只占每年市场份额的2%。普通的房间即使没有个人电脑,也至少有几十个嵌入式计算机。
从编程的角度来说,嵌入式系统与传统的桌面应用有很多显著区别。比如,多数桌面应用处理的都是相对可预见的一组输入输出(I/O)设备——磁盘、图形显示、键盘、鼠标、声卡和网络接口。操作系统通常都可以很好地支持这些设备,应用程序员不需要特别关注这些。
但与之相反,嵌入式系统通常比典型的桌面计算机包括种类更多的I/O设备。一个典型的系统可能包括各种用户I/O,如开关、按钮和增加了各种显示方法的触摸屏。它可能有一个或多个通信通道,或者是异步串口、通用串行总线(USB)或网络端口。它可能通过模数转换器(A/D)和数模转换器(D/A)完成数据采集和控制。这些设备几乎都没有应用程序员所熟悉的操作系统的支持。因此,嵌入式系统程序员通常都需要直接处理硬件。
嵌入式设备通常受资源的严格限制。尽管一个典型的PC目前已发展到有4GB的RAM和几百GB的磁盘,但嵌入式设备通常只有几个MB的RAM和非易失存储器。这些都对编程者的创造力有很高要求。