嵌入式Linux设计:硬件和驱动程序

嵌入式Linux设计:硬件和驱动程序,第1张

在之前的文章中,我们研究了如何配置内核以及嵌入式 *** 作系统 (OS) 的关键组件。这篇新文章着重于嵌入式 Linux硬件组件,并提供了创建将在开发阶段使用的驱动程序的一般思路。

在介绍了嵌入式 Linux 的基础知识,包括内核和通用系统架构之后,现在该谈谈硬件了。除了处理器设计之外,我们还将讨论涉及的许多硬件组件,例如总线、I/O 和网络系统。这将使我们能够完成编写驱动程序的旅程,并解决我们知道嵌入式 Linux 中没有直接实现的实时方面。到此结束时,我们将能够为完整的嵌入式 Linux 发行版奠定基础。

以下分析的目的不是评估硬件组件的优缺点,而是作为研究和识别包含在完整嵌入式 Linux 系统协议中的组件的起点,该协议包括软件和硬件组件。嵌入式系统通常具有许多用于用户交互的设备,例如触摸屏、键盘、传感器RS232 接口USB 等。完全控制由内核和众多用户应用程序以及外围驱动程序组件的控制提供。例如,可触摸面板是嵌入式设备的基本用户交互设备之一,其主要功能是识别触摸的坐标,

因此,设备驱动程序的作用是在每次中断发生时询问触摸屏控制器,并要求控制器发送触摸坐标。当系统接收到坐标时,它会将触摸和所有数据的可用性发送给应用程序。用户应用程序随后将根据您的需要处理数据。

在要实现的硬件方面,嵌入式软件开发人员正在处理通常在传统计算机中找不到的设备。GSM 模块、SPII2CADC、NAND 存储器、无线电、GPS 和其他设备就是这样的例子。

Linux 中的设备分为三种类型:网络设备、块设备和字符设备。大多数设备都属于字符设备类别。但是,许多设备驱动程序不再直接作为字符设备实现。它们是在特定于特定设备的单一框架中开发的。例如帧缓冲区(图形)、V4L2(视频捕获)和工业 I/O。

处理器

Linux 在越来越多的架构上运行,但并非所有这些都用于嵌入式配置。快速浏览一下 Linux 内核源代码的arch子目录会发现,官方内核支持的架构超过 20 种,其他的则由开发人员在单独的开发树中维护。ARM、AVR32、英特尔 x86、M32R、MIPS、摩托罗拉 68000、PowerPC 和 Super-H 是嵌入式 Linux 中使用的一些架构。

ARM 是由 ARM Holdings Ltd 维护和推广的 CPU 系列。与 IBM、飞思卡尔和英特尔等其他芯片制造商不同,ARM Holdings 不生产自己的处理器。相反,它为客户创建完整的 CPU 内核,收取许可费,并允许公司按照它认为合适的方式构建芯片。所有 ARM 处理器共享相同的 ARM 指令集,这使得 ARM 指令的特定版本的所有变体完全兼容。

这并不意味着所有 ARM CPU 和板卡都可以以相同的方式进行编程和设置。对于满足特定架构修订的所有 ARM 处理器,汇编语言和二进制代码都是相同的。

当前的架构修订包括 ARMv4T(其中引入了 Thumb 指令集)、ARMv5TE(“Xscale”部件的基础)、ARMv6(诺基亚的 TI-OMAP 设备,以及基于 Apple iPhone 的 ARMv6KZ)和 ARMv7。这些架构修订中的每一个都增强了系列中的功能。例如,ARMv4T 引入了指令集的精简版本,旨在使用更少的内存,同时保持足够的性能水平。还有 ARM 处理器具有增强的 DSP 性能 (“E”)、Java 字节码 (“J”) 支持、虚拟化和越来越多的其他选项。

目前,ARM CPU 由东芝三星和许多其他公司制造。ARM架构在各个应用领域都非常流行,从手机和PDA到网络设备,周围有数百家产品和服务供应商。

Linux 支持 50 多种不同的 ARM CPU(图 1)和总共大约 1,900 种不同的机器类型。鉴于所涉及信息的数量和种类,以及 ARM Linux 的开发速度,请参阅支持的 ARM 系统和相关详细信息的完整更新列表ARM 的处理器系列提供广泛的价格和性能选项,具有特定的功耗和占位面积,使其成为其各自应用的领导者。ARM 体系结构之所以受欢迎,部分原因在于它为系统设计人员提供了无与伦比的开发工具选择和广泛的应用选择。设计人员从 ARM 及其半导体合作伙伴那里获得的灵活性和自由度伴随着一项艰巨的义务:系统级设计团队必须选择最适合其目标应用的 *** 作系统。但是,有一些更高级别的决策为选择 *** 作系统提供了框架。其中包括对简单问题的回答,例如应用程序是否需要内存管理单元。选择 *** 作系统的其他方面涉及成本等问题,上市时间,以及实时功能等特殊功能。系统级设计团队对特定 *** 作系统的熟悉程度是最重要的要求之一。通过使用熟悉的 *** 作系统,设计团队将能够缩短设计周期,从而生产出更高性能的系统。在这些条件下,主要问题是评估在 ARM 平台上运行的 *** 作系统版本。如果应用程序是新应用程序或已决定切换到新 *** 作系统,则必须考虑一些因素,即:在这些条件下,主要问题是评估在 ARM 平台上运行的 *** 作系统版本。如果应用程序是新应用程序或已决定切换到新 *** 作系统,则必须考虑一些因素,即:在这些条件下,主要问题是评估在 ARM 平台上运行的 *** 作系统版本。如果应用程序是新应用程序或已决定切换到新 *** 作系统,则必须考虑一些因素,即:

  • 总成本(包括直接成本,例如许可、培训、支持和版税)
  • 实时能力
  • 软件可用性和性能(易用性和交付高性能系统的能力显然是评估 *** 作系统的关键标准)
  • 硬件/CPU 兼容性(使用 ARM 处理器时,兼容性问题大大减少,因为 ARM 的市场领先地位是其他硬件制造商在其产品中设计兼容性的动力)
  • 使用/内存代码大小
  • 网络能力
  • 文档和技术支持
  • 供应商声誉
  • 非经常性工程设计成本(包括软件许可、技术支持以及支付给设计师和程序员的工资)
嵌入式Linux设计:硬件和驱动程序,pYYBAGLeBY6AeOtFAAEKcQownBU703.jpg,第2张

图 1:ARM 处理器 (ARM11) 的一般布局示例

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2711544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存