哪些是嵌入式设备?假如你使用过电子设备,例如智能手机或家用家电学linux有前途吗,这么你很可能早已接触过这种设备。简单地说,嵌入式设备是设计用于执行特定任务的“简单”设备。在嵌入式开发中,这种设备在驱动或运行简单的单任务环境中起着不可取代的作用。
没有操作系统的设备驱动程序(裸机设备)
不是每台计算机都须要操作系统来运行;在许多情况下,操作系统是何必要的。对于相对简单且控制不复杂的功能,单任务体系结构完全才能支持它们的工作。
嵌入式系统的一些现实事例包括公汽卡优盘、冰箱、微波炉和简单的联通电话。除此之外,不须要复杂任务(如多任务调度、文件系统或显存管理)的计算机不依赖于操作系统。
这种系统中的典型软件构架包括无限循环设备中断测试,寻址设备。裸机设备实现了一些类似于单芯片设备或微控制器(MCU)的功能。假如裸机设备包括一个驱动器linux环境变量,它应当能否胜任微控制器的工作。
在这样的嵌入式开发系统中,即使没有操作系统,但设备驱动程序必须始终存在。设备驱动插口直接递交给应用软件,而且应用软件直接访问设备驱动插口而不跨越任何层次结构。设备驱动程序还包括直接与硬件功能配合使用的插口功能,无需任何附加功能。
带有设备驱动程序的操作系统
当系统包含操作系统时,设备驱动程序会是哪些样子?
首先,非嵌入式操作系统的设备驱动硬件操作可能一直至关重要。假如没有这个部份,设备驱动程序和硬件就不能互相交互。
其次,我们还须要将设备驱动程序合并到内核中。为了实现这些融合,我们必须在所有设备驱动程序中设计操作系统内核的插口。操作系统规定了这种类型的插口,而且在结构上独立于特定于一类设备的设备。
因而linux嵌入式开发教程,当有操作系统时,设备驱动程序成为联接硬件和内核的链接。操作系统的存在将不可防止地要求设备驱动程序附加更多的代码和功能,进而将单个“驱动硬件设备操作”变成一个模块,用于从操作系统内部与硬件交互。
它以操作系统API的方式出现,不再提供直接插口。在获得操作系统后,设备驱动程序显得越来越复杂。问题是,在这些情况下,操作系统应当做哪些?
首先linux嵌入式开发教程,一个复杂的软件系统须要处理多个并发任务。假如没有操作系统,完成多任务并发是一项挑战。其次,操作系统为嵌入式开发工程师提供了显存管理机制。
举个典型的事例,大多数基于MMU的处理器、Windows、Linux和其他传统操作系统都支持每位进程单独访问4GB显存。其实,操作系统给设备驱动程序带来了什么优势?
操作系统为设备驱动程序带来问题,以实现向更高级别的应用程序提供便捷操作的目的。倘若所有设备驱动程序的设计理念都是操作系统提供独立于设备的插口,这么应用程序将可以使用统一的系统调用插口访问各类设备。对于UNIX的VxWorks、Linux和其他操作系统,应用程序可以读取和写入文件,并通过write()和read()函数访问不同的字符设备和块设备。这与设备和工作的具体类型无关,因而十分便捷。