dm365双系统linux,DM365开发板上uboot操作实践

uboot主要命令:

nand命令集    nand flash设备的操作命令集合

nand info    显示flash设备信息。

nand device [num] 显示具体flash设备的信息。

nand erase offset size    擦除Nand Flash的 off 偏移地址处的size 字节的数据。举例:

nand erase 200000 300000

nand read loadaddr offset size    从Nand Flash的offset偏移地址处读取size 字节的数据到内存的 loadaddr地址。

nand write loadaddr offset size    把内存中loadaddr地址开始的size字节的数据写到Flash中,从偏移地址为offset的地方开始。举例:

nand write 80700000 200000 300000

bootm [addr]    引导执行内存中的内核映像。如果指定addr,则表示内核映像被加载在该内存地址,否则从默认内存地址处引导执行。举例:

bootm 80700000

nboot load_ram_addr flash_dev_num offset

从flash加载内核到物理内存,然后执行内核程序。load_ram_addr指内核文件加载到内存的地址,flash_dev_num指flash设备的编号,可以使用命令“nand device”查看开发板上的具体flash设备信息。offset指内核文件在flash中的起始偏移地址。它会自动读取到内核映像(使用mkp_w_picpath处理过的)的结束,所以不用给出读取大小。举例:

nboot 80700000 0 200000

tftpboot [loadaddr] [[host_ip:]filename]    使用tftp协议引导执行内核映像。host_ip的tftp服务器的主机IP地址,filename为内核映像文件名,loadaddr为内存地址。举例:

tftpboot 80200000 192.168.0.6:uImage

nfs [loadaddr] [[host_ip:]filename]    使用nfs协议引导执行内核映像。host_ip的nfs服务器的主机IP地址,filename为内核映像文件名,loadaddr为内存地址。举例:

nfs 0x30008000 192.168.0.100:/nfs/uImage

printenv    打印所有uboot的环境变量。

setenv env_name env_value    设置uboot的环境变量。主要环境变量举例:

setenv ipaddr 192.168.0.26

setenv serverip 192.168.0.6

setenv ethaddr 00:0C:29:94:D7:D6

setenv bootfile uImage

setenv autostart yes

setenv bootcmd nboot 80700000 0 200000

setenv bootargs mem=80M console=ttyS0,115200n8,noinitrd rw root=/dev/mtdblock3 rootfstype=yaffs

askenv env_name    当执行该命令后,在输入状态下直接回车,即可实现取消对环境变量env_name的设定。

saveenv    将环境变量的修改保存到flash中。

更多uboot的命令解释,推荐参考博文:

烧写自己编译的内核映像实践

假定在IP为192.168.0.6的开发主机上编译好了自己定制的uImage文件,并配置好了tftp服务和nfs服务。导出可以挂载的nfsroot为:/nfs/nfsboot。准备好了DM365的开发板,串口线和网线均连接好了。在连接串口线的开发主机端,串口调试软件也配置完毕,处于打开状态!

SEED_DVS365-SDK.tar.gz是DM365开发板提供的软件压缩包,其中的内核源码文件“linux-2.6.18_pro500/arch/arm/mach-davinci/board-dm365-evm.c”定义了开发板上的nand flash设备的分区信息,4个分区的大小定义源码如下(从204行开始):

#define BOOTLOADER_SIZE 0x1c0000

#define PARAMS_SIZE 0x40000

#define KERNEL_SIZE 0x400000

#define FS_SIZE 0x3A00000

其实大小依次是1M+768K, 256K, 4M, 58M,总计64M。

1. 对DM365开发板上电,根据提示,进入到uboot的命令行模式。

2. 配置环境变量,然后使用命令“saveenv”进行保存。具体设置的环境变量用printenv命令打印如下:

SEED_DVS365v1.0 :>printenv

baudrate=115200

bootfile="uImage"

ethaddr=00:0C:29:94:D7:D6

bootargs=mem=80M console=ttyS0,115200n8 noinitrd rw root=/dev/mtdblock3 rootfstype=yaffs

bootdelay=9

filesize=212F4C

fileaddr=80700000

ipaddr=192.168.0.26

serverip=192.168.0.6

autostart=yes

bootcmd=nboot 80100000 0 200000

stdin=serial

stdout=serial

stderr=serial

ver=U-Boot 1.3.4 (Dec  7 2009 - 11:07:06)

3. 断电重启后,再次进入到uboot命令行模式下。执行如下命令:

SEED_DVS365v1.0 :>setenv autostart no

SEED_DVS365v1.0 :>tftp 80700000

TFTP from server 192.168.0.6; our IP address is 192.168.0.26

Filename 'uImage'.

Load address: 0x80700000

Loading: #################################################################

##############T ###########################################T ######T ##

##T #################

done

Bytes transferred = 2174796 (212f4c hex)

SEED_DVS365v1.0 :>nand erase 200000 300000

NAND erase: device 0 offset 0x200000, size 0x300000

Erasing at 0x4fc000 -- 100% complete.

OK

SEED_DVS365v1.0 :>nand write 80700000 200000 300000

NAND write: device 0 offset 0x200000, size 0x300000

3145728 bytes written: OK

SEED_DVS365v1.0 :>setenv autostart yes

SEED_DVS365v1.0 :>

4. 断电重启,系统成功加载!

5. 以root身份进入系统,输入如下命令验证自己定制的内核烧写成功:

root@SEED_DVS365:~# uname -r

2.6.18_pro500-davinci_evm-arm_v5t_le-zjp2

root@SEED_DVS365:~#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值