[ZLG-ARM] 向周工道歉!!!

[复制链接]
4149|19
 楼主| VisionShow 发表于 2007-4-3 21:48 | 显示全部楼层 |阅读模式
搞2220,一开始碰到不能启动的问题,后来碰到看门狗的问题。<br />看门狗不能够正确的复位,真是无招了.....<br /><br />看门狗的问题后来我解决了,是程序的问题,还想提一个问题<br />就是启动的问题:&nbsp;ISP&nbsp;BOOT是不是校验和为零就可以启动?<br />我的程序很怪,非要这样才能启动:<br />.text<br />.align&nbsp;4<br />.global&nbsp;_start<br />.global&nbsp;Reboot<br /><br />_start:<br />&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SystemReset<br />&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SystemReset<br />&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SystemReset<br />&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SystemReset<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;DataAbort<br />&nbsp;&nbsp;.long&nbsp;&nbsp;0xA3400FF2<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;&nbsp;[PC,&nbsp;#-0xFF0]<br />&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SystemReset<br /><br />DataAbort:<br />.long&nbsp;&nbsp;&nbsp;&nbsp;0x80000024<br /><br />SystemReset:<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xFFFFF014&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@关闭所有中断<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xFFFFFFFF<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;MRS&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR<br />&nbsp;&nbsp;ORR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;#0x80<br />&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;CPSR,&nbsp;&nbsp;&nbsp;R0<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xE0000000<br />&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#0<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xE002C014<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x0F814920<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xFFE00000<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x1000FFEF<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xFFE00004<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x2000FFEF<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xFFE00008<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x0000FFEF<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xFFE0000C<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x00002400<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#0xD2<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x40010000<br /><br />&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#0xD3<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x4000E000<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x80000000<br />&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#0x40000000<br />&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;R2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#0xC000<br />CopyProgram:<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0],&nbsp;#4<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R1],&nbsp;#4<br />&nbsp;&nbsp;SUBS&nbsp;&nbsp;&nbsp;R2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R2,&nbsp;&nbsp;&nbsp;#4<br />&nbsp;&nbsp;BNE&nbsp;&nbsp;&nbsp;&nbsp;CopyProgram<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0xE01FC040<br />&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#2<br />&nbsp;&nbsp;STRB&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;MRS&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR<br />&nbsp;&nbsp;BIC&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;#0x80<br />&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;CPSR,&nbsp;&nbsp;&nbsp;R1<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataAbort<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=SystemReset<br />&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R0]<br /><br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=Startup<br /><br />Reboot:<br />&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=0x80000000<br />
Swd21ic 发表于 2007-4-3 21:51 | 显示全部楼层

~~

..先检查下自己的问题吧老兄
 楼主| VisionShow 发表于 2007-4-3 21:55 | 显示全部楼层

楼上

<br />别扯了,Philips的芯片问题就是很多,下面是一段程序,接收到:ROOT_UPDATE可以复位成功,<br />接收到ROOT_FONTSET就不行了,这种问题会是什么问题,很显而易见的了。。。<br />void&nbsp;CommitData(BYTE&nbsp;*buffer,DWORD&nbsp;size,&nbsp;PDeviceInfo&nbsp;from)<br />{<br />&nbsp;&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;DWORD&nbsp;dwSize;<br />&nbsp;&nbsp;switch&nbsp;(((PRoot)buffer)-&gtid)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;ROOT_UPDATE:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;watchdog_clk();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateProgram((WORD&nbsp;*)(buffer+sizeof(TRoot)),size-sizeof(TRoot));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendCommand(PKC_NOTIFY,0x00010001,from);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;ROOT_FONTSET:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;watchdog_clk();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendCommand(PKC_NOTIFY,0x00010001,from);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1);<br />&nbsp;&nbsp;}<br />}
 楼主| VisionShow 发表于 2007-4-4 15:34 | 显示全部楼层

请周工解释一下

<br />试验条件:<br />板子:&nbsp;<br />CPU:&nbsp;&nbsp;&nbsp;&nbsp;LPC2220<br />FLASH:&nbsp;&nbsp;AM29LV160DB<br />RAM:&nbsp;&nbsp;&nbsp;&nbsp;BANK1上两片16位SRAM凑成32位SRAM,共512K(ISSI&nbsp;&nbsp;12816)<br />&nbsp;<br />当执行一次:RAM_Test后看门狗将不起作用,&nbsp;下面两个函数顺序执行就完蛋了<br />void&nbsp;RAM_Test(void)<br />{<br />&nbsp;&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;volatile&nbsp;DWORD&nbsp;*RAM=(DWORD&nbsp;*)0x81000000;<br />&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i&lt64*1024;&nbsp;i++)&nbsp;&nbsp;//当大约32*1024也就是128K后,看门狗就不起作用了<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;*RAM=0xAAAAAAAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(*RAM!=0xAAAAAAAA)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uart_Write(&quot;SRAM&nbsp;Test&nbsp;Failed
&quot;,&nbsp;18,&nbsp;NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uart_Write(RAM,&nbsp;4,&nbsp;NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;RAM++;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;uart_Write(&quot;SRAM&nbsp;Test&nbsp;OK
&quot;,&nbsp;14,&nbsp;NULL);<br />}<br />void&nbsp;watchdog_Test(int&nbsp;iType)<br />{<br />&nbsp;&nbsp;watchdog_clk();<br />&nbsp;&nbsp;RAM_Test();<br />&nbsp;&nbsp;switch&nbsp;(iType){<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;ROOT_UPDATE:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;ROOT_FONTSET:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1);<br />&nbsp;&nbsp;}<br />}<br />
HWM 发表于 2007-4-4 16:24 | 显示全部楼层

