基于 RV1126B 评估板的 Linux 系统开发详解(二)

发布时间:2026/5/23 21:23:21

基于 RV1126B 评估板的 Linux 系统开发详解(二) 2 U-Boot开发2.1 U-Boot源码说明进入U-Boot源码目录执行如下命令查看U-Boot源码目录。Host#ls -l2.2配置U-BootU-Boot可使用menuconfig进行配置请参考“配置内核选项”章节配置menuconfconfig所需依赖环境。在LinuxSDK源码目录下执行如下命令先编译一次U-Boot脚本会在U-Boot目录下执行make rv1126b_defconfig生成.config文件。Host#./build.sh uboot在LinuxSDK源码目录下执行如下命令进入u-boot目录通过menuconfig配置U-Boot。Host#cd u-boot/Host#make menuconfig //通过menuconfig进行U-Boot配置在U-Boot目录下执行如下命令更新defconfig文件。Host#make savedefconfig //在U-Boot目录下生成新的defconfig文件Host#mv defconfig configs/rv1126b_defconfig //更新U-Boot的defconfig配置文件2.3编译U-Boot在LinuxSDK源码目录下执行如下命令配置编译选项并单独编译U-Boot镜像。Host#./build.sh uboot //执行build.sh脚本编译U-Boot备注U-Boot编译会将rkbin/bin/rk35/目录下的bl31固件一起编译。编译后在LinuxSDK源码u-boot目录下生成U-Boot SPL镜像rv1126b_spl_loader_v1.09.105.bin、和U-Boot镜像uboot.img。2.4替换U-Boot我司已提供U-Boot镜像uboot.img文件位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2017.09-[版本号]-[Git系列号]\”目录下。其中uboot.img文件可通过评估板文件系统固化至系统启动卡或eMMC。亦可通过瑞芯微开发工具RKDevTool固化至eMMC。备注通过瑞芯微开发工具RKDevTool替换方式不支持固化U-Boot镜像至系统启动卡。1通过命令行替换请从系统启动卡或eMMC启动系统请将U-Boot镜像uboot.img文件拷贝至评估板root目录下执行如下命令将其固化至系统启动卡或eMMC。备注如需固化至系统启动卡请将设备节点修改为/dev/mmcblk1p1。Target#dd ifuboot.img of/dev/mmcblk0p1 convfsync //替换U-Boot镜像到对应存储分区Target#reboot2通过瑞芯微开发工具替换请确保评估板Micro SD卡槽未插入Micro SD卡并使用Type-C线将评估板USB 3.0 DRD接口连接至PC机USB接口。备注在进行本次操作前需确保eMMC已固化完整系统镜像。请参考《Linux系统固化手册》文档安装瑞芯微开发工具RKDevTool。将U-Boot镜像uboot.img文件拷贝至Windows非中文工作目录下。a)打开瑞芯微开发工具点击选择待替换的U-Boot镜像uboot.img并勾选对应选项。b)长按评估板的USER1(KEY3)按键将评估板上电启动等待瑞芯微开发工具提示“发现一个LOADER设备”后松开USER1(KEY3)按键。c)点击“设备分区表”在弹出的询问窗口中点击“是(Y)”。d)点击“确定”完成分区表更新。e)点击“执行”按钮固化镜像固化完成后瑞芯微开发工具提示“下载完成”评估板会自动重启等待评估板重启进入系统后即可生效。2.5 U-Boot使用说明2.5.1 U-Boot命令进入方式评估板上电启动后在U-Boot倒计时结束之前按下Ctrl C进入U-Boot命令行模式。U-Boot#help2.5.2环境变量说明1环境变量存储执行命令setenv或env default -f -a修改的是运行空间中的环境变量值须使用saveenv命令将修改后的环境变量保存起来。否则U-Boot重启后将会使用修改前的环境变量值。环境变量修改完成后执行reset命令即可使用修改后的U-Boot环境变量启动。U-Boot#env default -f -aU-Boot#saveenvU-Boot#reset2默认配置信息在U-Boot命令行执行printenv命令可查看环境变量如下提供主要U-Boot环境变量的解析说明。不同版本的U-Boot环境变量可能会有所不同内容仅供参考。/*系统启动时记录启动次数默认不开启这个功能需设置boottest环境变量为1才会开启*/boottestcountif test $boottest 1;then setexpr bootcount ${bootcount} 1;saveenv;echo boottest1 bootcount: ${bootcount};fi/*根据环境变量devtype、devnum从eMMC或Micro SD读取内核镜像以及设备树镜像然后启动Linux*/bootcmdboot_fit;boot_android ${devtype} ${devnum};/*评估板名字为evb_rv1126b*/board_nameevb_rv1126b/*启动延时为0秒*/bootdelay0/*读取设备树文件至DDR地址0x48300000*/fdt_addr_r0x48300000/*读取内核镜像至DDR地址0x45480000*/kernel_addr_r0x45480000/*mmc启动命令。配置mmc启动参数*/mmc_bootif mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi/*USB启动命令。配置USB启动参数*/usb_bootusb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi3环境变量修改本次修改以修改启动延时为1秒为例。U-Boot#setenv bootdelay 12.5.3Kernel参数传递通过U-Boot命令行使用printenv命令看到Kernel参数。亦可观察内核启动阶段的Kernel参数。1root参数指定根文件系统位置如root/dev/mmcblk0p6表示根文件系统位于eMMC中的第6分区。2console参数指定内核启动时的控制台设备如consolettyFIQ0表示使用串口FIQ0作为控制台。由于篇幅过长等原因部分内容均不逐一展示如需获取完整版详细资料请关注Tronlong创龙科技微信公众号或官网或者评论区留言感谢您的支持

相关新闻