也正是因为Linux内核的唯一性,各个不同发布版本拥有相同的框架。Linux内核是在整个Linux系统的最底层,它负责管理硬件,运行用户程序,并保持系统整体的安全性和完整性。可以说是Linux系统的根和灵魂。图3-1中看到Linux内核还有另一层面的含义。这对于Linux内核同样适用。所以对Linux内核的剖析、学习和研究也不能独立于系统进行,而是要综合考虑应用、内核和硬件等各方面的信息和内容。这样才能更全面、深刻地理解Linux内核。......
2023-11-22
DM 3730微处理器框架如图2-1所示。
图2-1 DM 3730系统框图
图2-1引自TI的《DM 3730芯片手册》中第187页框图。从框图中可见DM 3730的主要核心与外围接口。
DM 3730有三个核心处理器单元:
①ARM Cortex-A8:负责系统控制和外围接口驱动。Linux运行在该处理器上。
②IVA2:负责音视频编码解码或者信号处理的加速单元。其中包含C64x+核心DSP以及视频加速单元,具有720P@30fps的编码或解码能力。
③PowerVR SGX:负责3D渲染的硬件加速单元。
主要外围设备的接口如下:
①Dual-output 3-layer Display Processor:负责处理UI的显示可以实现三层画中画的硬件叠加,并支持同时两个设备进行显示。
②Image Capture:负责图像采集可以进行图像信号处理。
③HS-USB:负责USB的连接,可以通过USB与PC连接或者与USB设备连接。注意其中有3-port Host,最多可以连接三个USB设备,很多手机厂商都是通过两个USB Host接口实现双网双待手机的。(www.chuimin.cn)
④SDRC:负责DDR memory内存的连接。
⑤GPMC:负责各种Flash存储器的连接,该接口可以通过时序编程与FPGA进行连接以扩展功能。
⑥Peripherals:各种外设接口,如UART(串口)、I2C(通常负责传感器的控制)、McBSP(负责音频数据传输)、HSMMC/SDIO(负责SD卡、eMMC或者WIFI芯片的连接),uSIM(负责SIM卡的连接)等。
⑦GP Timer:可编程的定时器,向系统提供定时功能。
除去以上的模块之外还有模块:
①System DMA:负责数据在外设和内存或者内存不同区块之间的复制,用来降低处理器的负载以提高系统性能。
②On-Chip RAM:片内RAM,使系统在外部内存没有初始化好的情况下仍可运行。通常该段内存可用于系统初始化,系统加速以及电源管理相关的功能。
③On-Chip ROM:类似于PC上的BIOS,其中包含系统的初始化程序。
④L3 Interconnect Network:片内高速总线,负责在片内各个模块间建立高速数据通道。
⑤L4 Interconnect:片内低速总线,负责隔离高速设备与低速设备。
从DM 3730的框架来看,它非常适合手持设备的应用,手持设备通常不会连接硬盘这种高功耗的大容量存储设备而是用SD卡进行替代,DM 3730中就设计了三个HSMMC接口而去掉SATA接口以适应这种需求。在总线方面PCIE由于功耗高、插槽大不适用于手持设备的应用,USB则是优选,相应的DM 3730中设计了一个USB OTG接口和三个USB Host接口满足这种需求。另外为了降低功耗,DM 3730的外部内存接口设计成LPDDR接口,I/O工作电压也设计成1.8V,可见为了满足高性能低功耗的需求,DM 3730在框架设计方面已经做足了工作,这也是它能流行的一个原因。
有关深入剖析Linux内核与设备驱动的文章
也正是因为Linux内核的唯一性,各个不同发布版本拥有相同的框架。Linux内核是在整个Linux系统的最底层,它负责管理硬件,运行用户程序,并保持系统整体的安全性和完整性。可以说是Linux系统的根和灵魂。图3-1中看到Linux内核还有另一层面的含义。这对于Linux内核同样适用。所以对Linux内核的剖析、学习和研究也不能独立于系统进行,而是要综合考虑应用、内核和硬件等各方面的信息和内容。这样才能更全面、深刻地理解Linux内核。......
2023-11-22
VFS的实现是以“一切皆是文件”为需求出发点的。要理解VFS的框架首先看一下VFS和系统的静态关系框图,如图5-1所示。从图5-1可见,VFS是用户层的直接接口,是面向用户的服务。图5-1VFS和系统静态关系图在图5-2中每个节点被使用时都会在VFS层中创建dentry,这样可以快速通过文件名进行查找和定位,Linux内核中对dentry的管理组织形式如图5-3所示。以上是系统运行时VFS对文件名的组织管理,这是VFS管理的一个方面。......
2023-11-22
考虑到电源管理的需求涉及处理器和各种设备,一方面是处理器尽可能减少功耗,另一方面是设备尽可能减少功耗。图5-30Linux电源管理各个功能从图5-30可见Linux内核的电源管理功能有与处理器相关的CPUIdle和CPUFreq,也有与设备相关的runtime pm,另外还有与整个系统待机时SLM相关的低功耗电源管理功能。下面分别对这些功能框架进行介绍。具体的驱动同样会在SoC电源管理部分进行讲解。对具体设备的电源管理实现,将在设备驱动中进行详细分析。......
2023-11-22
SPI总线框架对这两类设备进行管理,具体的框架如图7-6所示。通常的SPI驱动都是在内核实现并在内核态执行的,所以就不对spidev进行详细的分析。SPI总线框架整体的功能就是这样,接下来看看具体各部分的实现。在SPI总线框架中相应的实体是spi_board_info,内容如下:其中的主要信息是与总线信号相关的属性。......
2023-11-22
整体的frame buffer框架如图6-5所示。了解frame buffer的框架还要先从为用户提供的接口开始。图6-7可变参数中硬件信息的含义固定信息是在frame buffer的操作过程中并不发生变化的。从整体分析,frame buffer的框架很直接,主要就是直接管理实际的设备,而相关的操作与应用层直接相关。......
2023-11-22
DM 3730的I2C控制器框架如图7-4所示。图7-4引自《DM 3730芯片手册》中第2798页的框图。关于DM 3730I2C的驱动部分,主要分析相关初始化和总线传输的操作。由于I2C作为控制和获取状态信息,数据量并不大,而且相关的操作频率并不高,这样在中断中进行相关的处理,对系统的影响并不大。......
2023-11-22
从图3-2中可以理解Linux内核就是将硬件的功能抽象出来,为用户的应用程序提供各种系统服务。与用户相关的属性是与Linux内核中整体安全性相关的,这部分功能通常和硬件具体功能关系不大,而是附加在逻辑功能之上的属性。本书是以嵌入式系统为基础进行说明,所以将重点放在硬件设备的具体功能以及Linux内核在硬件之上的具体实现方面。Linux内核的整体框架如图3-3所示。图3-3清晰地展现了Linux内核的实现层次,以及应用层功能和硬件功能的对应关系。......
2023-11-22
1基本中断处理流程Linux内核的中断处理框架当然要满足之前提到的各种需求。对Linux内核来说,每个中断号都是通过irq_desc进行描述的,可以说irq_desc是中断处理的核心。通过这些抽象结构就可以实现整个中断处理的框架。2中断处理延时操作下面介绍系统如何解决中断中大数据量时的延时处理问题。图4-28是Linux内核中断处理流程。......
2023-11-22
相关推荐