打印
[ZLG-ARM]

LPC2220程序固化的问题

[复制链接]
1751|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
williamyan|  楼主 | 2007-4-10 12:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   最近在EasyArm2220的开发板上做东西,在外部ram调试的时候很正常,但是换成固话到外部flash的时候就出问题了,我查看过FAQ,硬件上该设置的(bank0和bank1的跳线,ISP上拉等)应该都设置好了,单步执行的时候发现每次运行到starup.s的ResetInit函数时候就会出问题,代码如下:

ResetInit
;初始化外部总线控制器,根据目标板决定配置

        LDR     R0, =PINSEL2
;初始化外部引脚,其中使能XCLK 引脚,使能EINT2 中断
    IF :DEF: EN_CRP
        ;LDR     R1, =0x0f814910
        LDR     R1, =0x0D816910
    ELSE
        ;LDR     R1, =0x0f814914
        LDR     R1, =0x0D816914
    ENDIF
        STR     R1, [R0]      ;执行这一句出问题
     …………
     …………
     …………
  当执行完这一句,在memory窗口当中查看的0x80000000开始的区域的值就全部跳变为0xFF,很是奇怪,望大哥大姐指引小弟,多谢~~

相关帖子

沙发
williamyan|  楼主 | 2007-4-11 10:39 | 只看该作者

还是未解决~~~

帮帮忙啊~~~~~~~·

使用特权

评论回复
板凳
hjiongh| | 2007-4-11 13:08 | 只看该作者

可以这样解决---〉

我碰到过你这样的问题,你更改PINSEL2不能在startup.s中,必须去mian中更改

使用特权

评论回复
地板
zlgARM| | 2007-4-11 21:36 | 只看该作者

williamyan

    要从软件和硬件两方面去找原因。
    软件方面,您用光盘里的例程,选准生成到外部FLASH。
    硬件方面,请您一定要按说明去连接好跳线,反复检查。

使用特权

评论回复
5
williamyan|  楼主 | 2007-4-12 14:14 | 只看该作者

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

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

7

帖子

0

粉丝