使用sdram读写前,都要有以下的操作。必须要先等sdram芯片那边状态。
while(FMC_GetFlagStatus(FMC_Bank1_SDRAM, FMC_FLAG_Busy) != RESET)
{
}
然后再操作地址0xc0000000读写。
如果直接用地址0xC0000000来直接读写,而不先去等FMC_FLAG_Busy标志,虽然大部分没问题,但有时候还是会产生错误。
这样的话,sdram用起来就会很麻烦。有没有什么办法,可以把SDRAM当内部ram那样可以直接用?多谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
每次读写1K字节,判断写入和读出的数据是否一致,进行了上百次的32MB读写,一次32MB的读写时间大概为7秒。没有发现有异常。暂时结贴
定义u8 buf[5000] __attribute__((at(0xD0200000)));
可以直接对数组读写。
难道有问题?我试过,没有发现错误。
看来是我不懂了,确实了解不深。
一周热门 更多>