24小(xiǎo)时联系電(diàn)话:18217114652、13661815404
中文(wén)
- 您当前的位置:
- 首页>
- 電(diàn)子资讯>
- 技术专题>
- 理(lǐ)论嵌入式Linux要求
技术专题
理(lǐ)论嵌入式Linux要求
理(lǐ)论嵌入式Linux要求
硬件
片上系统
片上系统(SoC)本质上是一种采用(yòng)单个平台并将整个计算机系统集成到其上的集成電(diàn)路。它将CPU的功能(néng)与执行和执行其功能(néng)所需的其他(tā)组件结合在一起。它负责使用(yòng)其他(tā)硬件并运行您的软件。SoC的主要优点包括较低的延迟和节能(néng)功能(néng)。
它由各种构建块组成:
核心+缓存+ MMU – SoC的核心是处理(lǐ)器,它将定义其功能(néng)。通常,SoC具有(yǒu)多(duō)个处理(lǐ)器内核。对于“真实”处理(lǐ)器,例如ARM Cortex-A9。这是选择SoC时要牢记的主要内容。可(kě)能(néng)由诸如NEON之类的SIMD协处理(lǐ)器共同辅助。
内部RAM – IRAM由位于CPU旁边的超高速SRAM组成。它的行為(wèi)类似于CPU缓存,并且通常很(hěn)小(xiǎo)。在引导顺序的第一阶段中使用(yòng)它。
外设 –它们可(kě)以是一个简单的ADC,DSP或图形处理(lǐ)单元,它通过一些总線(xiàn)连接到内核。低功耗/实时协处理(lǐ)器可(kě)帮助主内核执行实时任務(wù)或处理(lǐ)低功耗状态。此类IP内核的示例是USB,PCI-E,SGX等。
外部RAM
SoC在引导期间和引导之后使用(yòng)RAM存储临时数据。它是嵌入式系统在常规操作期间使用(yòng)的内存。
非易失性记忆
在嵌入式系统或单板计算机中,它是SD卡。在其他(tā)情况下,它可(kě)以是NAND,NOR或SPI数据闪存。它是SoC读取并存储系统工作所需的所有(yǒu)软件组件的数据源。
外围设备
SoC必须具有(yǒu)用(yòng)于标准通信协议(例如USB,以太网和HDMI)的外部接口。它还包括Wi-Fi和蓝牙的无線(xiàn)技术协议。
软件
首先,我们介绍了启动链,它是SoC上電(diàn)时发生的一系列操作。
引导ROM:这是存储在ROM中的一段代码,由引导核心在开机时执行。该代码包含有(yǒu)关SoC配置的说明,以使其能(néng)够执行应用(yòng)程序。Boot ROM执行的配置包括内核寄存器和堆栈指针的初始化,高速缓存和行缓冲區(qū)的启用(yòng),中断服務(wù)程序的编程,时钟配置。
Boot ROM还实现了启动辅助模块(BAM),可(kě)使用(yòng)以太网,SD / MMC,USB,CAN,UART等接口从外部存储器下载应用(yòng)程序映像。
第一阶段自举程序
在第一阶段的引导程序中执行以下操作
设置引导加载程序代码使用(yòng)的内存段和堆栈
重置磁盘系统
显示字符串“正在加载操作系统…”
在FAT目录中找到第二阶段引导加载程序
将第二阶段引导加载程序映像以1000:0000的速度读入内存
将控制权转移到第二阶段的引导程序
它将Boot ROM复制到SoC的内部RAM中。必须足够小(xiǎo)以适合通常小(xiǎo)于100kB的内存。它初始化外部RAM和SoC的外部存储器接口,以及其他(tā)可(kě)能(néng)感兴趣的外设(例如,禁用(yòng)看门狗定时器)。完成后,它将根据上下文(wén)执行下一阶段,可(kě)以称為(wèi)MLO,SPL或其他(tā)。
第二阶段自举程序
这是主要的引导加载程序,可(kě)以比第一阶段大10倍,它完成了相关外围设备的初始化。
将引导扇區(qū)复制到本地内存區(qū)域
在FAT目录中查找内核映像
在2000:0000读取内存中的内核映像
重置磁盘系统
启用(yòng)A20線(xiàn)
在0000:0000处建立中断描述符表
将全局描述符表设置為(wèi)0000:0800
将描述符表加载到CPU中
切换到保护模式
清除预取队列
设置保护模式的内存段和堆栈,以供内核代码使用(yòng)
使用(yòng)跳遠(yuǎn)将控制权转移到内核代码
Linux内核
Linux内核是Linux OS的主要组件,并且是硬件和进程之间的核心接口。它在硬件和流程之间进行通信,从而尽可(kě)能(néng)高效地管理(lǐ)资源。内核执行以下工作
内存管理(lǐ):跟踪内存,存储多(duō)少内存以及存储在何处
流程管理(lǐ):确定哪些流程可(kě)以使用(yòng)处理(lǐ)器,何时使用(yòng)以及持续多(duō)長(cháng)时间
设备驱动程序:充当硬件和进程之间的解释器
系统调用(yòng)和安全性:接收来自流程的服務(wù)请求
為(wèi)了将内核置于上下文(wén)中,可(kě)以将它们解释為(wèi)具有(yǒu)3层的Linux机器:
硬件:物(wù)理(lǐ)机-系统的基础,由内存(RAM)和处理(lǐ)器(CPU)以及输入/输出(I / O)设备(例如存储,网络和图形)组成。
Linux内核:操作系统的核心。它是驻留在内存中的软件,可(kě)以告诉CPU该怎么做。
用(yòng)户进程:这些是内核管理(lǐ)的正在运行的程序。用(yòng)户进程共同构成了用(yòng)户空间。内核允许进程和服務(wù)器相互通信。
Init和rootfs – init是要运行的第一个非内核任務(wù),并具有(yǒu)PID1。它将初始化使用(yòng)系统所需的所有(yǒu)内容。在生产嵌入式系统中,它也启动了主要应用(yòng)程序。在这样的系统中,它可(kě)以是BusyBox或定制的应用(yòng)程序。