今天又做一个实验,即用ADS进行调试,
先初始化CPU,代码如下:
setmem 0x4c000014,0x7,32
setmem 0x4c000004,0x6e031,32
setmem 0x4c000008,0x3c042,32
setmem 0x48000028,0x82,32
然后,配置SDRAM,代码如下:
setmem 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 0x4800002c,0x00000030,32
setmem 0x48000030,0x00000030,32
然后选择”Load Memory from File…”,下载我的测试程序“test.bin”到0X30000000后,
在菜单中选择”Process Views”,然后选择”Memory”,输入DRAM的地址0x30000000.查看
内存发现:
0x30000000~0x300000ff内存的数据没问题与“test.bin”前0xff(256)个字节一致。
但0x30000100~0x300001ff和0x30000200~0x300002ff内存的数据跟内存地址0x30000300~
0x300003ff数据一样。跟“test.bin”的0x300~0x3ff一样。
即,0x30000100~0x300001ff和0x30000200~0x300002ff内存的数据被0x30000300~
0x300003ff数据代替。
同样发现0x30000500~0x300005ff和0x30000600~0x300006ff内存的数据被0x30000700~
0x300007ff数据代替。
0x30000800~0x300008ff、0x30000900~0x300009ff和0x30000a00~0x30000bff内存的数据被0x30000b00~0x30000bff数据代替。
这0xff,即256数据为一组,在SDRAM中表示含义?为什么会出现这个现象,请路过高人指点。