UBoot实验2、uboot使用实验
UBoot使用说明

setenv rootfs '/dev/mtdblock3 rw rootfstype=yaffs2'
要使用PAL制视频输出,请设置:
setenv videostd 'pal'
要使用NTSC制视频输出,请设置:
setenv videostd 'ntsc'
通过UBoot可以设置Linux内核挂载各种文件系统和视频输出格式。TechvDM355的UBoot支持板上开关设置,当然也可以不用,下面说明之:
1、使用SW3设置文件系统和视频输出
具体功能请阅读SW3左下方的丝印,或者TechvDM355 Nhomakorabea用说明书。
要使用SW2,必须设置UBoot环境变量 videoswaddr,过程如下:
a、复位时按任意键进入uboot命令行
b、设置videoswaddr:
setenv videoswaddr '0x20'
saveenv
0x20表示拨码开关的I2C地址。
此时即可把开关拨到希望的位置,然后按复位键。
如果需要使用LCD,请在复位之前按住SW8(板卡右下角)。
2、不使用SW3设置文件系统和视频输出
要使用LCD视频输出,请设置:
setenv videostd '480p'
最后,记得使用 saveenv 来保存UBoot环境变量,设置好用按复位键即可。
我们把UBoot环境变量videoswaddr清除即可,过程如下:
a、复位时按任意键进入uboot命令行
b、设置videoswaddr:
setenv videoswaddr
实验二 bootloader

实验二 bootloader,内核与文件系统烧写【实验目的】将开发板还原出厂设置【实验学时】2【实验内容】1、烧写bootloader应用程序:u-boot.bin2、烧写linux 操作系统内核:uImage3、烧写根文件系统:root.cramfs4、烧写应用程序【实验原理】【实验要求】【实验步骤】在 windows xp 下进行Linux 系统烧写时,需要烧写bootloader应用程序,linux 操作系统内核,根文件系统和应用程序,分别是如下四个uboot.bin, uImage, root.cramfs, run_exp.tar.bz2。
1、安装并口驱动(1) 将并口线一端连接到PC机上,另一端连接到开发板的14针并口上。
将串口线一端连接到PC机上,另一端连接到开发板的9针串口上。
(2) 把整个 GIVEIO 文件夹拷贝到 C:\WINDOWS 下,并把该目录下的giveio.sys 文件拷贝到 C:\WINDOWS\system32\drivers 下。
(3) 在控制面板里,选添加硬件如图 2-1。
图 2-1图 2-1中选下一步,如图 2-2:图 2-2图 2-1中选下一步,如图 2-3:图 2-3 图 2-3中选下一步如图 2-4:图 2-4 图 2-4中选下一步,如图 2-5:图 2-5图 2-5中选下一步,如图 2-6图 2-6注意,这里不一定会显示giveio。
选择从磁盘安装如图 2-7:图 2-7指定驱动为 C:\WINDOWS\GIVEIO\giveio.inf文件,点击确定。
继续点击下一步,完成安装。
图 2-72、烧写bootloader将目录bootloader放d盘根目录下。
(1) 点击“开始”中的“运行”输入 cmd,找到目录bootloader,运行该目录下的sjf2440-s.exe文件,输入:> sjf2440-s.exe /f:u-boot.bin进入烧写界面,如图 2-8,界面会显示 CPU的 ID:0x0032409d ,这时候我们对烧写进行地址位的选择,选择4。
3 利用u-boot下载VxWorks操作系统

实验3 利用u-boot下载VxWorks操作系统一实验原理实验2创建了一个基于目标板的Bootable工程,并最终生成了VxWorks映象文件的二进制代码。
该代码运行起来以后就是VxWorks操作系统,但是它不能在主机中运行,它必须通过一定的手段下载到相应的目标机中运行。
实验2编译时选择的BSP是jx2410_920t,它对应的目标机是CVT-2410的实验箱,因此,必须将该代码下载到CVT-2410实验箱中运行。
下载的地址是在代码中已经确定下来的,为0x30010000,此处为SDRAM,该地址在“C:\Tornado2.2\target\config\jx2410_920t\config.h”文件中进行了定义,如下所示的RAM_LOW_ADRS即为VxWorks映象的入口点地址。
#define RAM_LOW_ADRS 0x30010000 /* VxWorks image entry point */#define RAM_HIGH_ADRS 0x33800000 /* RAM address for ROM boot */可以修改该地址,但是注意下面几点:1. 该地址只能为0x30010000以后的地址,如0x30020000,不能使用0x30000000,因为从0x30000000开始的64KB需要作为系统保留的区域供操作系统使用;2. 修改该地址后,必须按照实验2的内容重新建立一个Bootable工程,否则修改无效;3. 该地址修改会牵涉到后续部分实验,此处不建议修改该地址。
必须将VxWorks代码下载到0x30010000地址处,否则将产生错误。
下载方式是通过将目标板与主机PC通过以太网连接,并使用tftp协议进行传输,主机PC作为tftp服务器端将VxWorks.bin所在目录作为tftp服务器的根目录。
Windows下使用tftpd32.exe程序作为tftp服务器。
而客户端上运行的u-boot使用tftp命令连接tftp服务器并获取vxworks.bin文件。
Uboot命令使用

