操作系统内核本身也是一个裸机程序,但操作系统运行起来后在软件上分为内核层和应用层,两层权限不同,在内存访问和设备管理上更加精细。
- 一个完整的软件+硬件嵌入式系统,未上电时,bootloader,kernel,rootfs等必须的软件都以镜像的形式存储在启动介质中,在x210中存储介质是SD卡、iNand。
运行时都是在DDR中,与存储介质无关 - 启动过程就是将其从存储介质搬运到DDR内存,然后运行启动代码进行相关的硬件初始化和软件架构的建立,最终达到稳定状态。
- 未上电时,u-boot.bin,zImage,rootfs都在存储介质各自的分区中
宏观上的内核的启动步骤:
- 加载内核到DDR
内核加载到DDR时必须放在内核的链接地址处(类似uboot的重定位),但内核代码不用考虑,这个过程是由uboot来做,内核直接从链接地址处运行即可,x210中该地址是0x30008000 - 去DDR中启动内核镜像
使用命令bootm 30008000即可
实际操作,两种方法:(前提是uboot已经烧录启动)
1.使用fastboot命令将内核镜像烧录到启动介质(SD/iNand),然后使用movi read kernel 30008000命令将内核镜像搬运到DDR,最后使用bootm 30008000启动内核(实际上,uboot启动时如果不打断它进入命令行,uboot倒计时结束后也是自动执行这两个命令来启动内核的)
2.使用tftp服务器远程直接下载内核镜像文件到DDR,然后bootm启动