Redboot(Red Hat Embedded Debug and Bootstrap)是Red Hat 公司开发的一个独立运行在嵌入式系统上Bootloader程序,是目前比较流行的一个功能强大、可移植性好的BootLoader。 reboot 是一个采用eCos 开发环境开发的应用程序,并采用了eCos 的硬件抽象层作为基础,但它完全可以脱离eCos 环境运行可以用来引导任何其他的嵌入式操作系统,如Linux、Wince 等。 Redboot 除了一般Bootloader 的硬件初始化和引导内核的功能外,还支持下列功能:λ支持引导脚本,可方便启动应用程序或嵌入式操作系统内核;λ 提供完整的命令行接口,方便用户进行各种系统操作;λ 支持串行通讯协议和网络通性协议;λ 支持GDB 调试,内嵌GDB stub;λ 支持Flash 映像文件系统;λ 通过BOOTP 协议支持网络引导,也可以配置静态IP。 redboot的只要常用命令(ep9315系统常用) Redboot 提供了功能完善的命令行接口,包括对Flash 的操作、对串口或网络的配置、内存管理以及文件下载等,在嵌入式系统的开发过程中,需要经常使用这些命令。Redboot 所支持的命令也会根据嵌入式系统硬件平台的不同而略有差异,例如硬件平台没有Flash,Redboot就不会支持所有关于Flash 的操作,同时,由于Redboot 是源代码开放的,用户甚至可根据特定系统的需求,添加新的命令。 cache使用格式:cache [on | off]功能描述:cache 命令用于管理微处理器的cache,当不带参数时,Redboot 将显示系统当前cache 状态;有参数时,则根据参数值来设置cache 的状态。使用示例:RedBoot>cache //显示系统cache 的当前状态; channel使用格式:channel [-1 | channel number]功能描述:如果不带任何参数,channel 命令会显示当前的控制台通道号,若参数为-l 时,该命令将控制台通道切换到默认的控制台通道,若参数为硬件平台所支持的其他控制台号,则channel 命令就对控制台作相应的切换。使用示例:RedBoot>channel // 显示系统的当前控制台通道号; dump使用格式:dump {-b location} [-l length] [-s] [-1 | -2 | -4]功能描述:显示参数指定区域的数据,显示方式由参数指定。其中:-b location:存储器的起始位置;-l length:显示的长度;-s:使用Motorola S-reconds 格式显示数据;-1:按单字节显示数据;-2:按双字节显示数据;-4:按四字节显示数据;使用示例:RedBoot>dump –b 0x0 -1 // 显示起始位置为0x0 的存储器内容,按单字节显示; exec使用格式: exec [-w timeout] [-r ramdisk_address] [-s ramdisk_length] [-bload_address {-l load_length} ] [-c kernel_command_line] [entry_point]功能描述:执行一个映像文件,如引导Linux 内核。-w timeout:执行映象文件之前的等待时间;-r ramdisk_address:传递给内核的ramdisk_address 起始地址;-s ramdisk_length:传递给内核的ramdisk_address 长度;-b load_address:内核映象文件地址;-l load_length:内核映象文件长度;-c kernel_command_line:传递给内核的命令行; fis creat使用格式:fis create {-b data address} {-l length} [-f flash address] [-e entry][-r relocation address] [-s data length] [-n] [name]功能描述:在FIS(Flash Image System)目录中创建一个映像,将当前RAM 中的数据写入Flash 存储器中,因此,在使用该命令之前,映像文件数据必须已经保存在RAM 中。 -b data address:待写入Flash 数据的存放地址;-l length:写入数据的长度;-f flash address:Flash 地址;-e entry:可执行映像地址;-r relocation address:执行Fis load 命令时,可执行映像的重定位地址;-s data length:写入Flash 中的可执行映像实际长度;-n:用于更新FIS 目录;name:创建映像的名称。使用示例:RedBoot>fis create -b 0x1000000 -l 0x1a5179 ramdisk.gz// 在FIS 目录中创建一个名为ramdisk.gz 的映像,并将地址为0x1000000 的RAM 的内容写入该映像,写入长度为0x1a5179; fis init使用格式:fis init [-f]功能描述:初始化FIS 目录。-f:将所有Flash 空间进行初始化;使用示例:RedBoot>fis init // 初始化FIS 目录。fis list使用格式:fis list [-c] [-d]功能描述:显示FIS 中当前的所有映像文件。-c:显示映像的校验和;-d:显示映像的长度;使用示例:RedBoot>fis list // 显示FIS 中当前的所有映像文件。 fis free使用格式:fis free功能描述:显示Flash 当前的空闲空间。使用示例:RedBoot>fis free // 显示Flash 当前的空闲空间。 fis delete使用格式:fis delete {name}功能描述:删除FIS 目录中的映像。name:需要删除映像的名称;使用示例:RedBoot>fis delete ramdisk.gz // 删除FIS 目录中名为ramdisk.gz 的映像。 fis lock使用格式:fis lock {-f flash_address} {-l length}功能描述:锁定Flash 空间。-f flash_address:锁定Flash 空间的起始地址;-l length:锁定Flash 空间的长度;使用示例:RedBoot>fis lock -f 0x60000000 –l 0x2000 // 锁定起始地址为0x60000000,长度为0x2000 的Flash 空间。 fis unlock使用格式:fis unlock {-f flash_address} {-l length}功能描述:解除Flash 空间的锁定,使用方式与fis lock 类似。 fis erase使用格式:fis erase {-f flash_address} {-l length}功能功能:擦除指定的Flash 空间。-f flash_address:指定需要擦除Flash 空间的起始地址;-l length:需要擦除Flash 空间的长度;使用示例:RedBoot>fis erase -f 0x60000000 –l 0x2000 // 擦除起始地址为0x60000000,长度为0x2000 的Flash 空间。 fis write使用格式:fis write {-b mem_address} {-l length} {-f flash_address}功能描述:将数据由RAM 写入flash 中。-b mem_address:待写数据在RAM 中的起始地址;-l length:待写数据的长度;-f flash_address:写入Flash 的起始地址;使用示例:RedBoot>fis write -b 0x00004000 –l 0x2000 –f 0x60000000 // 将RAM 中起始地址为0x00004000,长度为0x2000 的数据写入起始地址为0x60000000 的Flash 中。 fconfig使用格式:fconfig功能描述:对已保存在Flash 中的配置选项进行管理和重配置。使用示例:RedBoot>fconfig // 对Flash 中的配置选项进行管理和重配置。 go使用格式:go [-w <timeout>] [start_address]功能描述:执行放在某一位置的可执行代码。-w <timeout>:执行代码前的等待时间;start_address:可执行代码的起始地址;使用示例:RedBoot>go 0x00002000 // 执行位于0x00002000 的代码。 ip_address使用格式:ip_address [-l <local_ip_address>] [-h <server_ip_address>] [-d<DNS_server_ip_address>]功能描述:设置或改变系统使用的IP 地址。-l <local_ip_address>:本机的IP 地址;-h <server_ip_address>:服务器IP 地址;-d <DNS_server_ip_address>:DNS 服务器IP 地址;使用示例:RedBoot>ip_address –l 192.168.67.49 –h 192.168.67.1 // 设置本机IP 地址为:192.168.67.49,服务器IP 地址为:192.168.67.1。 load使用格式:load [-r] [-v] [-h <host>] [-m <varies>] [-c <channel_number>][-b <base_address>] <file_name>功能描述:下载数据到目标系统RAM 中。-r:下载未处理的数据到RAM;-v:下载过程显示进度;-b <base_address>:数据下载到RAM 的地址;file_name:下载的文件名;使用示例:RedBoot>load –v –r –b 0x1000000 ramdisk.gz // 下载文件ramdisk.gz 到地址为0x1000000 的RAM 中。 mcmp使用格式:mcmp {-s location} {-d location} {-l length} [-1|-2|-4]功能描述:比较两个存储区域的内容。-s location:源区域起始地址;-d location:目的区域起始地址; -l length:需要比较数据的长度;-1:单字节读取;-2:双字节读取;-4:四字节读取;使用示例:RedBoot>mcmp –s 0x00000000 –d 0x1000000 –l 0x20 // 比较存储器起始地址为0x00000000 和0x1000000 的内容,共比较32 个数据。 mcopy使用格式:mcopy {-s location} {-d location} {-l length} [-1|-2|-4]功能描述:将数据从一个存储区域拷贝到另一个存储区域。-s location:源区域起始地址;-d location:目的区域起始地址;-l length:需要拷贝数据的长度;-1:单字节读取;-2:双字节读取;-4:四字节读取;使用示例:RedBoot>mcopy –s 0x00000000 –d 0x1000000 –l 0x20 // 将存储器起始地址为0x00000000 的连续32 个数据拷贝到起始地址为0x1000000 位置。 mfill使用格式:mfill {-b location} {-l length} {-p value} [-1|-2|-4]功能描述:将给定的数值填充到指定的存储区域。-b location:待填充存储区域的起始地址;-l length:需要拷贝数据的长度;-p value:填充的数值;-1:单字节操作;-2:双字节操作;-4:四字节操作;使用示例:RedBoot>mfill –b 0x50000 –l 0x20 –p 0xaaaaaaaa // 将给定数值0xaaaaaaaa 填充到起始地址为0x50000 位置,共填充32 个字节。 reset使用格式:reset功能描述:复位系统。使用示例:RedBoot>reset // 复位系统。 ping使用格式:ping [-v] [-n <count>] [-l <length>] [-t <timeout>] [-r <rate>][-i <IP_addr>] -h <IP_addr>功能描述:该命令向指定主机发送ICMP 报文,用于检查网络连接是否正常。-v:显示数据包信息;-n <count>:发送数据包的数目;-l <length>:发送报文的长度;-t <timeout>:设置超时时间;-r <rate>:发送数据包的时间间隔;-i <IP_addr>:本机IP 地址;-h <IP_addr>:远端主机IP 地址;使用示例:RedBoot> ping -v -n 5 -h 192.168.67.1 // 向IP 地址为:192.168.67.1 的主机发送5 个数据包。 help使用格式:help [<topic>]功能描述:显示redboot 中可用命令的帮助信息。使用示例:RedBoot> help // 显示当前Redboot 可用命令的帮助信息。 version使用格式:version功能描述:显示Redboot 的当前版本信息。使用示例:RedBoot> version // 显示Redboot 的当前版本信息。