如何确保ARM Linux系统在开机时自动启动特定服务或程序?

ARM Linux系统启动流程

Bootloader阶段

如何确保ARM Linux系统在开机时自动启动特定服务或程序?插图1
(图片来源网络,侵删)

1、总体流程

Bootloader是系统上电后运行的第一段程序,主要完成一些初始化任务。

将Flash中的Linux内核拷贝到RAM中,然后跳转到内核的第一条指令处继续执行。

2、具体步骤

初始化RAM

如何确保ARM Linux系统在开机时自动启动特定服务或程序?插图3
(图片来源网络,侵删)

初始化串口

检测处理器类型

设置Linux启动参数

调用Linux内核映像

Linux内核阶段

如何确保ARM Linux系统在开机时自动启动特定服务或程序?插图5
(图片来源网络,侵删)

1、总体流程

查找处理器内核类型和处理器类型

建立页表

跳转到start_kernel()函数开始内核的初始化工作

调用rest_init()函数创建系统的init进程

挂载根文件系统

使系统处于闲置(idle)状态并等待用户程序的执行

2、具体流程

入口位于文件/arch/arm/kernel/head-armv.S中的stext段。

通过查找处理器内核类型和处理器类型调用相应的初始化函数。

映射所有的物理内存和IO空间。

创建异常向量表和初始化中断处理函数。

初始化系统核心进程调度器和时钟中断处理机制。

初始化串口控制台。

创建和初始化系统cache。

初始化内存管理。

初始化系统的进程间通信机制(IPC)。

调用rest_init()函数创建系统的init进程。

3、Init进程

Init进程进行一系列的硬件初始化。

通过命令行传递过来的参数挂载根文件系统。

init进程会执行用户传递过来的“init=”启动参数执行用户指定的命令。

4、Idle状态

调用cpu_idle()函数来使系统处于闲置(idle)状态并等待用户程序的执行。

对于运行Linux的ARM架构的SOC来说,典型的启动流程通常经过以下步骤:

1、上电复位

2、Boot模式选择

3、Boot ROM加载

4、Boot Flash加载

5、Bootloader加载

6、Linux内核加载

7、Linux内核启动

8、用户空间初始化

9、用户空间运行

详细准确地描述了ARM Linux系统的开机启动流程。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/60589.html

小末小末
上一篇 2024年9月26日 04:04
下一篇 2024年9月26日 04:09

相关推荐