首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

很奇怪的问题,救命啊!

很奇怪的问题,救命啊!

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

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

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

返回列表