ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:23.77KB ,
资源ID:6520642      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6520642.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(启动redboot后向目标机烧写一个linux内核的全过程.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

启动redboot后向目标机烧写一个linux内核的全过程.docx

1、启动redboot后向目标机烧写一个linux内核的全过程启动redboot后向目标机烧写一个linux内核的全过程命令说明对一个没有内核和根文件系统的板子是不可以运转的,当通过一种方式下载了RedBoot引导程序以后,我们可以通过下面的方式下载内核和根文件系统。在本系统中,我们对内核和根文件系统的下载是通过tftp服务完成的。整个Flash空间是16M ,它的地址范围:0x50000000 0x50fe0000 ,共有128块,每一块的大小是128K 。0x50000000 0x50080000范围放的是RedBoot引导程序和各种配置,0x50080000 0x50200000范围放的是L

2、inux内核zImage,0x50200000 0x50380000范围放的是根文件系统ramdisk,0x50380000 0x50f60000范围放的是jffs2文件格式。剩余0x50f60000-0x50fe0000范围的512K空间放日志系统.以下过程为启动redboot后,向目标机烧写一个linux内核的全过程先对flash进行初始化RedBoot fis initAbout to initialize format FLASH image system - continue (y/n)? y* Initialize FLASH Image System. Unlock from 0

3、x50060000-0x50080000: . Erase from 0x50060000-0x50080000: . Program from 0x07fe0000-0x08000000 at 0x50060000: . Lock from 0x50060000-0x50080000: .对剩余的FLASH空间解除锁定RedBoot fis unlock -f 0x50080000 -l 0xf60000. Unlock from 0x50080000-0x50fe0000: .然后擦除RedBoot fis erase -f 0x50080000 -l 0xf60000. Erase fr

4、om 0x50080000-0x50fe0000: .显示FLASH分区信息RedBoot fis listName FLASH addr Mem addr Length Entry pointRedBoot 0x50000000 0x50000000 0x00060000 0x00000000FIS directory 0x50060000 0x50060000 0x0001F000 0x00000000RedBoot config 0x5007F000 0x5007F000 0x00001000 0x00000000下面两步把内核zImage.H5500传送到目标板上,然后将其烧到flas

5、h的0x50080000地址中RedBoot load zImage.H5500 -b 0x2000000 -r -m tftp -h 192.168.9.190Raw file loaded 0x02000000-0x0211e52b, assumed entry at 0x02000000将其烧到flash的0x50080000地址中, zImage分配的空间为0x180000KRedBoot load zImage.H5500 -b 0x2000000 -r -m tftp -h 192.168.9.190Raw file loaded 0x02000000-0x0211e52b, as

6、sumed entry at 0x02000000RedBoot fis create -b 0x2000000 -l 0x180000 -f 0x50080000 zImage. Erase from 0x50080000-0x50200000: . Program from 0x02000000-0x02180000 at 0x50080000: . Unlock from 0x50060000-0x50080000: . Erase from 0x50060000-0x50080000: . Program from 0x07fe0000-0x08000000 at 0x50060000

7、: . Lock from 0x50060000-0x50080000:将ramdisk.gz.H5500传送到目标板上,然后将其烧到flash的0x50020000地址中RedBoot load ramdisk.gz.H5500 -b 0x800000 -r -m tftp -h 192.168.9.190Raw file loaded 0x00800000-0x0098a8df, assumed entry at 0x00800000RedBoot fis create -b 0x800000 -l 0x180000 -f 0x50200000 ramdisk. Erase from 0x

8、50200000-0x50380000: . Program from 0x00800000-0x00980000 at 0x50200000: . Unlock from 0x50060000-0x50080000: . Erase from 0x50060000-0x50080000: . Program from 0x07fe0000-0x08000000 at 0x50060000: . Lock from 0x50060000-0x50080000: .将jffs2.rescue.img传送到目标板上,然后将其烧到flash的0x50380000地址中RedBoot load jff

9、s2.rescue.img -b 0x800000 -r -m tftp -h 192.168.9.190Raw file loaded 0x00800000-0x00898c6b, assumed entry at 0x00800000RedBoot fis create -b 0x800000 -l 0xbe0000 -f 0x50380000 jffs2. Erase from 0x50380000-0x50f60000: . Program from 0x00800000-0x013e0000 at 0x50380000: . Unlock from 0x50060000-0x5008

10、0000: . Erase from 0x50060000-0x50080000: . Program from 0x07fe0000-0x08000000 at 0x50060000: . Lock from 0x50060000-0x50080000: .RedBoot fis listName FLASH addr Mem addr Length Entry pointRedBoot 0x50000000 0x50000000 0x00060000 0x00000000FIS directory 0x50060000 0x50060000 0x0001F000 0x00000000Red

11、Boot config 0x5007F000 0x5007F000 0x00001000 0x00000000zImage 0x50080000 0x50080000 0x00180000 0x02000000ramdisk 0x50200000 0x50200000 0x00200000 0x00800000jffs2 0x50380000 0x50380000 0x00be0000 0x00200000fconfig,此命令是配置脚本命令RedBoot fconfigRun script at boot: trueBoot script:Enter script, terminate wi

12、th empty line fis unlock -f 0x50380000 -l 0xbe0000 fis load -b 0x2000000 zImage fis load -b 0x800000 ramdisk exec 0x2000000Boot script timeout (1000ms resolution): 3Use BOOTP for network configuration: trueDefault server IP address: 192.168.0.43Console baud rate: 115200GDB connection port: 9000Force

13、 console for special debug messages: falseNetwork debug at boot time: falseDefault network device: npe_eth0Network hardware address MAC for npe_eth0: 0x00:0x0F:0x0E:0x01:0x02:0x03Update RedBoot non-volatile configuration - continue (y/n)? (出现此提示时,请输入y). Unlock from 0x50060000-0x50080000: . Erase fro

14、m 0x50060000-0x50080000: . Program from 0x07fe0000-0x08000000 at 0x50060000: . Lock from 0x50060000-0x50080000: .显示FLASH被擦除但位被使用的空间RedBoot fis free0x50F60000 . 0x50FDFFFF到这里整个烧写过程结束。RedBoot可以在多种不同配置下运行,但一般都是从目标平台的闪存引导区或引导ROM启动。RedBoot设计为系统上电启动,能提供完整的处理器初始化和设备设置,使设计人员能够迅速开始与系统通信。出现 RedBoot后,就表明redboo

15、t已经准备好,用户可以开始输入命令。RedBoot命令的基本格式是:命令 -选项1 -选项2 参数值 操作符命令格式中的选项1和选项2代表可以加到某些命令中的可选参数,用于指示一些特定动作或附加信息,在选项2中还包括一个数值。操作符定义了某些特殊命令所需的附加信息。命令也可以缩写成最短的无歧义字符串,如dump、dum、du和d都是dump命令的有效写法。RedBoot用load命令下载应用软件映像,映像可以用TFTP协议、X/Y调制解调器协议或直接从目标硬件下载。RedBoot常用的几条命令:首先是闪存映像系统(fis)命令,当硬件平台上配有闪存时,RedBoot提供fis命令作为基本文件系

16、统,这些命令主要用来管理文件系统映像。另一个有用的命令是基于闪存的配置和控制命令fconfig。用fconfig命令查询的输出信息,配置命令可以设置RedBoot启动顺序。启动配置包括是否在初始化期间运行引导脚本、是否用BOOTP协议获取IP地址等等。RedBoot支持引导脚本,因此允许用户在上电过程完成后执行所需命令。在产品测试阶段采用RedBoot装载应用软件映像时引导脚本很有好处,用户还可以设置超时参数,在引导脚本执行前按下Ctrl+C中断执行。引导脚本可用fconfig命令进行设置。RedBoot命令介绍:引用一个别名,如为joe的别名为This is JoeRedBoot alias

17、 joe This is Joe设置IP,如改变SERVER IP为192.168.1.104RedBoot ip_address -h 192.168.1.104 IP: 192.168.1.31, Default server: 192.168.1.104, DNS server IP: 192.168.1.101Load命令:从宿主机下载程序到目标机详细用法在flash烧写过程中举例Version : 显示RedBoot的版本,使用平台,内存和FLASH空间大小等等信息。RedBoot versionRedBoot(tm) bootstrap and debug environment

18、ROMRed Hat certified release, version 2.02 - built 21:47:00, Jun 19 2006Platform: IXDP425 Development Platform (IXP42X 400MHz) BECopyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.RAM: 0x00000000-0x08000000, 0x00029808-0x07fc1000 availableFLASH: 0x50000000 - 0x50fe0000, 127 blocks of 0x00020000

19、 bytes each.mfill : 用指定的方式向向存储器中写数据。Mfill -b location -l length -p value -1 | -2| -4-b : 存储器中,被写入数据的起始地址。-l :被写入数据的长度。-p :被写入数据的内容。RedBoot x -b 00400000 -l 0x4000061A80: FF FF FF FF FF FC FF FF BF FF EF FF EF FF DF FF |.|00061A90: FF EF FF FF FF BF FF FD FE FF F7 FF FF FF 5F FF |._.|00061AA0: FF 5F

20、FF DF FF FF FF 6F FC FF BB FF BF FF D7 FF |._.o.|00061AB0: FF FF FF FB FF F7 FF FF AF FF BE FF 7F FF FE FF |.|RedBoot mfill -b 0x00400000 -l 0x40 -p 0x98765423RedBoot x -b 0x00400000 -l 0x4000400000: 98 76 54 23 98 76 54 23 98 76 54 23 98 76 54 23 |.vT#.vT#.vT#.vT#|00400010: 98 76 54 23 98 76 54 23

21、98 76 54 23 98 76 54 23 |.vT#.vT#.vT#.vT#|00400020: 98 76 54 23 98 76 54 23 98 76 54 23 98 76 54 23 |.vT#.vT#.vT#.vT#|00400030: 98 76 54 23 98 76 54 23 98 76 54 23 98 76 54 23 |.vT#.vT#.vT#.vT#|Flash Image System(FIS)如果在一个板子上有Flash存储器,RedBoot能够把image引导到Flash中。运行的对象,包括一些数据还有一些简单的文件也能够存放到Flash中。fis 这个

22、命令能够被使用运行Flash中的内容。fis init -f :初始化(FIS),当RedBoot第一次在器件上安装的时候这个命令被运行。-f :Flash的所有的块全部被檫除。RedBoot fis init fAbout to initialize format flash image system - are you sure (y/n)?nfis -c -d list :列出FIS 中一般的文件,一些能够以RedBoot的名字运行,另外一些能够被使用者执行。-c :image的ckecksum代替Mem Addr。-d :image的datalenggth代替length。RedBoo

23、t fis listName flash addr Mem addr Length Entry pointRedBoot 0x50000000 0x50000000 0x00060000 0x00000000FIS directory 0x50060000 0x50060000 0x0001F000 0x00000000RedBoot config 0x5007F000 0x5007F000 0x00001000 0x00000000RedBoot fis list -cName flash addr Checksum Length Entry pointRedBoot 0x50000000

24、0x00000000 0x00060000 0x00000000FIS directory 0x50060000 0x00000000 0x0001F000 0x00000000RedBoot config 0x5007F000 0x00000000 0x00001000 0x00000000fis free :显示Flash中还有那些地址空间没有被使用,使用这个命令可以知道另外一些image下载的位置。RedBoot fis free0x50080000 . 0x50FDFFFFfis create b -l -f -e -r -s -n : 在FIS 目录中创造一个image,image中

25、的数据在拷贝之前必须存在在RAM存储器中。(首先,使用load命令把image下载到RAM中,然后运用fis create命令把他写入Flash中。)name :文件的名字,显示在FIS 目录中。-b :在RAM中的一个位置,为了得到image,这是一个必须的参数。-l :image的长度。如果image已经存在,那么它的长度被推断根据先前image被创造的时间。特殊的情况下,它可能和原来的初始化的数据是一样的。-f :image在Flash中的位置。一般情况下,位置被确定根据现在的image所在的位置,如果在Flash还没有image的存在,那么剩余的块是足够的被使用。-e :执行登陆的地址

26、。如果image的开始地址不知道或者是不需要被考虑,-e被使用。-r :当image通过fis load命令下载在RAM 中的位置。但是在这里要求这个image是给定的。-s :被写入Flash数据的真实的长度,如果不能出现,那么image的长度是假定的,-s比-l给出的数据要短一些,-n :仅仅更新FIS的目录,没有数据被拷贝从RAM到Flash中,这个特点能够被使用登陆FIS,如果它已经坏掉。RedBoot fis create RedBoot -f 0x50000000 -b 0x07000000 -l 0x60000An image named RedBoot exists - con

27、tinue (y/n)? nRedBoot fis unlock -f 0x50080000 -l 0x20000. Unlock from 0x50080000-0x500a0000: .RedBoot fis erase -f 0x50080000 -l 0x20000. Erase from 0x50080000-0x500a0000: .RedBoot fis create fuck -b 0x05000000 -l 0x20000. Erase from 0x50080000-0x500a0000: . Program from 0x05000000-0x05020000 at 0x

28、50080000: . Unlock from 0x50060000-0x50080000: . Erase from 0x50060000-0x50080000: . Program from 0x07fe0000-0x08000000 at 0x50060000: . Lock from 0x50060000-0x50080000: .RedBoot fis listName FLASH addr Mem addr Length Entry pointRedBoot 0x50000000 0x50000000 0x00060000 0x00000000FIS directory 0x500

29、60000 0x50060000 0x0001F000 0x00000000RedBoot config 0x5007F000 0x5007F000 0x00001000 0x00000000fuck 0x50080000 0x05000000 0x00020000 0xFFFFFFFFfis load -b -c -d name : 拷贝一个image从Flash到RAM。一旦被下载,它可能运用go命令执行。如果加上-b参数,image被拷贝从Flash到RAM 的指定的位置,如果不加上-b参数,image被拷贝从Flash到image被创造的地址。-name :一个显示在FIS 目录中的文件名。-b :存储器中,被写入数据的开始地址

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1