[ZLG-ARM] 请教:SmartARM2200移植u-boot-1.1.4,执行某些命令导致自动复位

[复制链接]
3010|6
 楼主| cszhaoqm 发表于 2007-7-17 00:41 | 显示全部楼层 |阅读模式
使用一热心网友提供的patch,编译后加载至smartarm可以运行u-boot,但发现执行某些命令会导致u-boot自动复位,通过增加串口打印消息跟踪,发现在commomcommand.c中的cmd_tbl_t&nbsp;*find_cmd&nbsp;(const&nbsp;char&nbsp;*cmd)函数中出现异常,下发help命令时,串口打印信息:<br /><br />U-Boot&nbsp;1.1.4&nbsp;(Jul&nbsp;17&nbsp;2007&nbsp;-&nbsp;00:36:58)<br /><br />U-Boot&nbsp;code:&nbsp;81400000&nbsp;-&gt&nbsp;814182AC&nbsp;&nbsp;BSS:&nbsp;-&gt&nbsp;8141C850&nbsp;&nbsp;&nbsp;<font color=#FF0000>//&nbsp;TEXT_BASE设置为0x81400000</font><br /><br />RAM&nbsp;Configuration:<br />Bank&nbsp;#0:&nbsp;81000000&nbsp;&nbsp;8&nbsp;MB<br />Flash:&nbsp;&nbsp;2&nbsp;MB<br />***&nbsp;Warning&nbsp;-&nbsp;bad&nbsp;CRC,&nbsp;using&nbsp;default&nbsp;environment<br /><br />In:&nbsp;&nbsp;&nbsp;&nbsp;serial<br />Out:&nbsp;&nbsp;&nbsp;serial<br />Err:&nbsp;&nbsp;&nbsp;serial<br />Hit&nbsp;any&nbsp;key&nbsp;to&nbsp;stop&nbsp;autoboot:&nbsp;&nbsp;5&nbsp;&nbsp;0&nbsp;<br />=&gt&nbsp;&nbsp;help<br /><br />&__u_boot_cmd_start:&nbsp;0x81417ED4,&nbsp;len:0x45A4&nbsp;&nbsp;&nbsp;&nbsp;<font color=#FF0000>//&nbsp;命令列表为增加的打印信息&nbsp;</font><br />cmdtp:&nbsp;0x81417ED4,&nbsp;autoscr<br />cmdtp:&nbsp;0x81417EEC,&nbsp;bdinfo<br />cmdtp:&nbsp;0x81417F04,&nbsp;go<br />cmdtp:&nbsp;0x81417F1C,&nbsp;reset<br />cmdtp:&nbsp;0x81417F34,&nbsp;bootm<br />cmdtp:&nbsp;0x81417F4C,&nbsp;boot<br />cmdtp:&nbsp;0x81417F64,&nbsp;bootd<br />cmdtp:&nbsp;0x81417F7C,&nbsp;iminfo<br />cmdtp:&nbsp;0x81417F94,&nbsp;imls<br />cmdtp:&nbsp;0x81417FAC,&nbsp;coninfo<br />cmdtp:&nbsp;0x81417FC4,&nbsp;bootelf<br />cmdtp:&nbsp;0x81417FDC,&nbsp;bootvx<br />cmdtp:&nbsp;0x81417FF4,&nbsp;flinfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#FF0000>//&nbsp;搜索到此处即自动复位&nbsp;</font><br /><br /> <br /><br />而执行bdinfo命令响应是正确的:<br />=&gt&nbsp;&nbsp;bdinfo<br /><br />&__u_boot_cmd_start:&nbsp;0x81417ED4,&nbsp;len:0x45A4<br />cmdtp:&nbsp;0x81417ED4,&nbsp;autoscr<br />cmdtp:&nbsp;0x81417EEC,&nbsp;bdinfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#FF0000>//&nbsp;成功搜索到该命令&nbsp;</font><br /><br />return&nbsp;cmdtp:&nbsp;0x81417EEC<br />found&nbsp;-&nbsp;check&nbsp;max&nbsp;args<br />arch_number&nbsp;=&nbsp;0x000000FB<br />env_t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00000000<br />boot_params&nbsp;=&nbsp;0x81000100<br />DRAM&nbsp;bank&nbsp;&nbsp;&nbsp;=&nbsp;0x00000000<br />-&gt&nbsp;start&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x81000000<br />-&gt&nbsp;size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00800000<br />ethaddr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;00:50:C2:1E:AF:FB<br />ip_addr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;192.168.0.25<br />baudrate&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;115200&nbsp;bps<br />=&gt&nbsp;&nbsp;<br /><br />调试中发现,如果屏蔽某些代码,使代码体积变化时,能搜索到的命令数目也相应变化。怀疑可能是start.S中处理导致的问题,请有经验的高手帮忙指点一下,多谢了!<br /><br />start.S和patch文件附在楼下。<br />
 楼主| cszhaoqm 发表于 2007-7-17 00:44 | 显示全部楼层

