电子说
关于uboot编译生成的文件,肯定都可以用到的,我们在执行rk编译脚本的时候不用关注这些文件,最终就生成了可执行文件update.img,实际上这个镜像文件经过了多个工具链合成的。在烧录的时候我们可以分开烧录,也可以烧录最终的生成文件。


U-Boot编译成功后会在根目录下生成一些重要文件(支持TPL/SPL编译时才有TPL/SPL的生成文件):
// U-Boot阶段./u-boot.map // MAP表文件./u-boot.sym // SYMBOL表文件./u-boot // ELF文件,类同内核的vmlinux(重要!)./u-boot.dtb // u-boot自己的dtb文件./u-boot.bin // 可执行二进制文件,会被打包成uboot.img用于烧写// SPL阶段./spl/u-boot-spl.map // MAP表文件./spl/u-boot-spl.sym // SYMBOL表文件./spl/u-boot-spl // ELF文件,类同内核的vmlinux(重要!)./spl/u-boot-spl.dtb // spl自己的dtb文件./spl/u-boot-spl.bin // 可执行二进制文件,会被打包成loader用于烧写// TPL阶段./tpl/u-boot-tpl.map // MAP表文件./tpl/u-boot-tpl.sym // SYMBOL表文件./tpl/u-boot-tpl // ELF文件,类同内核的vmlinux(重要!)./tpl/u-boot-tpl.dtb // tpl自己的dtb文件./tpl/u-boot-tpl.bin // 可执行二进制文件,会被打包成loader用于烧写
关于环境变量:
ENV(Environment-Variables) 是U-Boot支持的一种全局数据管理和传递方式,原理是构建一张HASH映射表,把用户的数据以"键值-数据" 作为表项进行管理。
EVN 通常用于定义平台配置参数:固件加载地址、网络配置(ipaddr、serverip)、bootcmd、
bootargs等,用户可以在命令行下使用 printenv 命令打印出来。
用户可选择是否把ENV数据保存到本地存储上
ENV数据仅限于U-Boot使用,无法直接传递给内核、内核也无法直接解析
用户层可以通过U-Boot提供的fw_printenv工具访问ENV数据
RK 平台上 ENV 数据的存储地址和大小定义如下(单位:字节):
if ARCH_ROCKCHIPconfig ENV_OFFSEThexdepends on !ENV_IS_IN_UBIdepends on !ENV_IS_NOWHEREdefault 0x3f8000helpOffset from the start of the device (or partition)config ENV_SIZEhexdefault 0x8000helpSize of the environment storage areaendif
全部0条评论
快来发表一下你的评论吧 !