[ZLG-ARM] LPC2220程序固化的问题

[复制链接]
2736|4
 楼主| williamyan 发表于 2007-4-10 12:11 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;最近在EasyArm2220的开发板上做东西,在外部ram调试的时候很正常,但是换成固话到外部flash的时候就出问题了,我查看过FAQ,硬件上该设置的(bank0和bank1的跳线,ISP上拉等)应该都设置好了,单步执行的时候发现每次运行到starup.s的ResetInit函数时候就会出问题,代码如下:<br /><br />ResetInit<br />;初始化外部总线控制器,根据目标板决定配置<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;=PINSEL2<br />;初始化外部引脚,其中使能XCLK&nbsp;引脚,使能EINT2&nbsp;中断<br />&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;:DEF:&nbsp;EN_CRP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;=0x0f814910<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;=0x0D816910<br />&nbsp;&nbsp;&nbsp;&nbsp;ELSE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;=0x0f814914<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;=0x0D816914<br />&nbsp;&nbsp;&nbsp;&nbsp;ENDIF<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;[R0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;执行这一句出问题<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;…………<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;…………<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;…………<br />&nbsp;&nbsp;当执行完这一句,在memory窗口当中查看的0x80000000开始的区域的值就全部跳变为0xFF,很是奇怪,望大哥大姐指引小弟,多谢~~<br />
 楼主| williamyan 发表于 2007-4-11 10:39 | 显示全部楼层

还是未解决~~~

帮帮忙啊~~~~~~~·
hjiongh 发表于 2007-4-11 13:08 | 显示全部楼层

可以这样解决---〉

我碰到过你这样的问题,你更改PINSEL2不能在startup.s中,必须去mian中更改
zlgARM 发表于 2007-4-11 21:36 | 显示全部楼层

williamyan

&nbsp;&nbsp;&nbsp;&nbsp;要从软件和硬件两方面去找原因。<br />&nbsp;&nbsp;&nbsp;&nbsp;软件方面,您用光盘里的例程,选准生成到外部FLASH。<br />&nbsp;&nbsp;&nbsp;&nbsp;硬件方面,请您一定要按说明去连接好跳线,反复检查。
 楼主| williamyan 发表于 2007-4-12 14:14 | 显示全部楼层

找到问题,不过更加困惑ing

&nbsp;&nbsp;&nbsp;&nbsp;多谢楼上的两位大哥,我找到了问题的所在,因为外部我使用的NOR&nbsp;Flash为2MB,所以占用了地址位A1~A20,而当我将XCLK使能的时候,PINSEL2的bit27~25就设置成了110,这个时候只有A[19:2]为地址线,这个时候A[20]~A[22]就统统拉高了,相当于我试图去读NOR&nbsp;Flash&nbsp;0x00&nbsp;0000的时候实际给NOR&nbsp;FLASH的地址为0x10&nbsp;0000的值,所以全部跳变成为了0xFF(未编程过的值);<br />&nbsp;&nbsp;&nbsp;&nbsp;现在问题找到了,不过解决方法就比较头疼了,要么直接将A[20]拉为低,这样Nor&nbsp;Flash就只能使用1MB;要么不使能XCLK,直接使用PINSEL2的默认上电值。不过现在我的外部器件需要XCLK的输出,我翻遍了文档,找不到可以同时使能XCLK,且将A[20]做为地址线的方法~~~<br />&nbsp;&nbsp;&nbsp;&nbsp;PS:&nbsp;另外A20,&nbsp;A21,&nbsp;A22&nbsp;都存在这个问题~~~~不知道有没有人碰到过这个问题~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

7

帖子

0

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