附:start.S和patch文件

  <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20077/200771704426291.zip'>https://bbs.21ic.com/upfiles/img/20077/200771704426291.zip</a>
armecos 发表于 2007-7-17 06:29 | 显示全部楼层
 楼主| cszhaoqm 发表于 2007-7-17 22:34 | 显示全部楼层

多谢楼上,还是没搞懂start.S中向量复制时长度为何是1024字节

&nbsp;&nbsp;&nbsp;&nbsp;adr&nbsp;r0,real_vectors<br />&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;r2,r0,#1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#FF0000>//&nbsp;此处为什么是1024字节?实际上屏蔽此段好像也没影响,自动复位的现象依旧</font><br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r1,=0x81000000&nbsp;&nbsp;&nbsp;//&nbsp;RAM基地址<br />&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;r1,r1,#0x08<br />////////////////////////////////////////////////////////<br />v_copy_loop:<br />&nbsp;&nbsp;&nbsp;&nbsp;ldmia&nbsp;r0!,{r3-r10}<br />&nbsp;&nbsp;&nbsp;&nbsp;stmia&nbsp;r1!,{r3-r10}<br />&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;r0,r2<br />&nbsp;&nbsp;&nbsp;&nbsp;ble&nbsp;&nbsp;&nbsp;&nbsp;v_copy_loop<br />....<br />real_vectors:<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;undefined<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;software<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;preabort<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;dataabort<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;not_use<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;irq<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;fiq<br /><br />undefined:<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r6,#3<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset<br />software:<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r6,#4&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset&nbsp;&nbsp;&nbsp;<br />preabort:<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r6,#5<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset<br />dataabort:<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r6,#6<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset<br />not_use:<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r6,#7<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset<br />irq:&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r6,#8<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset<br />fiq:<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r6,#9<br />&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;reset<br />
 楼主| cszhaoqm 发表于 2007-7-18 21:27 | 显示全部楼层

多谢楼上

老兄,我也不想在这上面花时间,但你给的现成的,我还是不知道是什么问题导致,不利于学习和问题的解决,知其然还得要知其所以然;开发产品进度最重要,但学习的话解决问题、弄明白原因比较重要,谢谢!
armecos 发表于 2007-7-18 23:32 | 显示全部楼层

你买的《ecos增值包》是开发环境,

&nbsp;&nbsp;&nbsp;&nbsp;可不只是一个现成的U-BOOT,它就是用来开发调试用的,当然还包括很多其他内容,那里面教了怎样发现问题、解决问题。而且你一用就知道为什么输入命令就死机的原因。我们做《ecos增值包》的目的就是把用户问到的问题全部总结到这个包里,一网打尽,省得问一个答一个浪费时间,还尽是重复的,你是我遇到的第8个问这个同样问题的人了(问得不得要领,离答案越来越远)。现在《ecos增值包》提供了(1)一个正确运行的U-BOOT&nbsp;for&nbsp;SMARTARM2200参考;(2)一篇文档;(3)SMARTARM2200上跑U-BOOT的解决方案;(4)稳定的开发环境。你可能不知道这个问题早就已经被解决了7次了,为什么还要再浪费一次时间呢!<br />&nbsp;&nbsp;&nbsp;&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部