友善之臂tiny4412嵌入式Linux操作系统启动流程分析

本次介绍一下友善之臂tiny4412嵌入式Linux操作系统分析
友善之臂tiny4412嵌入式Linux操作系统启动流程分析_第1张图片
首先,可以从官方提供的用户手册中得到这样一张图,它简单表达了裸机烧写启动系统的流程,不过这张图中缺少对BL2的描述,所以我就自己手绘了一张草图对照理解,图形如下
友善之臂tiny4412嵌入式Linux操作系统启动流程分析_第2张图片
启动流程大致可以分为以下几个步骤:
步骤一:执行iROM中的固化代码(BL0)
首先系统上电后根据OM pin引脚的电平判断启动方式,Tiny4412核心板提供了四种启动方式(如下图),但是友善之臂tiny4412 只做了两种启动方式:SD卡启动和eMMc启动。一般进行烧写时都会选择SD卡模式。
友善之臂tiny4412嵌入式Linux操作系统启动流程分析_第3张图片
判断完启动模式后,会执行iROM中固化的代码程序(此代码由SOC生产厂商提供),iROM会初始化硬件环境,从启动设备下载BL1到SRAM,并检测BL1的完整性,若BL1被加密则进行解密操作。最后跳转到BL1代码执行。
步骤二:执行BL1
运行SRAM中的BL1,BL1会重新初始化IRQ,SVC模式的栈,判断启动设备,并从对应启动设备加载BL2到SRAM并检测完整性和解密,完成之后跳转到BL2代码执行。
步骤三:执行BL2
运行SRAM中的BL2,BL2会重新初始化IRQ,SVC模式的栈,设置时钟,初始化外扩的DRAM,判断启动设备,然后从相应的启动设备中读取OS或FW到DRAM中
步骤四:跳转到外部内存(DRAM)运行操作系统(OS或FW)

你可能感兴趣的:(嵌入式Linux操作系统)