Uboot命令使⽤⼀、uboot启动log简析1、以后带有调试性质的开发,uboot都是烧写到SD卡中的,因为⽅便烧写。
⼆、uboot命令使⽤2.1、help命令查看某⼀个命令帮助信息,?命令名2.2、信息查询1、bdinfo2、printenv命令重要查看当前板⼦的环境变量。
2.3、setenv命令重点设置环境变量,也可以⾃定义环境变量,也可以删除环境变量2.4、saveenv命令重点保存环境变量。
2.5、新建环境变量2.6、删除环境变量2.7、内存操作命令1、md命令2、nm命令3、mm命令4、mw命令5、cp命令6、cmp命令2.8、⽹络操作命令⽹线插如到ENET2上,保证开发板和电脑处于同⼀个⽹段内。
1、ping命令重点2、dhcp命令3、nfs命令重点⽬的就是为了调试程序。
4、tftp命令重点2.9 EMMC/SD卡操作命令1、mmc命令2、mmc info命令3、mmc rescan命令4、mmc list命令5、mmc dev命令6、mmc part命令7、mmc read命令8、mmc write命令9、mmc erase命令最好不要使⽤!!2.10 FAT格式⽂件系统操作命令对于I.MX6U来说,SD/EMMC分为三个分区:第⼀个:存放uboot第⼆个:存放Linux zImage,.dtb。
FAT第三个:系统的根⽂件系统,EXT41、fatinfo命令2、fatls命令3、fstype命令4、fatload命令5、fatwrite命令2.11 EXT格式⽂件系统操作命令1、ext4ls命令2.12 NAND操作命令1、nand info命令2、nand write命令3、nand erase命令4、nand write命令5、nand read命令2.13 BOOT操作命令1、booz命令要启动Linux必须将zImage,dtb放到DRAM。
2、bootm命令3、boot命令2.14 其他命令1、reset命令2、go命令3、run命令4、mtest命令。
U-BOOT移植实验

3 U-BOOT移植实验3.1 解压u-boot源码1.在虚拟机中,利用Samba共享一个文件夹给XP,例如共享“/home/uptech”文件夹2.将该文件夹的权限设为可读可写可执行“chmod 777 /home/uptech”3.在XP中,把“03/下午/src”文件夹拷贝到“//192.168.1.12”的共享文件夹uptech内,并把uptech中的“src”更名为“03 u-boot”4.在Linux虚拟机中进入该文件夹“cd /home/uptech/03 u-boot”输入“ls”命令,可见该文件夹内有3个文件:“u-boot-1.3.2.tar.bz2”(u-boot-1.3.2源码压缩包)“dm9000x.h”、“dm9000x.c”(dm9000网卡驱动程序)5.解压u-boot源码压缩包,即输入命令“tar jxvf u-boot-1.3.2.tar.bz2”3.2 建立UP2410的板级支持1.进入u-boot源码文件夹,输入命令“cd u-boot-1.3.2”2.建立UP2410板级支持包“cd board”“mkdir up2410”在board文件夹内创建“up2410”文件夹“cp smdk2410/* up2410/ -a”将smdk2410文件夹的内容拷贝到up2410文件夹内“cd ..”返回u-boot-1.3.2目录“cp include/config/smdk2410.h include/config/up2410.h”以smdk2410为模板创建up2410配置文件up2410.h 3.配置UP2410开发板,即修改“u-boot-1.3.2/Makefile”文件“vi Makefile”输入“/smdk2410”找到smdk2400_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 NULL s3c24x0紧接这两行添加如下两行:up2410_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t up2410 NULL s3c24x0其中第二行开始部分的空白是按TAB键获得的!4.保存退出Makefile文件。
2440超详细U-BOOT(UBoot介绍+H-jtag使用+Uboot使用)

