Newtank

个人站

欢迎来到我的个人站~


嵌入式系统的启动

目录

嵌入式软件运行流程

上电复位

加电后从起始地址开始执行板机初始化

板级初始化

板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。

其中一定要完成以下内容:

  • CPU中堆栈指针寄存器初始化
  • BSS段初始化
  • 中断控制器、内存等初始化

板级初始化后进入引导/升级阶段

引导/升级

根据需要进入系统软件引导或系统软件升级。可通过测试通信端口数据或判断特定开关的方式进入不同阶段

系统引导

系统引导有几种情况:

  • 将系统软件从NOR Flash读取到RAM中运行。可以解决成本以及Flash速度比RAM慢的问题
  • 让软件直接在NOR Flash上运行
  • 将软件从外存中加载到RAM中运行。

引导后进入系统初始化阶段。

系统升级

系统可通过网络进行远程升级(TFTP、FTP、HTTP)或通过串口进行本地升级

系统初始化

该阶段操作系统等系统软件进行初始化工作,如初始化数据空间、初始化接口和外设等。该阶段需按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化。

系统初始化后进入应用初始化阶段

应用初始化

该阶段进行应用任务的创建,包括信号量、消息队列的创建和与应用相关的其他初始化工作。

多任务应用运行阶段

各种初始化工作完成后,系统进入多任务昨天,操作系统开始任务调度,各应用开始完成功能。

板级支持包

BSP是一段启动代码,与计算机主板的BIOS差不多,但功能差别很大。

BSP在嵌入式系统中介于硬件与OS内核之间。

驱动程序

BSP中包含驱动程序,用于管理设备的操作。

和BIOS/UEFI的区别

BIOS主要是在电脑开启时检测、初始化系统设备、装入操作系统并调度操作系统向硬件发出的指令。UEFI旨在代替BIOS,提高软件互操作性和解决BIOS的局限性。

BSP是和操作系统捆绑运行,BSP还包含和系统有关的基本驱动。

BIOS是不可修改、不可编程的,只能修改参数。但BSP是可以编程修改的,可以添加系统无关的驱动和程序。