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中的起始偏移地址。它会自动读取到内核映像(使用mkimage处理过的)的结束,所以不用给出读取大小。举例:

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的命令解释,推荐参考博文:

http://blog.chinaunix.net/uid-28325016-id-3402039.html

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

假定在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身份进入系统,输入如下命令验证自己定制的内核烧写成功:

[email protected]_DVS365:~# uname -r
2.6.18_pro500-davinci_evm-arm_v5t_le-zjp2
[email protected]_DVS365:~#

时间: 2024-10-29 03:35:14

DM365开发板上uboot操作实践的相关文章

【Android 系统开发】 编译 Android 系统 u-boot 内核 源码 并烧写到 OK-6410A 开发板上

博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编

3、将uboot,kernel,rootfs下载到开发板上

将uboot,kernel,rootfs下载到开发板上 1.为什么要下载 所谓下载,也称烧录,部署. 1.1.什么是u-boot Hi3518EV200 单板的 Bootloader 采用 U-boot. u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备.建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备.Boot Loader的主要运行任务就是将内核映象从硬盘上读到

jz2440烧写内核和文件系统,将虚拟机上的文件通过nfs挂载到开发板上。

1.内核和文件系统要匹配好. 2.文件系统的格式,yaffs2,jaffs nand write.yaffs2... ...$(filesize) a.安装nfs 下面介绍具体操作:1.执行命令:sudo apt-get install nfs-kernel-server ;2.执行命令:mkdir /home/share/NFS 建立一个nfs服务的专有的文件夹;3.建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs;4.在文章的最后一行添加:/home/sha

在STM32F746G-DISCO开发板上使用Nabto + FreeRTOS的演示热泵应用

当使用STM32 ARM Cortex-M微控制器时,ST的免费嵌入式软件STM32Cube提供了所有必要的驱动程序和中间件组件,以减少初始的开发工作.在上述提到的中间件组件中,其中一个是非常受欢迎的FreeRTOS实时操作系统,Nabto正在努力建立一个强大的FreeRTOS + Nabto组合的解决方案. 我们最新推出AppMyProduct应用平台可帮助您快速开发远程控制设备的高质量应用程序.本文介绍了在STM32F746G-DISCO开发板上使用Nabto + FreeRTOS的演示热泵

0-18 烧写开发板出产uboot

此笔记记录关于把tq2440的出厂uboot(u-boot-1.1.6_Q43_20141118.bin)通过jtag v8烧写到norflash中. 从norflash启动uboot的目的,要么可以测试裸机程序,要么,可以通过norflash的uboot进而把uboot镜像通过usb烧写到nand flash当中,再引导nand flash中的linux内核. 安装JTAG烧写软件(JLinkARM_V402d) 把开发板flash开关博导norflash端 把jtag连接开发板和PC断USB

驱动控制开发板上的四个LED小灯

在上一章了解了开发linux驱动程序的步骤,在本章会完成一个真正意义上的linux驱动,该驱动用来控制开发板上的四个LED小灯,通过向驱动发送数据可以控制LED小灯的开关. 首先介绍了LED驱动的实现原理,虽然linux驱动直接与硬件打交道,但并不是linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互.Linux内核的内存管理模块负责同步I/O内存与硬件中的数据.每一个连接linux的硬件在I/O内存中都会有映射首地址. 其次是编写LED驱动.以下创建一个设备文件,第一步:使用

8_陀螺仪MPU6050和PWM控制在STM32F4-Discovery开发板上的实现

很早以前就把圆点博士的程序从STM32F103移植到STM32F4-Discovery(STM32F407),battery,陀螺仪和PWM电机控制的程序都已经测试完毕,运行有一段时间,正常.下面展示几张图片,都是用杜邦线连接起来的,陀螺仪,串口等外设,此外还有nRF24L01,不过nRF24L01的程序读写寄存器可以了,没有尝试过与别的nRF24L01通信.下面一张是正面照片: 下面这张是背面的连接线: 下面这张来个更清晰一些的: 下面这张是圆点博士的上位机软件: 同时我也录制了一些视频,上传

在开发板上实现矢量字体显示

对于开发板实现显示矢量字体,同样PC机一样,我需要字体文件,这里选择simsun.ttc(新宋体). 1)初始化库  FT_Init_FreeType( &library ); /* initialize library */ 2)create face object  FT_New_Face( library, argv[1], 0, &face ); 3)设置字体大小 FT_Set_Pixel_Sizes(face, 24, 0); 4)设置坐标 pen.x = 0 * 64; pen

[转载]在iTOP-4412开发板上调试helloworld应用

本文转自迅为论坛:http://www.topeetboard.com 1.安装ADB驱动 在开发板上调试 Android 应用,首先要安装 ADB 驱动. 通过“SDK Manager.exe”来安装.如下图所示.另外需要注意的是,如果要使用 SDK Manager 安装软件,需要将 Eclipse 关闭. 安装完成后,打开文件夹中“USB_fastboot_tool\platform-tools”的命令行 cmd.exe, 如下图所示,输入命令“#adb”,然后回车.这里集成了 adb 命令