凌FL2440超详细U-BOOT作业(UBoot介绍+H-jtag使用+Uboot使用)Bootloader是高端嵌入式系统开发不可或缺的部分。
它是在操作系统内核启动之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
现在主流的bootloader有U-BOOT、vivi、Eboot等。
本次作业先做Uboot的烧写吧。
希望通过这个帖子,能让更多的初学者朋友了解一些UBoot的知识,也希望高手朋友对我的不足予以斧正。
首先说一下什么是Uboot:U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。
从FAD SROM、8xxROM、PPCBOOT逐步发展演化而来。
其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。
但是U-Boot不仅仅支持嵌入式Linu x系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。
其目前要支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。
这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。
这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。
uboot命令使用教程(uboot参数设置)

uboot命令使⽤教程(uboot参数设置)1. Printenv 打印环境变量。
uboot> printenvbaudrate=115200ipaddr=192.168.0.111ethaddr=32:34:46:78:9A:DCserverip=192.168.0.100Environment size: 80/8188 bytes2. Setenv 设置新的变量如:uboot> setenv myboard AT91RM9200DKuboot> saveenvuboot> printenvbaudrate=115200ipaddr=192.168.0.111ethaddr=32:34:46:78:9A:DCserverip=192.168.0.100myboard=AT91RM9200DKEnvironment size: 102/8188 bytes⼜如想重置启动参数bootargs:uboot> setenv bootargs 'noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0'uboot> saveenv3. saveenv 保存变量命令将当前定义的所有的变量及其值存⼊ flash 中。
⽤来存储变量及其值的空间只有 8k 字节,应不要超过。
(如上例,每次与setenv配合使⽤)4. loadb 通过串⼝ Kermit 协议下载⼆进制数据。
5. tftp 通过⽹络下载程序,需要先设置好⽹络配置简单配置:uboot> setenv ethaddr 32:34:46:78:9A:DCuboot> setenv ipaddr 192.168.0.111uboot> setenv serverip 192.168.0.100//下载 bin ⽂件到地址 0x20000000 处。
U-Boot启动流程分析(二)

