一. 各芯片启动流程概述
-
单片机(c51,stm32)
跑裸机:while(1){}
,配合中断,dma外设等进行应用开发。代码编译好直接加载到flash中,上 电自动运行。(软件代码运行流程)一般stm32有一个启动文件..start_up..
,汇编代码编写,用来分配堆栈空间和中断向量等。随后跳转到mian.c
运行c语言代码。
跑操作系统(rtos):。。。。。 -
X86(Intel,AMD)(windows)(不算嵌入式,用来对比)
启动过程: 电源 —BIOS — windows内核 — C,D盘 — 程序启动(QQ) -
arm(树莓派,IMX6ULL)(linux)
启动过程: 电源 — BootLoader — Linux内核— 文件系统 — KTV点歌机, -
arm(骁龙,麒麟)(Android)
启动过程: 电源 — fastBoot/Bootloader — linux内核 — 文件系统 — 虚拟机 — HOME应用程序 — 点某图标打开某APP
二. 各流程功能的粗略分析
- ① bootloader:自检,初始化必要硬件,启动 Linux 内核
- ② Linux 内核(含有驱动程序):提供进程管理、文件管理、硬件驱动等
- ③根文件系统:系统运行必需的文件、程序
- ④ APP:保存于根文件系统上