您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 关于sdram的位宽对存储数据的影响问题
本帖共有1837个阅读者
发表帖子 发表投票 回复主题
关于sdram的位宽对存储数据的影响问题
liangbread(论坛新手)
liangbread
头衔:社区公民
帮派:无帮无派
帖数:10
金钱:228
积分:17
注册时间:2014/2/18
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关于sdram的位宽对存储数据的影响问题
各位大侠,想请教一个问题,假如我的sdram是16bit的现在要往片外sdram地址为0x00200000的地方写一个32位的0xFFFFFFFF的值,那么它会不会溢出到0x00200001的地址上?还是说对于逻辑地址的分配DSP已经自动帮我们做好了?

其实我自己也做过仿真,结果应该是0x00200000里面的值不会溢出到0x00200001上面,但是我还是不大理解,根据sdram的原理,位宽为16bit的话不是就是说每一个存储单元的存储容量只能放16bit的数据了吗?那么为什么我存放了一个超过16bit依然没有影响到下一个地址的数据?

可能这个问题很菜鸟,不过确实困扰我一段时间了。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/5/31 21:43:49
liangbread(论坛新手)
liangbread
头衔:社区公民
帮派:无帮无派
帖数:10
金钱:228
积分:17
注册时间:2014/2/18
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/6/3 17:58:19
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
内存的绝对地址是以字节寻址的,如果你的指针是int型,你送入指针的地址,实际上是32位的。当完成一次数据写入,指针地址+1后,实际上是跨过了4个byte。所以你看到了 0x00200000地址写入32位数据后,不会溢出到
0x00200001地址上,这个地址实际上对应的绝对地址是需要乘以4的。即实际地址是0x00800000和0x00800004.
你可以打开memory窗口,看一下指针写入数据的实际地址。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/6/3 23:45:42
liangbread(论坛新手)
liangbread
头衔:社区公民
帮派:无帮无派
帖数:10
金钱:228
积分:17
注册时间:2014/2/18
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你好,Andy。

按照你的说法,我做了一下仿真。修改代码如下:
*(volatile char*)0x220000=0;
*(volatile char*)0x220002=0;
*(volatile char*)0x220001=0;
temp = 0x12345678;
memcpy((char*)0x220001,(char*)&temp, 1);
temp = 11;

对传入memcpy函数作了指针强制转换为(char*)类型,但是实际上结果仍然和之前一样,0x220001地址里面的值被改写为0x12345678了而不是理所当然的低字节0x78。
PS:我做这个测试是在21489上面做的,并且对于sdram部分的ldf文件配置如下所示:

  seg_ext_swco  { TYPE(SW RAM) START(0x00600000) END(0x0065FFFD) WIDTH(16) }
  seg_ext_nwco  { TYPE(PM RAM) START(0x00220000) END(0x005FFFFF) WIDTH(16) }
  seg_ext_dmda  { TYPE(DM RAM) START(0x00900000) END(0x01DFFFFD) WIDTH(16) }
  seg_ext_pmda  { TYPE(DM RAM) START(0x01E00000) END(0x032FFFFD) WIDTH(16) }

仿真截图如下所示:



「该帖子被 liangbread 在 2014-06-04 11:48:56 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/6/4 11:37:07
liangbread(论坛新手)
liangbread
头衔:社区公民
帮派:无帮无派
帖数:10
金钱:228
积分:17
注册时间:2014/2/18
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
对于这个问题,另外在ADI官方论坛上得到了详细解答,详见如下传送门:

https://ez.analog.com/message/145961#145961

PS:当然传送门中只针对了sharc21489,也由此说明了sharc和blackfin的不同


「该帖子被 liangbread 在 2014-06-06 22:16:19 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/6/6 22:15:07
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
赞!

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2014/6/7 11:18:41
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154162 Call, 1 Queries, Processed in 0.031250 second(s),