U-Boot启动流程(Linux内核)的分析(二)这一篇主要就是U-Boot的config.mk进行了分析。
如果要使用开发板board/<board_name>,就先执行“make<board_name>_config”命令进行配置,然后执行”make all“,就可以生成 如下3个文件。
U-boot.bin:二进制可执行文件,它就是可以直接烧入ROM,NORFlash的文件u-Boot:ELF格式的可执行文件,U-Boot.srec:Motorla S-Record格式的可执行文件对于S3C2410的开发板,执行”make smdk2410_config“."make all"后生成的U-Boot.bin可以烧入NOR Flash中运行,启动后可以看到串口输出一些信息后进行控制界面。
1。
U-boot的配置过程在顶层Makefile中可以看到如下代码:...........MKCONFIG := $(SRCTREE)/mkconfig........smdk2410_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0这是在根目录下的MAKEFILE文件中的两个语句,其中的MKCONFIG就是根目录下的mkconfi文件。
$(@:_config=)的结果就是将”smdk2410_config“中的_config去掉,结果为“smdk2410”.所以“make smdk2410_config”实际上就是执行如下命令:./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0mkconfig的作用,在mkconfig文件开头第6行给出了它的用法# Parameters: Target Architecture CPU Board [VENDOR][SOC]对于S3C2410 S3C2440,它们被称为Soc(systme on chip),上面除CPU外,还集成了包括UART,USB控制器,NANDFlash控制器等设备,称为片上外设。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Uboot的使用
一、 实验目的
在实验平台上使用uboot常用命令及使用Tftp工具传输文件。
二、 实验资源
硬件资源
CPU Samsung S3C2440A
Nand flash Samsung K9D1208V0M 64M
RAM64M
软件资源
bootloader uboot
Tftp server tftpd32.exe
三、 实验前的准备
1、一台PC机。
2、实验平台。
3、串口线、网络线。
4、tftpd32.exe软件。
四、 实验步骤
1、实验前的准备
a)将串口线、网络线连接到实验平台与PC机上。
b)在PC机上运行超级终端串口软件。
2、进入Uboot命令输出状态
实验平台上电,在超级终端串口软件中按空格键进入Uboot命令输出状态。
3、查看Uboot命令
运行help命令显示uboot提供的所有命令。
4、学习U-Boot的几个常用的命令
根据每一条命令的帮助信息,说明这些命令的功能、参数和用法。
z bootm
=> help bootm
bootm [addr [arg ...]]
- boot application image stored in memory
passing arguments 'arg ...'; when booting a Linux kernel,
'arg' can be the address of an initrd image
bootm 命令可以引导启动存储在内存中的程序映像。
这些内存包括RAM 和可以永久保存的Flash。
第1 个参数addr 是程序映像的地址,这个程序映像必须转换成U-Boot 的格式。
第2 个参数对于引导Linux 内核有用,通常作为U-Boot 格式的RAMDISK 映像存储地址;也可以是传递给Linux内核的参数(缺省情况下传递bootargs环境变量给内核)。
例如:
——从内存地址0x300000启动
0x300000
bootm
z cp
=> help cp
cp [.b, .w, .l] source target count
- copy memory
cp命令可以在内存中复制数据块,包括对Flash的读写操作。
第1 个参数source是要复制的数据块起始地址。
第2 个参数target是数据块要复制到的地址。
这个地址如果在Flash中,那么会直接调用写Flash的函数操作。
所以U-Boot 写Flash就使用这个命令,当然需要先把对应Flash区域擦干净。
第3 个参数count是要复制的数目,根据cp.b cp.w cp.l分别以字节、字、长字为单位。
例如:
cp.b 0x300000 0xFE040000 0x180000将1.5M数据从内存拷到flash 0xFE040000位
置。
z loadb
=> help loadb
loadb [ off ] [ baud ]
- load binary file over serial line with offset 'off' and baudrate 'baud'
loadb命令可以通过串口线下载二进制格式文件。
z printenv
=> help printenv
printenv
- print values of all environment variables
printenv name ...
- print value of environment variable 'name'
printenv命令打印环境变量。
可以打印全部环境变量,也可以只打印参数中列出的环境变量。
z setenv
=> help setenv
setenv name value ...
- set environment variable 'name' to 'value ...'
setenv name
- delete environment variable 'name'
setenv命令可以设置环境变量。
第1 个参数是环境变量的名称。
第2 个参数是要设置的值,如果没有第2 个参数,表示删除这个环境变量。
例如:
=> set ipaddr 192.168.1.20 ——设置设备地址为192.168.1.20
z tftpboot
=> help tftpboot
tftpboot [loadAddress] [bootfilename]
tftpboot命令可以使用TFTP协议通过网络下载文件。
按照二进制文件格式下载。
另外使用这个命令,必须配置好相关的环境变量。
例如serverip和ipaddr。
第1 个参数loadAddress是下载到的内存地址。
第2 个参数是要下载的文件名称,必须放在TFTP服务器相应的目录下。
例如:
=> tftpboot 0x300000 uImage ——设置从TFTP server上取uImage到内存地址0x300000
z修改启动参数,启动内核
主要是修改环境变量:bootargs与 bootcmd,实现自动从NAND Flash中复制内核,启动内核.
=>setenv bootargs root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200
设置Linux内核启动的命令行参数。
=>setenv bootcmd nand read 0x31000000 0x30000 0x1d0000;bootm 0x31000000 设置U-Boot启动运行命令:启动时,从Flash中读取内核,,然后执行bootm命令,启动Linux内核,以实现Linux系统的自动启动。
5、U-Boot命令的使用实例
a)通过kermit协议使用串口向实验平台的SDRAM传送文件u-boot.bin。
=>loadb
b)输出完毕后使用,nand擦除和写入命令将文件u-boot.bin写入实验平台的nand
flash里,如果烧写正确实验平台重新上电后可正常运行。
=>nand erase 0x0 0x100000 //擦除NAND Flash
=>nand write 0x33000000 0x0 0x100000 //对NAND Flash进行写操作
c)查看环境变量命令printenv。
d)使用环境设置命令setenv和存储命令saveenv。
Environment size: 507/65532 bytes
SMDK2440 # setenv ipaddr 192.168.0.111 SMDK2440 # saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
e)使用TFTP命令传输文件。
当然这前提是PC与实验平台这间网络是通畅的。
(1)启动TFTP SERVER软件。
(在光盘/tools目录下)
(2)在终端上运行tftp 0x31000000 u-boot.bin命令,将文件传输到地址内存地址0x31000000。
(3)使用nand擦除和写入命令将文件u-boot.bin写入实验平台的nand flash里,如果烧写正确实验平台重新上电后可正常运行。
=>nand erase 0x0 0x100000 //擦除NAND Flash
=>nand write 0x31000000 0x0 0x100000 //对NAND Flash进行写操作。