Board logo

标题: 很奇怪的问题,救命啊! [打印本页]

作者: appl    时间: 2008-6-3 15:15     标题: 很奇怪的问题,救命啊!

C6416EMIFA的CE0空间接了一片32bit的SDRAM,C6416的高32bit悬空不用,在对SDRAM进行写操作时,对一个地址操作会同时影响与其相邻16byte的地址空间,如对0x8000 0000写数据时,0x8000 0000和0x8000 0010的数据都会改变,同时对0x8000 0010操作也会改变
0x8000 0000的数据,请问这是怎么一回事啊??
作者: appl    时间: 2008-6-4 10:11

仔细查了下硬件,数据线、地址线都没有问题,数据类型定义为Unsigned int。
而且如果用16bit的SDRAM,数据类型相应的改为Unsigned short时,此时相互影响的为每相隔8Byte的地址,
如写数据到0x8000 0000,会使0x8000 0008内数据改变,反之也是。
如果用8bit的SDRAM,相互影响的是0x8000 0000和0x8000 0004。
这个是否与字节对齐有关?


作者: liudingli    时间: 2008-6-13 07:48

是存储器的空间太小了吧,映射地址是重复映射。所以会都改变,不过没关系,你用实际的存储器物理地址就号了。比方说是10k你就读10k的空间,如果读11k,后边的那1k就和开始的1k空间的内容一样了。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0