Processor ARM79_0 raised an exception.Cause: Undefined instruction
Processor ARM79_0 raised an exception.Cause: Undefined instruction
用AXD调试程序时,按F5就弹出Processor ARM79_0 raised an exception.Cause: Undefined instruction。我的板子是mini2440。我上网也搜了大概总结出这个错误的原因好像是因为SDRAM没有初始化,我也下载了初始化文件,也按照网上说的在命令行输入ob name.txt也运行了,但是还是不行,同样的错误。请问高手该怎么加进初始化文件?还有什么要设置的吗?大家怎么调试的呢?
下载的初始化文件是初始化SDRAM的吗?用AXD是调试nboot吗?nboot中难道没有对SDRAM的初始化吗?
要不看看SDRAM的初始化代码?
今天上午我发现我有一个参考程序下载后就没有这个问题,我有对应着参考程序看他的设置一步一步的看终于让我发现了,原来我的CodeWarrior还没有设置好,现在都弄好了,刚开始学习了,才裸机编程
要把映像文件加载到SDRAM中,除了要正确设置好映像文件的RO段基地址外(对于一个加载时域和运行时域相同的映像文件来说,RO段基地址实际上就是该 映像文件在存储空间的起始地址),更关键的是要对SDRAM进行初始化。因为在上电时,SDRAM是没有被初始化的,所谓初始化SDRAM,就是要设置处 理器的SDRAM空间以及读写SDRAM的时序参数,因而SDRAM在初始化之前是不能进行读写操作的。
启动AXD时自 动初始化SDRAM:将初始化SDRAM的命令序列保存为一个2440init.txt文本文件(代码如下),然后在AXD的主窗口下选择菜单 Options->Configure Interface...,在Session File一页中选择“Run Configuration Script”,将该2440init.txt文本文件作为一个脚本加进来,确定。这样以后每次启动AXD时,就会自动运行该脚本来完成对SDRAM的初始化。
mem 0x53000000,0x00000000,32
setmem 0x4a000008,0xffffffff,32
setmem 0x4a00001c,0x00007fff,32
setmem 0x48000000,0x2212d110,32
setmem 0x48000004,0x00000f40,32
setmem 0x48000008,0x00002e50,32
setmem 0x4800000c,0x00002e50,32
setmem 0x48000010,0x00002e50,32
setmem 0x48000014,0x00002e50,32
setmem 0x48000018,0x00002e50,32
setmem 0x4800001c,0x00018005,32
setmem 0x48000020,0x00018005,32
setmem 0x48000024,0x00960542,32
setmem 0x48000028,0x00000032,32
setmem 0x4800002c,0x00000030,32
setmem 0x48000030,0x00000030,32