别一有问题就说某某芯片不行,这样没人会帮你的。

因为这似乎是你没问题,而问题全在他人那里,这叫别人如何帮你。
 楼主| VisionShow 发表于 2007-4-4 17:01 | 显示全部楼层

没有指望别人帮忙

我搞设计很多年了,不要认为我需要人帮忙,实话说搞设计,也没有人能帮忙,都是自己摸索的,一旦碰到问题,会有很多方式来查找问题,排除问题,确认问题,不会没有确认问题,就乱说的<br />
HWM 发表于 2007-4-4 18:05 | 显示全部楼层

如果LZ确认是LPC2220的问题的话,建议直接和NXP(原Philips)联系

  
zlgARM 发表于 2007-4-4 18:18 | 显示全部楼层

VisionShow

&nbsp;&nbsp;可否请您设计一个最小例程,里面只有必要的函数,请您将RAM_Test()里的语句一个一个注释掉,然后观察看门狗的失效情况,逐步缩小范围,直至找出触发故障的地方?
zcq30 发表于 2007-4-4 20:05 | 显示全部楼层

原来是这样,现在能启动了吗?

这也是芯片的问题,看来我们得找自己的问题!
luhuaren 发表于 2007-4-4 21:48 | 显示全部楼层

RE

void&nbsp;RAM_Test(void)<br />{<br />&nbsp;&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;volatile&nbsp;DWORD&nbsp;*RAM=(DWORD&nbsp;*)0x81000000;<br />&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i&lt64*1024;&nbsp;i++)&nbsp;&nbsp;//当大约32*1024也就是128K后,看门狗就不起作用了<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;*RAM=0xAAAAAAAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(*RAM!=0xAAAAAAAA)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uart_Write(&quot;SRAM&nbsp;Test&nbsp;Failed
&quot;,&nbsp;18,&nbsp;NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uart_Write(RAM,&nbsp;4,&nbsp;NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;RAM++;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;uart_Write(&quot;SRAM&nbsp;Test&nbsp;OK
&quot;,&nbsp;14,&nbsp;NULL);<br />}<br /><br /><br />楼主说的不起作用是什么意思?
luhuaren 发表于 2007-4-4 21:57 | 显示全部楼层

RE

当大约32*1024也就是128K后,看门狗就不起作用了<br /><br />给人的感觉是<br />1:程序跑飞导致看门狗没被调用,而导致系统复位(不太象)<br />2:程序跑飞导致看门狗没被调用,而系统没有复位<br /><br />不知道是哪一种。。
蛋蛋的老公 发表于 2007-4-4 23:57 | 显示全部楼层

BS一下LZ

BS一下LZ,还说自己会解决问题,问题都没说清楚,别人能帮你吗?<br />我刚做完2220的项目,本来想看一下你的问题,结果看了半天不知你在说什么.
蛋蛋的老公 发表于 2007-4-5 00:04 | 显示全部楼层

羡慕LZ

不过很羡慕LZ,PHLILIPS的芯片还嫌麻烦,有得给你用就不错了,如果给你长年用台湾的,保证会给气晕....<br />本人毕业多年,一直都用台系货,东家换西家,那个才叫苦!出问题都没人理.<br />最近有机会用LPC做了一个产品.第一次用欧美系的货,那种感觉叫做爽!资料多多,随手拿来就用.....<br />呵呵,LZ真是福中不知福.<br />安心搞搞吧,别一出问题就到处发泄,即是芯片有BUG也没方法的,也是自己选上的没得怪别人的.这是搞技术的硬道理.<br />
ayb_ice 发表于 2007-4-5 09:41 | 显示全部楼层

随便说说

&nbsp;谁也不能保证芯片没有问题....<br />&nbsp;绝对可以保证不可能有这么多问题....
zlg315 发表于 2007-4-5 22:11 | 显示全部楼层

netjob,怎么如此缺乏远见?

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在下结论还为时过早吧!请相信我的选择没有错。
 楼主| VisionShow 发表于 2007-4-5 23:32 | 显示全部楼层

向周工致歉

很抱歉,这个帖子给周工造成了一些影响,实在很对不起,<br />因为这个项目很急,开始启动问题耽误了一些时间,后来<br />碰到了看门狗问题,没有经过仔细的测试,盲目下结论是<br />芯片的问题,很不对,再次向周工致歉!!!
high 发表于 2007-4-6 10:10 | 显示全部楼层

坦白讲,我用nxp的arm也碰到不少问题。

也好在,最后都能找到办法回避这些问题。(并不总是ic问题。)但很多现象是和自己经验矛盾的。<br /><br />毕竟我们小工程,也不是nxp的engineer,没有义务去收集证据。
蛋蛋的老公 发表于 2007-4-7 22:51 | 显示全部楼层

TO楼主

---------------------------------------------<br />看门狗的问题后来我解决了,是程序的问题,还想提一个问题<br />就是启动的问题:&nbsp;ISP&nbsp;BOOT是不是校验和为零就可以启动?<br />---------------------------------------------<br /><br />查查DATASHEET,或者买本书看看吧..这个是全世界人都知道的事情.没看清楚就说别人有问题...<br />你为什么不使用ZLG的模板呢?
王紫豪 发表于 2007-4-8 01:33 | 显示全部楼层

道歉什么?关键是应该给自己道歉

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

28

帖子

0

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