⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000006.htm

📁 关于embedded的文章
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  &nbsp;&nbsp;&nbsp;reset&nbsp;<BR>  Display&nbsp;RedBoot&nbsp;version&nbsp;information&nbsp;<BR>  &nbsp;&nbsp;&nbsp;version&nbsp;<BR>  Display&nbsp;(hex&nbsp;dump)&nbsp;a&nbsp;range&nbsp;of&nbsp;memory&nbsp;<BR>  &nbsp;&nbsp;&nbsp;x&nbsp;-b&nbsp;&lt;location&gt;&nbsp;[-l&nbsp;&lt;length&gt;]&nbsp;[-s]&nbsp;[-1|2|4]&nbsp;<BR>  &nbsp;<BR>5.2.3&nbsp;连接目标机&nbsp;<BR>  连接目标机的途径有很多种。这里我们演示的是使用minicom连接目标机的串口&nbsp;<BR>。&nbsp;<BR>  首先,使用&nbsp;minicom&nbsp;–s&nbsp;设置串口参数:/dev/ttyS1,115200,8N1.将该设&nbsp;<BR>置保存为默认值,退出。&nbsp;<BR>  然后用&nbsp;minicom&nbsp;–o&nbsp;命令连接IQ80321开发板串口。-o&nbsp;(--noinit)&nbsp;参数表示&nbsp;<BR>取消发送初始化MODEM指令。这里似乎需要复位一下IQ80321板子(按板上的复位按&nbsp;<BR>钮),敲回车,应该出现&nbsp;RedBoot&gt;&nbsp;提示符,表示一切顺利。&nbsp;<BR>  第一次连接后,需要使用&nbsp;fconfig&nbsp;命令设置目标机的网络、串口波特率等信息&nbsp;<BR>。&nbsp;<BR>  另外,还需要熟悉&nbsp;fis,这是&nbsp;RedBoot&nbsp;提供的操作FLASH的工具。&nbsp;<BR>  Help&nbsp;命令列出了在RedBoot提示符下面可以使用的所有命令。&nbsp;<BR>  &nbsp;<BR>[root@lips&nbsp;root]#&nbsp;minicom&nbsp;-o&nbsp;<BR>Welcome&nbsp;to&nbsp;minicom&nbsp;2.00.0&nbsp;<BR>OPTIONS:&nbsp;History&nbsp;Buffer,&nbsp;F-key&nbsp;Macros,&nbsp;Search&nbsp;History&nbsp;Buffer,&nbsp;I18n&nbsp;<BR>Compiled&nbsp;on&nbsp;Jan&nbsp;25&nbsp;2003,&nbsp;00:15:18.&nbsp;<BR>Press&nbsp;CTRL-A&nbsp;Z&nbsp;for&nbsp;help&nbsp;on&nbsp;special&nbsp;keys&nbsp;<BR>+Ethernet&nbsp;eth0:&nbsp;MAC&nbsp;address&nbsp;00:07:e9:03:39:f4&nbsp;<BR>IP:&nbsp;192.168.0.21/255.255.255.0,&nbsp;Gateway:&nbsp;192.168.0.1&nbsp;<BR>Default&nbsp;server:&nbsp;192.168.0.20,&nbsp;DNS&nbsp;server&nbsp;IP:&nbsp;192.168.0.1&nbsp;<BR>RedBoot(tm)&nbsp;bootstrap&nbsp;and&nbsp;debug&nbsp;environment&nbsp;[ROM]&nbsp;<BR>Red&nbsp;Hat&nbsp;certified&nbsp;release,&nbsp;version&nbsp;1.61&nbsp;-&nbsp;built&nbsp;16:46:58,&nbsp;Oct&nbsp;23&nbsp;2002&nbsp;<BR>Platform:&nbsp;IQ80321&nbsp;(XScale)&nbsp;<BR>Copyright&nbsp;(C)&nbsp;2000,&nbsp;2001,&nbsp;2002,&nbsp;Red&nbsp;Hat,&nbsp;Inc.&nbsp;<BR>RAM:&nbsp;0x00000000-0x08000000,&nbsp;0x0001b488-0x01fd1000&nbsp;available&nbsp;<BR>FLASH:&nbsp;0xf0000000&nbsp;-&nbsp;0xf0800000,&nbsp;64&nbsp;blocks&nbsp;of&nbsp;0x00020000&nbsp;bytes&nbsp;each.&nbsp;<BR>#&nbsp;注意!!这两行显示信息很重要,可以看出:&nbsp;<BR>#&nbsp;(1)IQ80321目标板有128M内存,FLASH容量为8M.&nbsp;<BR>#&nbsp;(2)可用内存从地址0x0001b488开始.&nbsp;<BR>#&nbsp;(3)FLASH的erase&nbsp;block&nbsp;size为0x20000(字节).&nbsp;<BR>RedBoot&gt;&nbsp;&nbsp;<BR>RedBoot&gt;&nbsp;fconfig&nbsp;<BR>Run&nbsp;script&nbsp;at&nbsp;boot:&nbsp;false&nbsp;<BR>Use&nbsp;BOOTP&nbsp;for&nbsp;network&nbsp;configuration:&nbsp;false&nbsp;<BR>Gateway&nbsp;IP&nbsp;address:&nbsp;192.168.0.1&nbsp;<BR>Local&nbsp;IP&nbsp;address:&nbsp;192.168.0.21&nbsp;<BR>Local&nbsp;IP&nbsp;address&nbsp;mask:&nbsp;255.255.255.0&nbsp;<BR>Default&nbsp;server&nbsp;IP&nbsp;address:&nbsp;192.168.0.20&nbsp;<BR>Console&nbsp;baud&nbsp;rate:&nbsp;115200&nbsp;<BR>DNS&nbsp;server&nbsp;IP&nbsp;address:&nbsp;192.168.0.1&nbsp;<BR>GDB&nbsp;connection&nbsp;port:&nbsp;9000&nbsp;<BR>Force&nbsp;console&nbsp;for&nbsp;special&nbsp;debug&nbsp;messages:&nbsp;true&nbsp;<BR>Console&nbsp;number&nbsp;for&nbsp;special&nbsp;debug&nbsp;messages:&nbsp;0&nbsp;<BR>Network&nbsp;debug&nbsp;at&nbsp;boot&nbsp;time:&nbsp;false&nbsp;<BR>alias/admin:&nbsp;&nbsp;<BR>alias/mobile:&nbsp;&nbsp;<BR>alias/motd:&nbsp;Hello.&nbsp;&nbsp;<BR>RedBoot&gt;&nbsp;<BR>RedBoot&gt;&nbsp;fis&nbsp;<BR>***&nbsp;invalid&nbsp;'fis'&nbsp;command:&nbsp;too&nbsp;few&nbsp;arguments&nbsp;<BR>Usage:&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;create&nbsp;-b&nbsp;&lt;mem_base&gt;&nbsp;-l&nbsp;&lt;image_length&gt;&nbsp;[-s&nbsp;&lt;data_length&gt;]&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[-f&nbsp;&lt;flash_addr&gt;]&nbsp;[-e&nbsp;&lt;entry_point&gt;]&nbsp;[-r&nbsp;&lt;ram_addr&gt;]&nbsp;[-n]&nbsp;&lt;name&gt;&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;delete&nbsp;name&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;erase&nbsp;-f&nbsp;&lt;flash_addr&gt;&nbsp;-l&nbsp;&lt;length&gt;&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;free&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;init&nbsp;[-f]&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;list&nbsp;[-c]&nbsp;[-d]&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;load&nbsp;[-d]&nbsp;[-b&nbsp;&lt;memory_load_address&gt;]&nbsp;[-c]&nbsp;name&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;lock&nbsp;[-f&nbsp;&lt;flash_addr&gt;&nbsp;-l&nbsp;&lt;length&gt;]&nbsp;[name]&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;unlock&nbsp;[-f&nbsp;&lt;flash_addr&gt;&nbsp;-l&nbsp;&lt;length&gt;]&nbsp;[name]&nbsp;<BR>&nbsp;&nbsp;fis&nbsp;write&nbsp;-f&nbsp;&lt;flash_addr&gt;&nbsp;-b&nbsp;&lt;mem_base&gt;&nbsp;-l&nbsp;&lt;image_length&gt;&nbsp;<BR>RedBoot&gt;&nbsp;<BR>  &nbsp;<BR>5.3&nbsp;MTD和jffs2&nbsp;<BR>5.3.1&nbsp;准备&nbsp;<BR>#&nbsp;重新配置编译主机内核&nbsp;<BR>#&nbsp;增加&nbsp;MTD&nbsp;支持&nbsp;<BR>Memory&nbsp;Technology&nbsp;Devices&nbsp;(MTD)&nbsp;&nbsp;---&gt;&nbsp;<BR>&lt;*&gt;&nbsp;Memory&nbsp;Technology&nbsp;Device&nbsp;(MTD)&nbsp;support&nbsp;<BR>&lt;*&gt;&nbsp;&nbsp;&nbsp;Direct&nbsp;char&nbsp;device&nbsp;access&nbsp;to&nbsp;MTD&nbsp;devices&nbsp;(NEW)&nbsp;<BR>&lt;*&gt;&nbsp;&nbsp;&nbsp;Caching&nbsp;block&nbsp;device&nbsp;access&nbsp;to&nbsp;MTD&nbsp;devices&nbsp;(NEW)&nbsp;<BR>Self-contained&nbsp;MTD&nbsp;device&nbsp;drivers&nbsp;&nbsp;---&gt;&nbsp;<BR>&lt;*&gt;&nbsp;&nbsp;&nbsp;Test&nbsp;driver&nbsp;using&nbsp;RAM&nbsp;(NEW)&nbsp;<BR>#(4096)&nbsp;MTDRAM&nbsp;device&nbsp;size&nbsp;in&nbsp;KiB&nbsp;(NEW)&nbsp;<BR>(8192)&nbsp;MTDRAM&nbsp;device&nbsp;size&nbsp;in&nbsp;KiB&nbsp;(NEW)&nbsp;<BR>(128)&nbsp;MTDRAM&nbsp;erase&nbsp;block&nbsp;size&nbsp;in&nbsp;KiB&nbsp;(NEW)&nbsp;<BR>&lt;*&gt;&nbsp;&nbsp;&nbsp;MTD&nbsp;emulation&nbsp;using&nbsp;block&nbsp;device&nbsp;(NEW)&nbsp;<BR>#&nbsp;增加&nbsp;JFFS2&nbsp;文件系统支持&nbsp;<BR>File&nbsp;systems&nbsp;&nbsp;---&gt;&nbsp;<BR>&lt;*&gt;&nbsp;Journalling&nbsp;Flash&nbsp;File&nbsp;System&nbsp;v2&nbsp;(JFFS2)&nbsp;support&nbsp;<BR>#&nbsp;内核中增加了相应的支持之后,还需要&nbsp;mkfs.jffs2&nbsp;工具,下载&nbsp;<BR>#&nbsp;<A HREF="ftp://ftp.nluug.nl/pub/sunsite/distributions/altlinux/Sisyphus/files/i">ftp://ftp.nluug.nl/pub/sunsite/distributions/altlinux/Sisyphus/files/i</A>&nbsp;<BR>586/RPMS/jffs2-2.0-alt1.i586.rpm&nbsp;&nbsp;<BR>#&nbsp;安装此&nbsp;RPM&nbsp;包,然后就会有&nbsp;/sbin/mkfs.jffs2&nbsp;,并且可以看手册页&nbsp;<BR>[root@lips&nbsp;tars]#&nbsp;rpm&nbsp;-ivh&nbsp;jffs2-2.0-alt1.i586.rpm&nbsp;<BR>#&nbsp;创建设备节点&nbsp;<BR>[root@lips&nbsp;tars]#&nbsp;mkdir&nbsp;-p&nbsp;/dev/mtdblock&nbsp;<BR>[root@lips&nbsp;tars]#&nbsp;mknod&nbsp;/dev/mtdblock/0&nbsp;b&nbsp;31&nbsp;0&nbsp;<BR>#&nbsp;如果已经有了&nbsp;JFFS2&nbsp;文件系统映像,怎么看其中的内容?&nbsp;<BR>[root@lips&nbsp;tmp]#&nbsp;dd&nbsp;if=iq80310.jffs2&nbsp;of=/dev/mtdblock/0&nbsp;<BR>12288+0&nbsp;records&nbsp;in&nbsp;<BR>12288+0&nbsp;records&nbsp;out&nbsp;<BR>[root@lips&nbsp;tmp]#&nbsp;mount&nbsp;-t&nbsp;jffs2&nbsp;/dev/mtdblock/0&nbsp;/mnt/&nbsp;<BR>[root@lips&nbsp;tmp]#&nbsp;<BR>  &nbsp;<BR>5.3.2&nbsp;HOWTO&nbsp;<BR>  (参考资料[3])&nbsp;<BR>  ***&nbsp;Putting&nbsp;a&nbsp;jffs&nbsp;file&nbsp;system&nbsp;on&nbsp;the&nbsp;flash&nbsp;devices:&nbsp;<BR>  &nbsp;<BR>  Now&nbsp;that&nbsp;you&nbsp;have&nbsp;successfully&nbsp;managed&nbsp;to&nbsp;detect&nbsp;your&nbsp;flash&nbsp;devices,&nbsp;<BR>&nbsp;<BR>  you&nbsp;need&nbsp;to&nbsp;put&nbsp;a&nbsp;jffs&nbsp;on&nbsp;them.&nbsp;Unlike&nbsp;mke2fs&nbsp;there&nbsp;is&nbsp;no&nbsp;utility&nbsp;th&nbsp;<BR>at&nbsp;<BR>  will&nbsp;directly&nbsp;create&nbsp;a&nbsp;jffs&nbsp;file-system&nbsp;onto&nbsp;the&nbsp;<BR>  /dev/mtd0,1,2...&nbsp;device.&nbsp;<BR>  &nbsp;<BR>  You&nbsp;have&nbsp;to&nbsp;use&nbsp;a&nbsp;utility&nbsp;called&nbsp;mkfs.jffs&nbsp;available&nbsp;under&nbsp;mtd/util&nbsp;<BR>  &nbsp;<BR>  Get&nbsp;a&nbsp;directory&nbsp;ready&nbsp;with&nbsp;the&nbsp;stuff&nbsp;that&nbsp;you&nbsp;want&nbsp;to&nbsp;put&nbsp;under&nbsp;<BR>  jffs.&nbsp;Let's&nbsp;assume&nbsp;that&nbsp;it's&nbsp;called&nbsp;/home/jffsstuff&nbsp;<BR>  &nbsp;<BR>  Then&nbsp;just&nbsp;do:&nbsp;<BR>  #/usr/src/mtd/util/mkfs.jffs&nbsp;-d&nbsp;/home/jffsstuff&nbsp;-o&nbsp;/tmp/jffs.image&nbsp;<BR>  &nbsp;<BR>  This&nbsp;makes&nbsp;a&nbsp;jffs&nbsp;image&nbsp;file.&nbsp;Then&nbsp;do&nbsp;(if&nbsp;your&nbsp;flash&nbsp;chips&nbsp;are&nbsp;erase&nbsp;<BR>d,&nbsp;<BR>  else&nbsp;see&nbsp;below):&nbsp;<BR>  #cp&nbsp;&nbsp;/tmp/jffs.image&nbsp;/dev/mtd0,1,2...&nbsp;(as&nbsp;the&nbsp;case&nbsp;may&nbsp;be,&nbsp;most&nbsp;<BR>  likely&nbsp;/dev/mtd0).&nbsp;<BR>  &nbsp;<BR>  You&nbsp;may&nbsp;also&nbsp;mount&nbsp;an&nbsp;erased&nbsp;mtdblock&nbsp;device&nbsp;directly&nbsp;without&nbsp;puttin&nbsp;<BR>g&nbsp;<BR>  a&nbsp;file&nbsp;system&nbsp;on&nbsp;it.&nbsp;This&nbsp;will&nbsp;let&nbsp;you&nbsp;fill&nbsp;the&nbsp;device&nbsp;interactively&nbsp;<BR>&nbsp;<BR>  under&nbsp;your&nbsp;shell&nbsp;control&nbsp;(you&nbsp;know-&nbsp;copy&nbsp;stuff&nbsp;to&nbsp;the&nbsp;mounted&nbsp;dir).&nbsp;<BR>  &nbsp;<BR>  If&nbsp;your&nbsp;flash&nbsp;chips&nbsp;are&nbsp;not&nbsp;erased&nbsp;or&nbsp;you&nbsp;have&nbsp;been&nbsp;messing&nbsp;around&nbsp;<BR>  with&nbsp;them&nbsp;earlier,&nbsp;your&nbsp;cannot&nbsp;just&nbsp;copy&nbsp;the&nbsp;new&nbsp;image&nbsp;on&nbsp;top&nbsp;of&nbsp;the&nbsp;<BR>&nbsp;<BR>  older&nbsp;one.&nbsp;Bad&nbsp;things&nbsp;may&nbsp;happen.&nbsp;Use&nbsp;the&nbsp;program&nbsp;mtd/util/erase&nbsp;to&nbsp;<BR>  erase&nbsp;your&nbsp;device.&nbsp;<BR>  &nbsp;<BR>  #/usr/src/mtd/util/erase&nbsp;/dev/mtd0,1,2,3&nbsp;&lt;offset&gt;&nbsp;&lt;erase-size&gt;&nbsp;<BR>  where&nbsp;&nbsp;<BR>  offset:&nbsp;try&nbsp;0&nbsp;if&nbsp;you&nbsp;don't&nbsp;know&nbsp;(start&nbsp;of&nbsp;mtd&nbsp;device),&nbsp;else&nbsp;must&nbsp;be&nbsp;&nbsp;<BR>in&nbsp;<BR>  decimal&nbsp;bytes,&nbsp;but&nbsp;must&nbsp;start&nbsp;at&nbsp;an&nbsp;integral&nbsp;erase&nbsp;sector&nbsp;boundary.&nbsp;<BR>  &nbsp;<BR>  &nbsp;<BR>  erase-size:&nbsp;How&nbsp;many&nbsp;&quot;erase&nbsp;sectors&quot;&nbsp;worth&nbsp;do&nbsp;you&nbsp;want&nbsp;to&nbsp;erase.&nbsp;<BR>  Your&nbsp;max&nbsp;erase&nbsp;size&nbsp;for&nbsp;your&nbsp;flash&nbsp;is:&nbsp;<BR>  &nbsp;(total-size/your&nbsp;mtd&nbsp;device&nbsp;erase&nbsp;size-&nbsp;look&nbsp;under&nbsp;`cat&nbsp;/proc/mtd`)&nbsp;<BR>&nbsp;<BR>  &nbsp;<BR>  &nbsp;<BR>  Watch&nbsp;the&nbsp;messages&nbsp;on&nbsp;your&nbsp;console&nbsp;(assuming&nbsp;you&nbsp;have&nbsp;verbose&nbsp;turned&nbsp;<BR>&nbsp;<BR>  on&nbsp;when&nbsp;you&nbsp;configured&nbsp;your&nbsp;kernel).&nbsp;You&nbsp;should&nbsp;not&nbsp;see&nbsp;any&nbsp;errors.&nbsp;<BR>  &nbsp;<BR>  When&nbsp;your&nbsp;command&nbsp;prompt&nbsp;returns,&nbsp;do:&nbsp;<BR>  #cp&nbsp;&nbsp;/tmp/jffs.image&nbsp;/dev/mtd0,1,2...&nbsp;(as&nbsp;the&nbsp;case&nbsp;may&nbsp;be,&nbsp;most&nbsp;<BR>  likely&nbsp;/dev/mtd0).&nbsp;<BR>  &nbsp;<BR>  &nbsp;<BR>  Then&nbsp;load&nbsp;the&nbsp;jffs&nbsp;module&nbsp;in&nbsp;by:&nbsp;<BR>  #modprobe&nbsp;jffs&nbsp;<BR>  &nbsp;<BR>  Then&nbsp;mount&nbsp;the&nbsp;file&nbsp;system&nbsp;by:&nbsp;<BR>  #mount&nbsp;-t&nbsp;jffs&nbsp;/dev/mtdblock0&nbsp;/mnt/jffs&nbsp;(assuming&nbsp;/mnt/jffs&nbsp;exists,&nbsp;&nbsp;<BR>else&nbsp;<BR>  make&nbsp;it).&nbsp;<BR>  &nbsp;<BR>  Note:&nbsp;Note&nbsp;the&nbsp;use&nbsp;of&nbsp;/dev/mtdblock0&nbsp;NOT&nbsp;/dev/mtd0.&nbsp;&quot;mount&quot;&nbsp;needs&nbsp;a&nbsp;<BR>  block&nbsp;device&nbsp;interface&nbsp;and&nbsp;/dev/mtdblock0,1,2,3...&nbsp;are&nbsp;provided&nbsp;for&nbsp;<BR>  that&nbsp;purpose.&nbsp;/dev/mtd0,1,2,3&nbsp;are&nbsp;char&nbsp;devices&nbsp;are&nbsp;provided&nbsp;for&nbsp;thin&nbsp;<BR>gs&nbsp;<BR>  like&nbsp;copying&nbsp;the&nbsp;binary&nbsp;image&nbsp;onto&nbsp;the&nbsp;raw&nbsp;flash&nbsp;devices.&nbsp;<BR>  &nbsp;<BR>  &nbsp;<BR>  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -