U-Boot命令--制作自己的U-Boot菜单(一)

来源:互联网 发布:arch linux 龙芯 编辑:程序博客网 时间:2024/06/06 00:24

最近接触了U-Boot,作为入门,在大概了解一下U-Boot之后,决定自己制作一个U-Boot的命令菜单,下面会描述怎么制作的,至于具体的实现过程,以后会再拿出来的。

拿样图吧,字母选项尚未完成,请忽略吧:
U-Boot command

如图所示,我所用的开发板采用的是TFTP下载的方式,所以需要网络,这样的话IP地址就必须好好设了,服务器地址是Serverip,客户端也就是开发板的地址是Ipaddr,这两个地址是预先存储在开发板的环境变量中的,从中读出来的,并显示的。下面的菜单选项则根据需要,自己定义的。

思路

这个思路嘛,也是根据需求的来想的,我想做的是一个简单的快捷菜单去下载升级板子上相应的文件,而下载方式就是通过网络使用TFTP服务来的。下面看流程图:

检测网络是否畅通

图有点小,将就下吧
这里写图片描述
读取Flash上的环境变量,Serverip与Ipaddr,这两个地址,交由用户判断是否需要更改。
若需要,先提示用户输入服务端的ip地址即Serverip,输入完之后会检查格式是否正确,不正确会提示用户输入错误,并重新输入。通过之后,再让用户输入服务端的IP地址,与输入服务器的IP地址是一样的,检查格式是否正确。
当服务端与客户端都输入完成后,会提示用户配置完成,然后询问用户是否将此配置保存到Flash中。选择‘是’会保存,‘否’则不保存。
这个保存到Flash中的意思是,把这个保存的内容编程默认的,也就是下次开机时,就会变成这次所保存的值。提示保存成功。
然后会输出此时所用的网络配置。并检测此配置是否畅通,如果畅通则就显示出命令菜单,不畅通会提示用户去检查IP地址是否输入正确以及检查线路是否连接好了。
这个检测是用了Ping命令的机制,只不过就是读取了相应变量的值来获取网络状况。

我定义的U-Boot命令‘menu’

U_BOOT_CMD(    menu, 1, 0, do_menu,    "menu - display a menu, to select the items to do something",    " - display a menu, to select the items to do something");

接下来有时间的话在继续更新。。。

0 0
原创粉丝点击