uboot移植(十六)添加启动菜单

参考帮助文档 doc/README.bootmenu

首先我们需要在 Louis210.h 中增加 4 个宏

另外,帮助文档还提到要定义 CONFIG_BOOTDELAY,表示显示菜单多久,这个宏已经定义了,默认为 3s

现在重新编译 u-boot, 从 NAND FLASH 启动开发板, 将 u-boot.bin 烧写到 NAND FLASH

        我这里将所有命令写在一行命令之间使用“;”隔开,将这一行命令拷贝到一个记事本,以后操作时直接复制过来,一个回车就搞定了。 然后执行 reset 复位。

        可以看到, u-boot 显示了默认的菜单界面, 这时只有一条默认菜单, 3s 延迟后, u-boot 就执行第 1 条菜单进入到命令行模式了。
        我们通过设置环境变量来添加菜单。
使用 setenv 添加菜单的格式为:
bootmenu_<num>="<title>=<commands>
<num> 菜单编号,从 0 开始
<title> 菜单标题
<commands> 当一个菜单被选中后要执行的命令
标题和命令以第一个“=” 为分界点
延迟结束后 u-boot 立即执行第一个菜单的命令
按上下键来选择菜单,被选中的菜单以高亮显示,按回车键执行被选中的菜单的命令
按 Esc 键或者 Q 键退出延迟计数,一直显示菜单,直到用户选择某个菜单执行
下面来添加几个菜单,添加完成后,使用 saveenv 保存环境变量到 NAND FLASH

现在执行 reset 命令重启开发板

延迟结束后,执行了第 1 个菜单的命令,打印了 menu0。

我们还可以使用 bootmenu 跟一个延迟参数来启动菜单,不跟参数的话,以环境变量 bootdelay 为延迟时间

我们可以按 Q 键或者 Esc 键退出延迟计数,一直显示菜单直到用户选择某个菜单。

setenv bootmenu_0 start kernel=tftp 20000000 uImage.bin\;bootm 20000000
setenv bootmenu_1 update u-boot(u-boot-a.bin)=nand erase.part bootloader\;tftp 20000000 u-boot-a201801.bin\;nand write 20000000 0 $filesize
setenv bootmenu_2 update log(log.bmp)=nand erase.part log\;tftp 20000000 log.bmp\;nand write 20000000 log

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值