UBoot使用说明
UBoot操作和常用命令
UBoot常用命令
• usb start: 起动usb 功能 • usb info: 列出设备 • usb scan: 扫描usb storage(u 盘)设备 • f的at文ls:件列出DOS FAT文件系统, 如:fatls usb 0列出第一块U盘中 • fatload: 读入FAT中的一个文件,如:fatload usb 0 0x30000000
• 通常,Boot Loader 是严重地依赖于硬件而实现的, 特别是在嵌入式世界。因此,在嵌入式世界里建 立一个通用的Boot Loader 几乎是不可能的。尽管 如此,我们仍然可以对Boot Loader 归纳出一些通 用的概念来,以指导用户特定的Boot Loader 设计 与实现。
UBoot来源
• nand write [内存地址] [NAND地址] [大小]
– 将SDRAM中地址0x31000000中大小为0x00200000的内容写入NAND Flash的0x100000地址。
– nand write 0x31000000 0x00100000 0x00200000 – NAND write: device 0 offset 1048576, size 2097152 ... 2097152 bytes
Creating 5 MTD partitions on "NAND 256MiB 3,3V 8-bit": 0x000000000000-0x000000040000 : "supervivi" ftl_cs: FTL header not found. 0x000000040000-0x000000060000 : "param" uncorrectable error : 0x000000060000-0x000000560000 : "Kernel" ftl_cs: FTL header not found. 0x000000560000-0x000040560000 : "root" mtd: partition "root" extends beyond the end of device "NAND 256MiB 3,3V 8-bit" -- size truncated to 0xfaa0000 ftl_cs: FTL header not found. 0x000000000000-0x000040000000 : "nand" mtd: partition "nand" extends beyond the end of device "NAND 256MiB 3,3V 8-bit" -- size truncated to 0x10000000
uboot中烧录方法
uboot中烧录方法
在嵌入式系统开发中,U-Boot是一个常用的引导加载程序,用
于引导嵌入式设备的操作系统。
烧录U-Boot到嵌入式设备通常涉及
以下几种方法:
1. 串口烧录,通过串口连接嵌入式设备和主机,使用串口通信
工具(如minicom、putty等)将U-Boot固件通过串口传输到设备
的存储器中。
这种方法需要设备具备串口接口,并且需要主机具备
串口通信工具和相应的串口线缆。
2. TFTP烧录,使用TFTP(Trivial File Transfer Protocol)通过网络将U-Boot固件传输到嵌入式设备的存储器中。
在设备启动时,U-Boot会尝试从网络上的TFTP服务器下载固件。
这种方法需
要设备处于能够访问网络的环境中,并且需要在网络中设置好TFTP
服务器。
3. SD卡烧录,将U-Boot固件写入SD卡,然后将SD卡插入嵌
入式设备,设备在启动时会读取SD卡中的U-Boot固件。
这种方法
需要主机具备SD卡写入工具,如dd命令或Win32 Disk Imager等。
4. JTAG烧录,使用JTAG(Joint Test Action Group)接口连接嵌入式设备和主机,通过专用的JTAG调试器将U-Boot固件烧录到设备的存储器中。
这种方法通常需要专门的硬件设备和相应的调试软件。
在选择烧录方法时,需要根据具体的嵌入式设备和开发环境来决定,确保选择的方法能够有效、安全地将U-Boot固件烧录到设备中,并且需要注意备份设备中原有的U-Boot固件以防止意外情况发生。
希望这些信息能够帮助你更好地理解在U-Boot中的烧录方法。
uboot 启动参数
uboot 启动参数UBOOT是一种常用的启动程序,它能够运行在各种不同的硬件平台上,并且可以通过修改启动参数来适配不同的硬件环境。
下面将分步骤介绍UBOOT启动参数的相关内容。
第一步:获取UBOOT源码首先,需要在官方网站上下载UBOOT源码。
下载完成后,需要解压缩源码包,并通过命令行进入到UBOOT文件夹中。
第二步:配置启动参数配置启动参数需要修改UBOOT的配置文件。
在UBOOT源码目录下,有一个名为“config”的文件夹,其中包含了多个不同的配置文件。
每个配置文件对应着一个不同的硬件平台,可以选择对应的配置文件来进行修改。
打开对应的配置文件,找到“CONFIG_BOOTARGS”这个选项。
这个选项控制了UBOOT的启动参数,包括了启动时使用的内核命令参数、系统启动模式、显示分辨率、硬件时钟等等内容。
根据硬件的不同,需要根据实际情况来进行修改。
如果是嵌入式系统,需要将内核命令参数设置为启动时需要加载的模块和驱动程序;如果是开发板,需要指定启动模式为SD卡或者串口下载模式。
第三步:保存配置文件完成启动参数的修改后,需要保存配置文件。
保存后,可以通过编译UBOOT并将其烧录到目标硬件中。
第四步:运行UBOOT运行UBOOT的方式与平台有关。
在某些开发板上,可以通过在串口终端中运行“boot”命令来启动系统。
在嵌入式系统中,可以通过修改启动顺序来选择从NOR Flash或者SD卡中加载UBOOT。
总结通过上述步骤,可以修改UBOOT的启动参数,并实现对不同硬件平台的适配。
通过正确配置启动参数,可以使系统运行更加稳定,并且更加符合实际需求。
因此,UBOOT启动参数的修改是嵌入式开发中不可忽视的一部分。
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 处。
uboot的常用命令及用法
uboot的常⽤命令及⽤法uboot是bootloader的⼀种,主要是⽤于引导内核启动.uboot除此功能外, 还带有很多其它功能. 功能是通过命令来调⽤.uboot的命令:help //列出当前uboot所有⽀持的命令help 命令 //查看指定命令的帮助reset //重启ubootbootm //⽤于启动内核⽤法: bootm 0x42000000 //从内存地址0x42000000启动内核, 启动前需把内核镜像uImage存放到指定的内存地址printenv //打印所有环境变量的值printenv 环境变量名 //查看指定的环境变量值常⽤环境变量:bootdelay // uboot启动后, 倒计时多少秒后⾃动执⾏环境变量bootcmd的语句bootcmd // 倒计时到0后,⾃动执⾏⾥⾯的语句bootargs // 是⽤于提供给内核的启动参数语句setenv //设置/修改/删除环境变量的值⽤法:setenv 环境变量名 //删除指定的环境变量setenv myargs "hello" //设置环境变量myargs=hello, 如果环境变量没有会创建出来,如果已存则会修改它的值saveenv //保存环境变量,环境变量修改过后必须执⾏此命令才可以保存起来,否则重启后环境变量就恢复了.loady //⽤于从uart线下载⽂件到板上内存⾥(loadb, loads, loadx基本⼀样) ⽤法:loady 0x40008000 //把下载的⽂件从内存地址0x40008000开始存放执⾏"loady 0x40008000"后, uboot就会进⼊等待状态,等着接收数据minicom具有通过uart传输⽂件的功能.按"ctrl+a", 松⼿后再按"s", 选择"ymodem", 在弹出的界⾯⾥按空格键选中要传的⽂件.md 内存地址 //⽤于查看内存地址上的值⽤法:md.b 0x40008000 100 //从内存地址0x40008000开始,查看0x100个字节并输出值md.w 0x40008000 100 //从内存地址0x40008000开始,查看0x100个16位值并输出值md.l 0x40008000 100 //从内存地址0x40008000开始,查看0x100个32位值并输出值mw //⽤于修改内存地址上的值⽤法:mw.b 0x40008000 0xab 100 //从内存地址0x40008000开始的0x100字节空间,设值为0xabmw.w 0x40008000 0xabcd 100 //从内存地址0x40008000开始的0x200字节空间,每16位值设为0xabcdmw.l 0x40008000 0xabcdef88 100 //从内存地址0x40008000开始的0x400字节空间,每32位值设为0xabcdef88 go //执⾏指定内存地址上的指令⽤法:go 0x40008000mmc // sd/mmc接⼝设备(sd卡, emmc)操作命令, 按扇区操作(每扇区512字节)⽤法:mmc read addr blk cnt //从mmc设备上的第blk个扇区开始,共读出cnt个扇区到内存地址addr上mmc write addr blk cnt //把内存地址addr上的数据写⼊mmc设备的第blk个扇区,共cnt个扇区⼤⼩mmc dev //⽤于当看当前的mmc设备是第⼏个mmc erase blk cnt //把mmc设备的第blk个扇区开始清零,共清除cnt个扇区⼤⼩ mmc part //列出当前mmc设备的分区信息mmc list //列出所有的mmc设备信息ext4ls //查看存储设备的ext2/3/4分区⾥的内容⽤法:ext4ls mmc 0:2 //查看第0个存储设备的第⼆个分区ext4load //从ext2/3/4分区⾥读出⽂件到指定的内存地址⽤法:ext4load mmc 0:2 0x40008000 /uImage //从第0个存储设备的第2个分区的根⽬录读出uImage⽂件到内存地址0x40008000 fatls //查看存储设备的fat分区⾥的内容⽤法:fatls mmc 0:1 //查看第0个存储设备的第1个分区(fat分区)fatload //从fat分区⾥读出⽂件到指定的内存地址⽤法:fatload mmc 0:1 0x40008000 /uImage //从第0个存储设备的第1个分区的根⽬录读出uImage⽂件到内存地址0x40008000fatwrite //把内存上的数据存储到fat分区的⼀个⽂件⾥⽤法:fatwrite mmc 0:1 0x40008000 /my.txt 0x35 //把内存地址0x40008000开始的0x35个字节数据写⼊到第0个设备的第1个分区⾥,⽂件名为my.txtrun //执⾏指定的环境变量⾥的语句⽤法:run bootcmd //执⾏环境变量bootcmd⾥的语句//如uboot上已驱动好⽹络设备并环境变设好IP及PC端IP,还可以使⽤以下命令:tftpboot 0x40008000 ⽂件名 // 通过⽹络下载⽂件到内存地址0x40008000, PC端需配置好tftp服务器nfs 0x40008000 pc端IP:/带路径的⽂件名 //pc端需配置好nfs服务器ping ip //检测⽹络是否通指令: bootmbootm ⽤于将内核镜像加载到内存的指定地址处例:bootm 0x82000000查看和修改环境变量指令常⽤环境变量列表bootdelay 执⾏⾃动启动(bootcmd中的命令)的等候秒数baudrate 串⼝控制台的波特率bootfile 默认的下载⽂件名bootargs 传递给Linux内核的启动参数bootcmd ⾃动启动时执⾏命令stdin 标准输⼊设备,⼀般是串⼝stdout 标准输出,⼀般是串⼝,也可是LCD(VGA)stderr 标准出错,⼀般是串⼝,也可是LCD(VGA)serverip TFTP服务器端的IP地址ipaddr 本地的IP地址ethaddr 以太⽹的MAC地址netmask 以太⽹的⽹络掩码gatewayip 以太⽹的⽹关指令: setenvname value第1个参数是环境变量的名称。
联咏方案uboot
联咏方案uboot1. 联咏方案概述联咏方案(LinkIt)是联发科(MediaTek)推出的一套物联网(IoT)解决方案,包括硬件和软件。
其中,uboot(universal bootloader)是一款开源的引导加载程序,用于启动嵌入式系统。
uboot作为硬件平台和操作系统之间的桥梁,具备了丰富的功能,包括启动系统、烧录固件、设置环境变量等。
联咏方案的uboot是经过定制和优化的,以适应联咏方案的特点和需求。
本文档将介绍联咏方案的uboot的基本使用方法和常见功能,帮助开发者更好地利用uboot来开发和调试联咏方案的嵌入式系统。
2. uboot的基本使用方法2.1 编译uboot在开始使用uboot之前,需要先编译uboot源代码。
联咏方案提供了uboot的源代码和编译工具链。
以下是编译uboot的基本步骤:1.下载uboot源代码,并解压到本地目录。
2.进入uboot源代码目录,执行以下命令配置编译选项:make menuconfig3.在配置界面中,根据目标设备的特点进行配置,如处理器架构、存储设备等。
4.保存配置并退出配置界面。
5.执行以下命令编译uboot:make6.编译成功后,生成可执行文件u-boot.bin。
2.2 烧录uboot烧录uboot到目标设备的闪存中,可以使用烧录工具,如OpenOCD、J-Link等。
以下是烧录uboot的基本步骤:1.将目标设备与烧录工具连接,确保连接正常。
2.执行以下命令烧录uboot:make flash3.等待烧录完成。
2.3 uboot交互界面在uboot启动后,会进入uboot的交互界面。
通过该界面,可以执行各种uboot命令。
以下是uboot交互界面的基本命令:•help:显示所有可用的uboot命令及其说明。
•printenv:显示当前uboot的环境变量。
•setenv:设置uboot的环境变量。
•saveenv:保存uboot的环境变量。
uboot常用命令
U-Boot(Universal Bootloader)是一款常用的开源引导加载程序,用于嵌入式系统的启动 和管理。以下是一些常用的 U-Boot 命令示例:
1. printenv :打印环境变量列表。
2. setenv <variable> <value> :设置环境变量的值。
8. mw <addr> <value> [<length>] :将指定的十六进制数值写入到指定的内存地址。
9. mmc list :显示支持的 MMC 存储设备列表。
10. tftpboot <addr> <filename> :通过 TFTP 协议从网络下载一个文件到指定的内存 地址。
11. fatls <interface> <partition> :列出指定接口(如 mmc、usb 等)上指定分区 中的文件列表。
3. saveenv :保存环境源自量到存储设备中,以便下次启动时使用。
4. boot :启动操作系统,根据环境变量中的配置来加载内核镜像和根文件系统。
5. bootm :直接从指定的内存地址启动指定的内核镜像。
6. help :显示帮助信息,列出可用的 U-Boot 命令和它们的功能说明。
7. md <addr> <length> :在指定的内存地址处以十六进制格式显示指定长度的数据。
12. run <script> :运行一个预定义的 U-Boot 脚本。
13. reset :重启设备。
这些命令只是 U-Boot 中的一部分,U-Boot 还提供了很多其他的命令和功能来管理和配 置系统。请注意,具体可用的命令和支持的功能取决于 U-Boot 版本以及不同的硬件平台 和配置。在实际使用时,您可能需要参考特定版本的 U-Boot 的文档或提供的帮助信息来 获取更详细和准确的命令列表和说明。
uboot 命令详解
u-boot 技术文档1.U boot 命令详解1.1查看帮助命令使用help 或者?1.2环境变量打印环境变量:printenv设置环境变量:setenv(不会保存)保存环境变量:saveenv这个时候就有了1.3nandflash命令使用nand查看nandflash 所有指令擦除nand erase1.4norflash命令查看Flash信息命令: flinfo加/解写保护命令: protect擦除命令: erase1.5内存命令nm1.5USB指令使用help usb 查看usb具体指令使用usb 启动使用usb tree查看信息f atls usb 0 罗列u盘信息1.5.1实例演练usb指令烧写1.6实例演练ftp指令烧写环境变量中体现了开发板上的IP地址为192.168.0.2,网关为192.168.0.1,要求电上的tftp 服务器的IP为192.168.0.1;运行电脑上tftp服务器,指定好根目录,将内核和根文件系统放在根目录下。
注:线接上后,电脑上的本地连接可能是显示网络电缆没插好,这很正常!在使用过程中它们会自动去连接!<2>分别下载内核和根文件系统到内存0x30008000开始的空间先检查坏块nand bad再擦除坏块清理某个区域0x560000 0x3b22c00将根文件系统加载到0x30008000然后再将根文件系统写到0x560000 0x3b22c00这个位置然后重启:重复上面的步骤:nand erase 0x60000 0x267000将内核文件保存到0x60000 0x267000这块区域运行1.8系统重启指令2.U boot 内核移植在cpu/arm920t/start.S中添加以下代码在修改并添加为以下代码在include/configs/mini2440.h修改为如下:将以下代码修改为:将以下代码修改为:将以下代码修改为:在drivers/mtd/nand/s3c2410_nand.h 在最后下面代码上添加如下带码:。
uboot 代码运行流程
uboot 代码运行流程U-Boot代码运行流程U-Boot(Universal Bootloader)是一个开源的引导加载程序,广泛应用于嵌入式系统中。
它负责在系统上电后初始化硬件并加载操作系统内核,是系统启动的重要一环。
下面将从U-Boot代码的运行流程方面进行介绍。
1. 启动阶段当系统上电后,处理器会从预定义的存储器地址开始运行代码。
U-Boot的启动代码通常存放在ROM中,处理器会从ROM的起始地址开始执行。
启动代码负责初始化处理器和一些外设,然后跳转到U-Boot的入口点。
2. 入口点U-Boot的入口点是指U-Boot的main()函数。
在启动代码的最后,会调用main()函数,从而进入U-Boot的主循环。
U-Boot的主循环负责处理用户输入的命令,并根据命令执行相应的操作。
3. 硬件初始化在main()函数中,首先会进行硬件的初始化工作。
这包括初始化串口、初始化存储器控制器、初始化网络接口等。
硬件初始化的目的是为了确保系统能够正常运行,并为后续的操作做好准备。
4. 系统启动硬件初始化完成后,U-Boot会尝试从存储设备(如闪存、SD卡)中加载操作系统内核镜像。
U-Boot会根据预定义的启动命令(例如bootcmd)来确定从哪个设备加载内核镜像,并执行相应的加载操作。
加载完成后,U-Boot会将控制权交给操作系统内核,进入操作系统的启动阶段。
5. 用户交互一般情况下,U-Boot会在系统启动后进入命令行界面,等待用户输入命令。
用户可以通过串口、网络等方式与U-Boot进行交互,执行各种操作,例如烧写固件、修改配置等。
U-Boot提供了丰富的命令集,可以满足不同的需求。
6. 系统重启当用户输入重启命令或系统发生异常时,U-Boot会执行系统重启操作。
重启操作包括重新初始化硬件、重新加载内核镜像等步骤,以重新启动系统。
U-Boot会将控制权交给重新加载的内核,然后进入内核的启动流程。
总结:U-Boot代码的运行流程包括启动阶段、入口点、硬件初始化、系统启动、用户交互和系统重启等几个关键步骤。
uboot fdt 用法
uboot fdt 用法U-Boot是一个流行的开源引导程序,用于引导各种设备上的操作系统。
它提供了一组功能强大的命令行工具和接口,可用于配置和管理硬件。
其中一个重要的特性是它支持Flash上设备的初始化表(FDT)。
一、简介Flash上设备的初始化表(FDT)是一种数据结构,用于描述Flash设备上的存储器映射和初始化信息。
在U-Boot中,FDT被用来配置和访问各种设备,如串口、USB设备等。
使用FDT可以简化代码,并提供一种方便的方式来描述设备特性。
二、使用方法要使用FDT,首先需要创建一个FDT文件。
可以使用U-Boot的fdt工具来生成FDT文件。
该工具可以根据设备树模板和设备特性生成FDT文件。
以下是一个简单的示例:1.打开终端并启动U-Bootshell。
2.使用fdt工具生成FDT文件。
例如,要生成一个名为"mydevice.dtb"的FDT文件,可以使用以下命令:fdt生成mydevice.dtb>mydevice.fdt这将生成一个名为"mydevice.fdt"的文件,其中包含设备的初始化信息。
3.将生成的FDT文件复制到Flash设备上。
通常,该文件应与U-Boot引导加载程序一起发布,并在启动时由U-Boot加载。
4.在U-Bootshell中,可以使用fdt_load工具将FDT文件加载到内存中。
例如:fdt_loadfdtmydevice.fdt这将将"mydevice.fdt"文件加载到内存中,以便U-Boot可以使用它来访问设备。
5.现在可以使用U-Boot的设备树命令来访问和配置设备了。
例如,可以使用以下命令来设置串口波特率:setenvconsoleserial115200,n8这将设置串口波特率为115200bps,并启用N8模式。
三、注意事项在使用FDT时,请注意以下几点:1.FDT文件应该与U-Boot引导加载程序一起发布,并位于正确的位置。
常用u-boot命令详解(全)
常⽤u-boot命令详解(全)U-boot发展到现在,他的命令⾏模式已经⾮常接近Linux下的shell了,命令⾏模式模式下⽀持“Tab”键的命令补全和命令的历史记录功能。
⽽且如果你输⼊的命令的前⼏个字符和别的命令不重复,那么你就只需要打这⼏个字符即可,⽐如我想看这个U-boot的版本号,命令就是“version”,但是在所有的命令中没有其他任何⼀个的命令是由“v”开头的,所以只需要输⼊“v”即可。
[u-boot@MINI2440]# versionU-Boot 2009.11 ( 4⽉ 04 2010 - 12:09:25)[u-boot@MINI2440]# vU-Boot 2009.11 ( 4⽉ 04 2010 - 12:09:25)[u-boot@MINI2440]# baseBase Address: 0x00000000[u-boot@MINI2440]# baBase Address: 0x00000000由于U-boot⽀持的命令实在太多,⼀个⼀个细讲不现实,也没有必要。
所以下⾯我挑⼀些烧写和引导常⽤命令介绍⼀下,其他的命令⼤家就举⼀反三,或者“help”吧!(1)获取帮助命令:help 或 ?功能:查看当前U-boot版本中⽀持的所有命令。
[u-boot@MINI2440]# help- alias for 'help'askenv - get environment variables from stdinbase - print or set address offsetbdinfo - print Board Info structurebmp - manipulate BMP image databoot - boot default, i.e., run 'bootcmd'bootd - boot default, i.e., run 'bootcmd'bootelf - Boot from an ELF image in memorybootm - boot application image from memorybootp - boot image via network using BOOTP/TFTP protocolbootvx - Boot vxWorks from an ELF imagecmp - memory compareconinfo - print console devices and informationcp - memory copycrc32 - checksum calculationdate - get/set/reset date & timedcache - enable or disable data cachedhcp - boot image via network using DHCP/TFTP protocolecho - echo args to consoleeditenv - edit environment variableeeprom - EEPROM sub-systemerase - erase FLASH memoryexit - exit scriptfatinfo - print information about filesystemfatload - load binary file from a dos filesystemfatls - list files in a directory (default /)flinfo - print FLASH memory informationfsinfo - print information about filesystemsfsload - load binary file from a filesystem imagego - start application at address 'addr'help - print online helpi2c - I2C sub-systemicache - enable or disable instruction cacheiminfo - print header information for application imageimls - list all images found in flashimxtract- extract a part of a multi-imageitest - return true/false on integer compareloadb - load binary file over serial line (kermit mode)loads - load S-Record file over serial lineloadx - load binary file over serial line (xmodem mode)loadx - load binary file over serial line (xmodem mode)loady - load binary file over serial line (ymodem mode)loop - infinite loop on address rangels - list files in a directory (default /)md - memory displaymm - memory modify (auto-incrementing address)mmc - MMC sub-systemmtest - simple RAM read/write testmw - memory write (fill)nand - NAND sub-systemnboot - boot from NAND devicenfs - boot image via network using NFS protocolnm - memory modify (constant address)ping - send ICMP ECHO_REQUEST to network hostprintenv- print environment variablesprotect - enable or disable FLASH write protectionrarpboot- boot image via network using RARP/TFTP protocolreginfo - print register informationreset - Perform RESET of the CPUrun - run commands in an environment variablesaveenv - save environment variables to persistent storagesetenv - set environment variablesshowvar - print local hushshell variablessleep - delay execution for some timesource - run script from memorytest - minimal test like /bin/shtftpboot- boot image via network using TFTP protocolunzip - unzip a memory regionusb - USB sub-systemusbboot - boot from USB deviceversion - print monitor version如果你想获取某条命令的更详细的帮助,可以使⽤:help <你想要查的指令>或者 ? <你想要查的指令> ,甚⾄ h <你想要查的指令缩写>。
AmlogicU-boot使用说明
Amlogic U-boot 使用说明2009.05.19 V0.02.r2561.U-boot概述U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。
其源码目录、编译形式与Linux内核很相似。
使用优点:a)开放源码;b)支持多种嵌入式操作系统内核;c)支持多个处理器系列;d)较高的可靠性和稳定性;e)高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;f)丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;g)较为丰富的开发调试文档与强大的网络技术支持;2.U-boot源码目前,Amlogic U-boot是在U-boot 2009.03版本基础上移植,代码的url:https:///svn/model_ae/aml-uboot。
U-Boot主要目录结构:- board 目标板相关文件,主要包含SDRAM、FLASH驱动,外设IO配置等;- common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;- cpu 与处理器相关的文件。
如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;- driver 通用设备驱动,如CFI FLASH驱动(目前对INTEL FLASH支持较好)- doc U-Boot的说明文档;- examples可在U-Boot下运行的示例程序;如hello_world.c,timer.c;- include U-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;- lib_arc ARC处理器体系相关的文件;- net 与网络功能相关的文件目录,如bootp,nfs,tftp;- tools 用于创建.bin和.img文件等的工具;文件系统;fs-3.实现功能支持CPU:z Nike支持目标板:z dvbc_8218_ts_ref_v1.0已实现功能:a)Uart驱动,包括Stdin、Stdout、Stderr;b)SPI Nor flash读写操作;c)Nand flash;d)IPL;e)Loader;f)SD/SDHC/MMC Card驱动;g)Nike Ethernet驱动,支持TFTP、BOOTP、DHCP等功能;h)Mkimage Tool;i)存取启动参数;j)FAT文件系统;4.使用步骤4.1.编译编译u-boot需要使用交叉编译器arc-elf32-gcc,编译环境在linux下进行。
UBoot常用命令手册
UBoot常⽤命令⼿册UBoot常⽤命令⼿册U-Boot还提供了更加详细的命令帮助,可以通过”?”显⽰⽀持的命令列表,通过help [CommandName]命令还可以查看每个命令的参数说明。
1、bootmbootm [addr [arg ...]]- boot application image stored in memorypassing arguments 'arg ...'; when booting a Linux kernel,'arg' can be the address of an initrd imagebootm命令可以引导启动存储在内存中的程序映像。
这些内存包括RAM和可以永久保存的Flash。
第1个参数addr是程序映像的地址,这个程序映像必须转换成U-Boot的格式。
第2个参数对于引导Linux内核有⽤,通常作为U-Boot格式的RAMDISK映像存储地址;也可以是传递给Linux内核的参数(缺省情况下传递bootargs环境变量给内核)。
附加说明: 要求⼆进制代码为制定格式的。
通常为mkimage处理过的⼆进制⽂件。
起动UBOOT TOOLS制作的压缩LINUX内核, bootm 32000002、bootpbootp [loadAddress] [bootfilename]bootp命令通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的⽂件到内存。
第1个参数是下载⽂件存放的内存地址。
第2个参数是要下载的⽂件名称,这个⽂件应该在开发主机上准备好。
附加说明: 通过⽹络启动,需要提前设置好硬件地址bdinfo打印ARM相关信息3、cmpcmp [.b, .w, .l] addr1 addr2 count- compare memorycmp命令可以⽐较2块内存中的内容。
.b以字节为单位;.w以字为单位;.l以长字为单位。
5 u-boot的使用
u-boot的命令
SD/EMMC操作命令
mmc write addr blk# cnt 将内存addr中的数据写入到起始块为blk#、大小为cnt
块中。
u-boot的命令
usb操作命令
usb start -usb reset -usb stop -usb info --
启动并扫描USB控制器 重置 停止 查看信息
从SD卡烧写u-boot到emmc的命令序列
resetenv
擦除环境变量保存的位置,让环境变量恢复 默认
u-boot的环境变量
设置环境变量
格式:setenv 变量名 变量值 注意,变量名与变量值之间没有“=”号;如果变量值是一个很长的字 符串,可以用双引号引起来。 例如:
▶setenv serverip 192.168.1.88 ▶setenv myval “help my val”
usbethaddr 开发板网口的mac地址
Байду номын сангаас
gatewayip 网关
netmask子网掩码
ipaddr
开发板网口的ip地址
serverip 服务器的ip地址(ubuntu虚拟机)
u-boot的环境变量
各个环境变量的含义:
nfsboot从网络共享挂载根文件系统的启动命令序列
wruboot2emmc
介。 u-boot通过环境变量来保存一些参数,有了环境
变量,用户可以进行更复杂的设置。
思考题
u-boot通过命令和环境变量来使用,如何设置环 境变量,修改环境变量的值,保存环境变量?
在u-boot中,传输文件的命令有什么?
u-boot的使用
u-boot的启动信息分析 u-boot的命令行
uboot启动流程
uboot启动流程U-Boot是一款开源的嵌入式引导加载程序(bootloader),主要用于嵌入式系统的引导启动。
它是一个跨平台的引导加载程序,可以在不同的处理器架构和操作系统上运行。
下面将介绍U-Boot的启动流程。
U-Boot启动流程主要包括三个阶段:启动ROM代码、启动SPL(Secondary Program Loader)和启动U-Boot。
首先,当嵌入式设备上电后,处理器会首先执行固定在芯片内部的启动ROM代码。
这些代码主要完成一些基本的硬件初始化工作,例如设置栈指针、初始化外设等。
然后,启动ROM 代码会从预定义的启动设备(例如闪存、SD卡等)中加载SPL。
接下来,SPL(Secondary Program Loader)被加载到内存中执行。
SPL是一个较小的引导加载程序,主要作用是完成一些必要的初始化和硬件配置。
SPL会初始化内存控制器、外设等,并加载U-Boot镜像到内存中。
最后,U-Boot被加载到内存中执行。
U-Boot是一个功能强大的引导加载程序,拥有丰富的命令和功能。
它可以根据不同的系统配置进行配置和扩展,并提供了丰富的调试和测试功能。
U-Boot的启动流程主要可以分为以下几个步骤:1. CPU初始化:U-Boot开始执行后,首先进行CPU的初始化工作,包括设置栈指针、cache的初始化等。
2. 设备初始化:接下来,U-Boot会初始化外设设备,例如串口、网络接口等。
这些设备的初始化是为了后续的调试和配置工作做准备。
3. 系统环境的初始化:U-Boot会读取存储在非易失性存储设备(例如NAND闪存、SD卡等)中的环境变量,根据这些变量进行系统的初始化配置。
4. 设备驱动的加载:U-Boot会加载并初始化必要的设备驱动程序,以便后续的硬件操作可以正常进行。
5. 启动命令的执行:U-Boot会根据配置文件中的设置,执行预定义的启动命令。
这些命令可以是启动操作系统、加载应用程序等。
uboot学习之uboot启动流程简述
uboot学习之uboot启动流程简述⼀、uboot启动分为了三个阶段BL0、BL1、BL2;BL0表⽰上电后运⾏ROM中固化的⼀段程序,其中ROM中的程序是⼚家写进去的,所以具体功能可能根据⼚家芯⽚⽽有所不同。
功能如下:1. 初始化系统时钟、特殊设备的控制器、启动设备、看门狗、堆栈、SRAM等硬件;2. 验证B1镜像,并且加载BL1镜像到SRAM中,然后跳转到BL1镜像的地址上。
BL0需要将BL1加载到对应的RAM上,这就涉及到它的启动模式,详细如下:1.OneNand Boot模式要了解OneNAND先得了解NOR Flash和NAND Flash。
与NOR Flash相⽐,NAND Flash的读数据速度稍慢,但是擦写速度快得多,并且在容量、使⽤寿命、成本上也占有较⼤优势。
NOR Flash的编程简单,⽽NAND Flash的编程较为复杂(因为它的flash管理需要特殊的接⼝)。
NAND Flash⼀般⽤于存储数据,⽽NOR Flash⼀般⽤于存储启动代码。
NOR Flash带有SRAM接⼝,有⾜够的地址引脚来寻址,可以很容易地存取其内容的每⼀字节(有限的地址引脚是限制其容量的因素之⼀)。
NAND Flash使⽤复杂的I/O⼝来串⾏地存取数据,各个产品或⼚商的⽅法可能各不相同。
为了弥补NAND Flash的不⾜,三星公司在NAND Flash芯⽚内集成了⼀个RAM接⼝,命名为OneNAND Flash,这类Flash拥有与NOR Flash相同的简单接⼝,⽽且不受地址引脚的限制,即容量与地址引脚⽆关。
其实OneNAND 其实就是采⽤了NOR的接⼝,NAND的架构,是两者的性能得到了综合。
这就有了X-LOADER的产⽣,以前我们接触到的都是BOOTLOADER,其实这个X-LOADER也起到初始化的作⽤,因为我们的BOOTLOADER是放在NAND的架构下的,⽽CPU却是从NOR的接⼝下读取BOOTLOADER到SDRAM中的,所以现在要做⼀个⼯作就是要如何将BOOTLOADER在OneNAND的架构下从NAND复制到SDRAM中,这就是X-LOADER的功能了,它不仅初始化OneNAND,并且把U-BOOT从NAND的架构下复制到BufferRam中,再复制到SDRAM中。
uboot常用命令及其使用
uboot常⽤命令及其使⽤1.帮助信息或者 help第⼀次使⽤uboot,通过?查看所有帮助信息cmd 或者 help cmdbootz #查看bootz命令的帮助信息通过该命令查看某个cmd的帮助信息2.版本信息查看versionuboot启动后,查看uboot版本信息bdinfouboot启动后,查看board信息3.环境变量相关setenv设置⼀个环境变量# 格式:setenv key vlauesetenv bootdelay 5 # 设置uboot启动延时5s删除⼀个环境变量uboot对于⼀个没有值的环境变量,默认不再维护,做删除处理# 格式:setenv keysetenv ipaddr # 删除ipaddr,让ipaddr不复存在修改⼀个环境变量# 格式:setenv key vlauesetenv bootdelay 5 # 原来的bootdleay值被覆盖,采⽤新值5saveenvuboot启动时,从⾮易失性存储器中读取环境变量的值,在内存中维护⼀份拷贝,当采⽤setenv命令创建、修改、或者删除后,内存中被相应地创建、修改或者删除,⾮易失存储器中的那⼀份并没有改变。
直到执⾏saveenv,写⼊⾮易失性存储器。
print打印所有环境变量及其值。
print # 打印所有打印某⼀个。
如果要查看某个你知道名字的环境变量,可以使⽤该命令。
例如,打印bootcmd命令:print bootcmd # 只打印bootcmd4.内存相关需要注意的是,所有参数需要⼗六进制数字输⼊。
例如12345678默认为0x12345678,当然也可直接显式指定为0x12345678。
mm修改ddr中内存单元的值,可以连续修改。
# mm [.b,.w,.l] addr=>mm.l 80800000 #回车进⼊修改视图,地址⾃动递增80800000:<xxxxxxxx> ? 12345678 # 回车80800004:<xxxxxxxx> ? q # 退出=>nm修改ddr中内存单元的值,地址不⾃增。
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命令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
saveenv
这样拨码开关即没有用处,要使用网络文件系统,请设置:
setenv rootfs '/dev/nfs'