嵌入式软件运行流程详述

在这里插入图片描述

1. 上电复位、板级初始化阶段

• 嵌入式系统上电复位后完成板级初始化工作。
• 板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。不同的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:
• CPU中堆栈指针寄存器的初始化。
• BSS段(BLOCK STORAGE SPACE表示未被初始化的数据)的初始化。
• CPU芯片级的初始化:中断控制器、内存等的初始化。

2. 系统引导/升级阶段

• 根据需要分别进入系统软件引导阶段或系统升级阶段。
• 软件可通过测试通信端口数据或判断特定开关的方式分别进入不同阶段。
系统引导阶段
系统引导有几种情况:
• 将系统软件从NOR FLASH中读取出来加载到RAM中运行:这种方式可以解决成本及FLASH速度比RAM慢的问题。软件可压缩存储在FLASH中。
• 不需将软件引导到RAM中而是让其直接在NORFLASH上运行,进入系统初始化阶段。
• 将软件从外存(如NANDFLASH、CF卡、MMC等)中读取出来加载到RAM中运行:这种方式的成本更低。
系统升级阶段
• 进入系统升级阶段后系统可通过网络进行远程升级或通过串口进行本地升级。
• 远程升级一般支持TFTP、FTP、HTTP等方式。
• 本地升级可通过串口使用超级终端或特定的升级软件进行。

3. 系统初始化阶段

• 在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。
• 系统初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。

4. 应用初始化阶段

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

5. 多任务应用运行阶段

各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。

猜你喜欢

转载自blog.csdn.net/Kattlin_gsc/article/details/106889616