linux内核驱动之uboot(一)环境变量

linux内核驱动之uboot(一)环境变量

ID:17904372

大小:36.00 KB

页数:7页

时间:2018-09-09

linux内核驱动之uboot(一)环境变量_第1页
linux内核驱动之uboot(一)环境变量_第2页
linux内核驱动之uboot(一)环境变量_第3页
linux内核驱动之uboot(一)环境变量_第4页
linux内核驱动之uboot(一)环境变量_第5页
资源描述:

《linux内核驱动之uboot(一)环境变量》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一概述Uboot环境变量根据配置文件存在两种定义方式:外部环境变量和内部环境变量外部环境变量指的是将环境变量定义在外部介质上面比如nandflash,norflash,mmc等等,具体定义在什么外部介质需要根据配置文件的宏CONFIG_ENV_IS_IN_XX来定义比如:#defineCONFIG_ENV_IS_IN_MMC1:环境变量在MMC卡上面#defineCONFIG_ENV_IS_IN_NAND1:环境变量在nandflash上面#defineCONFIG_ENV_IS_IN_FLASH1:环境变量在norflash上面#und

2、efCONFIG_ENV_IS_NO_WHERE:废除内部环境变量的定义内部环境变量指的是定义在uboot镜像里边的环境变量,由于不使用外部环境变量必须在配置文件中间定义宏#defineCONFIG_ENV_IS_NO_WHERE二环境变量的类型和用途Uboot环境变量大概包括四种类型的变量(1)网络方面的环境变量比如serveripipaddrnetmaskgatewayip(2)bootcmd(3)bootargs(4)杂项类型的比如bootdelay,baudrate,stdin,stdout1网络类型的环境变量此方面的环境变量具体

3、包括如下几种serverip服务器端的ip地址ipaddr板卡自己的ip地址netmask网络掩码gatewayip网关ethaddr以太网的mac地址网络类型的环境变量主要是为tftp下载文件,挂载nfs根文件系统等网络行为做准备的下面的指令将网络参数都设置好setenvgatewayip192.168.0.1;setenvnetmask255.255.255.0;setenvipaddr192.168.2.2;setenvserverip192.168.1.1;saveenv2bootcmdbootcmd是uboot启动完之后自动执行

4、的命令(延时3秒后执行),bootcmd最重要的任务是加载内核到DDR上去,当然内核可能来自不同的介质包括nand,mmc,网络等等,所以也存在不同类型的bootcmd命令下面介绍几种常用的.nand中加载内核setenvbootcmd'nboot0x81000000nand00x580000;bootm0x81000000';saveenv;mmc卡加载内核setenvbootcmd'mmcrescan0;fatloadmmc00x81000000uImage;bootm0x81000000';saveenv;tftp网络加载内核set

5、envbootcmd'tftpboot0x81000000192.168.1.108:uImage;bootm0x81000000';saveenv;上面的都是较为简单的bootcmd命令都是从相应的的介质中间读取内核到DDR上,然后bootm(bootm就是cpu跳转到这个地址执行代码),对于上述bootcmd命令必须有bootargs环境变量的配合,这样内核起来之后能够正确挂载文件系统同时获得来自uboot传给内核的参数较为复杂的如下setenvbootcmd'mmcrescan0;fatloadmmc00x80900000boot.

6、scr;source0x80900000';saveenv或者是如下setenvbootcmd'tftpboot0x80900000192.168.4.51:boot.scr;source0x80900000';saveenv上述bootcmd命令使用的是脚本方式,也就是说从外部介质中间读入boot.scr的uboot脚本,然后uboot解析该脚本.由于是执行的脚本,其中可以嵌入较多的命令,可以进行较多的操作包括加载内核,设置bootargs环境变量对于使用脚本的bootcmd,我们去设置bootargs可能会不起作用,因为uboot脚本

7、中可能也存在设置bootargs的命令,这样就会替换我们自己设置的bootargs假如不想要使用boot.scr也可以使用上面的bootcmd来代替。总的来说bootcmd是告诉uboot该从哪里加载内核并从哪里启动,每一个bootcmd都是一个可以执行的命令比如mmcrescan0;fatloadmmc00x81000000uImage;bootm0x81000000可以使用上述方法直接启动内核再比如mmcrescan0;fatloadmmc00x80900000boot.scr;source0x80900000可以使用上述方法做系统还

8、原,只要在boot.scr中间放一些烧写内核,uboot的命令即可3bootargsbootargs环境变量实质是uboot传给内核的参数,包括调试终端,内存信息,内核起来之后的ip地址,其中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。