24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
理论嵌入式Linux要求

技术专题

理论嵌入式Linux要求


理论嵌入式Linux要求

硬件

片上系统

片上系统(SoC)本质上是一种采用单个平台并将整个计算机系统集成到其上的集成电路。它将CPU的功能与执行和执行其功能所需的其他组件结合在一起。它负责使用其他硬件并运行您的软件。SoC的主要优点包括较低的延迟和节能功能。

它由各种构建块组成:

核心+缓存+ MMU  – SoC的核心是处理器,它将定义其功能。通常,SoC具有多个处理器内核。对于真实处理器,例如ARM Cortex-A9。这是选择SoC时要牢记的主要内容。可能由诸如NEON之类的SIMD协处理器共同辅助。

内部RAM  – IRAM由位于CPU旁边的超高速SRAM组成。它的行为类似于CPU缓存,并且通常很小。在引导顺序的第一阶段中使用它。

外设 –它们可以是一个简单的ADCDSP或图形处理单元,它通过一些总线连接到内核。低功耗/实时协处理器可帮助主内核执行实时任务或处理低功耗状态。此类IP内核的示例是USBPCI-ESGX等。

外部RAM

SoC在引导期间和引导之后使用RAM存储临时数据。它是嵌入式系统在常规操作期间使用的内存。

非易失性记忆

在嵌入式系统或单板计算机中,它是SD卡。在其他情况下,它可以是NANDNORSPI数据闪存。它是SoC读取并存储系统工作所需的所有软件组件的数据源。

外围设备

SoC必须具有用于标准通信协议(例如USB,以太网和HDMI)的外部接口。它还包括Wi-Fi和蓝牙的无线技术协议。

软件

首先,我们介绍了启动链,它是SoC上电时发生的一系列操作。

引导ROM:这是存储在ROM中的一段代码,由引导核心在开机时执行。该代码包含有关SoC配置的说明,以使其能够执行应用程序。Boot ROM执行的配置包括内核寄存器和堆栈指针的初始化,高速缓存和行缓冲区的启用,中断服务程序的编程,时钟配置。

Boot ROM还实现了启动辅助模块(BAM),可使用以太网,SD / MMCUSBCANUART等接口从外部存储器下载应用程序映像。

第一阶段自举程序

在第一阶段的引导程序中执行以下操作

设置引导加载程序代码使用的内存段和堆栈

重置磁盘系统

显示字符串正在加载操作系统…”

FAT目录中找到第二阶段引导加载程序

将第二阶段引导加载程序映像以10000000的速度读入内存

将控制权转移到第二阶段的引导程序

它将Boot ROM复制到SoC的内部RAM中。必须足够小以适合通常小于100kB的内存。它初始化外部RAMSoC的外部存储器接口,以及其他可能感兴趣的外设(例如,禁用看门狗定时器)。完成后,它将根据上下文执行下一阶段,可以称为MLOSPL或其他。

第二阶段自举程序

这是主要的引导加载程序,可以比第一阶段大10倍,它完成了相关外围设备的初始化。

将引导扇区复制到本地内存区域

FAT目录中查找内核映像

20000000读取内存中的内核映像

重置磁盘系统

启用A20线

00000000处建立中断描述符表

将全局描述符表设置为00000800

将描述符表加载到CPU

切换到保护模式

清除预取队列

设置保护模式的内存段和堆栈,以供内核代码使用

使用跳远将控制权转移到内核代码

Linux内核

Linux内核是Linux OS的主要组件,并且是硬件和进程之间的核心接口。它在硬件和流程之间进行通信,从而尽可能高效地管理资源。内核执行以下工作

内存管理:跟踪内存,存储多少内存以及存储在何处

流程管理:确定哪些流程可以使用处理器,何时使用以及持续多长时间

设备驱动程序:充当硬件和进程之间的解释器

系统调用和安全性:接收来自流程的服务请求

为了将内核置于上下文中,可以将它们解释为具有3层的Linux机器:

硬件:物理机-系统的基础,由内存(RAM)和处理器(CPU)以及输入/输出(I / O)设备(例如存储,网络和图形)组成。

Linux内核:操作系统的核心。它是驻留在内存中的软件,可以告诉CPU该怎么做。

用户进程:这些是内核管理的正在运行的程序。用户进程共同构成了用户空间。内核允许进程和服务器相互通信。

Initrootfs  – init是要运行的第一个非内核任务,并具有PID1。它将初始化使用系统所需的所有内容。在生产嵌入式系统中,它也启动了主要应用程序。在这样的系统中,它可以是BusyBox或定制的应用程序。

请输入搜索关键字

确定