一个嵌入式系统从软件角度划分三个层次:引导加载程序boot和bootloader
linux内核
文件系统
bootloader在操作系统运行之前运行的一段小程序,可以初始化硬件设备,为调用硬件设备做好准备
bootloader启动可以分为单阶段和多阶段,一般多采用两阶段
stage1完成硬件初始化,为stage2准备RAM,准备堆栈,跳转到stage入口
stage完成本阶段硬件初始化,加载内核文件和跟文件系统,条用内核
bootloader有两种工作模式:下载模式和启动模式
uboot是用于支持嵌入式cpu的bootloader程序,下载地址ftp://ftp.denx.de/pub/u-boot/
uboot目录:board 和开发板有关的文件
conmmon实现uboot支持的命令
cpu与特定的cpu架构相关的代码
uboot.bin的生成:选择要使用的board make smdk6410_config
编译 make CROSS_COMPILE=arm-linux-
uboot命令:help 查看当前版本支持的命令
printenv 查看环境变量
setenv name value 添加环境变量
saveenv 保存环境变量
nand flash 查看flash
nand erase start length 擦除flash
nand write 内存 flash 写入flash
nand read 内存 flash 读出flash
go addr 执行二进制代码
bootm addr 执行内存的二进制代码