2440为什么不执行指令?

tianzongwu   2008-6-26 10:55 楼主
最近在调试自己做的一块2440得板子,JTAG链接上了,能够识别出内核为ARM920T。但是就是不执行指令。
由于是硬件调试,所以目前只焊了晶振电路、电源电路、复位电路、JTAG部分、LED部分以及初始化设置跳线部分,其余的外围器件都没有连接。目前做的实验是:用AXD向特殊寄存器地址中写数以点亮LED,但是没有反应。
命令行如下:
setmem 0x53000000 0x0                        ;关看门狗
setmem 0x4a000008 0xffffffff                ;屏蔽中断
setmem 0x4a00001c 0x3ff                        ;
setmem 0x4c000000 0xffffff                ;locktime设置
setmem 0x4c000014 0x07                        ;clkdivn
setmem 0x4c000008 0x48042                ;UPLLCON 48MHz
setmem 0x4c000008 0x78022                ;MPLLCON 256MHz
setmem 0x56000000 0x7fffff                ;GPACON
setmem 0x56000010 0x155555                ;GPBCON
setmem 0x56000018 0x7ff                        ;GPBUP
setmem 0x56000020 0xaaaaaaaa                ;GPCCON
setmem 0x56000028 0xffff                ;GPCUP
setmem 0x56000030 0xaaaaaaaa                ;GPDCON
setmem 0x56000038 0xffff                ;GPDUP
setmem 0x56000040 0xaaaaaaaa                ;GPECON
setmem 0x56000048 0xffff                ;GPEUP
setmem 0x56000050 0x55aa                ;GPFCON
setmem 0x56000058 0xff                        ;GPFUP
setmem 0x56000060 0xff95ffba                ;GPGCON
setmem 0x56000068 0xffff                ;GPGUP
setmem 0x56000070 0x2afaaa                ;GPHCON
setmem 0x56000078 0x7ff                        ;GPHUP
setmem 0x560000d0 0x016aaaa                ;GPGCON
setmem 0x560000d8 0x1fff                ;GPGUP
setmem 0x56000054 0x0f                  ;GPFDAT 点亮led

回复评论 (7)

老兄是牛人,做了我想做没条件做的事,不过你为什么不写一段汇编初始化代码来调试(拷贝BootLoader中的也行),你怎么确定点亮LED之前的代码或者你写
入寄存器的信息正确写入了??会不会是JTAG 口不能正常工作造成的??希望你的问题能够快速解决,向你多学习一些经验教训。
点赞  2008-6-26 16:02
上面的程序就是我按照2440init里面的设置进行配置的,因为刚开始接触这个,写程序比较困难,呵呵!
只能看别人的程序,然后修改对应寄存器的值已达到启动的目的。但是现在没结果,我就很郁闷!
能否告诉我arm920t的内存地址是怎么分配的?之前作单片机的时候,知道特殊功能寄存器是在内部的一片ram,而2440的内部只有16k的指令/数据缓存,而且此时我没有焊接外部的sdram,那么2440访问0x4a000008这个地址是怎么访问的呢?

我看了好几遍datasheet都没弄懂!呜呜呜呜……
点赞  2008-6-26 18:47
搞定了,setmem指令没用对,后面得设置写入数值的位数。兴奋!
点赞  2008-6-26 19:33
很高兴楼主问题顺利解决,2440 空间地址分配在某个 .h文件中有定义 好像是 2440.h 忘了。你可以找找看。
点赞  2008-6-27 11:28
是s2440.h文件 但要注意虚拟地址空间和实地址空间的区别
点赞  2008-6-27 11:44
你现在应该可以下载代码到SRAM中运行了。
点赞  2008-6-27 11:46
目前我没有下载代码,我是使用的axd提供的指令setmem对特殊功能寄存器进行设置,即直接对端口操作。谢谢
我要结帖了。新建了个群,希望大家能够加入64676072
点赞  2008-6-27 13:45
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复