OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3996|回复: 5

F429,怎么把sdram当内存使用

[复制链接]

7

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-9-9
在线时间
7 小时
发表于 2016-8-8 10:17:24 | 显示全部楼层 |阅读模式
10金钱

使用sdram读写前,都要有以下的操作。必须要先等sdram芯片那边状态。
  while(FMC_GetFlagStatus(FMC_Bank1_SDRAM, FMC_FLAG_Busy) != RESET)
  {
  }

然后再操作地址0xc0000000读写。


如果直接用地址0xC0000000来直接读写,而不先去等FMC_FLAG_Busy标志,虽然大部分没问题,但有时候还是会产生错误。

这样的话,sdram用起来就会很麻烦。有没有什么办法,可以把SDRAM当内部ram那样可以直接用?多谢!

最佳答案

查看完整内容[请看2#楼]

SDRAM为256Mb,把一个32M字节的数组定义到SDRAM的起始地址,然后往SDRAM里遍历写0x55和0xaa, 每次读写1K字节,判断写入和读出的数据是否一致,进行了上百次的32MB读写,一次32MB的读写时间大概为7秒。没有发现有异常。暂时结贴
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-9-9
在线时间
7 小时
 楼主| 发表于 2016-8-8 10:17:25 | 显示全部楼层
SDRAM为256Mb,把一个32M字节的数组定义到SDRAM的起始地址,然后往SDRAM里遍历写0x55和0xaa,
每次读写1K字节,判断写入和读出的数据是否一致,进行了上百次的32MB读写,一次32MB的读写时间大概为7秒。没有发现有异常。暂时结贴
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11476
金钱
11476
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-8-8 10:21:43 | 显示全部楼层

够呛,没有可能性。

回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-8-8 12:59:08 | 显示全部楼层
看我们的429开发板的例程,SDRAM配置好就可以直接读写指定地址了
回复

使用道具 举报

104

主题

150

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1796
金钱
1796
注册时间
2014-1-4
在线时间
559 小时
发表于 2016-8-8 12:59:27 | 显示全部楼层
xuande 发表于 2016-8-8 10:21
够呛,没有可能性。

定义u8 buf[5000] __attribute__((at(0xD0200000)));
可以直接对数组读写。
难道有问题?我试过,没有发现错误。
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11476
金钱
11476
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-8-8 13:43:54 | 显示全部楼层

看来是我不懂了,确实了解不深。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 00:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表