LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test: 0KB");
//每个地址写入一个数据,总共写入1024*1024个数据,刚好是1M字节
temp =0;
for(i=0;i<1024*1024;i++)
{
FSMC_SRAM_WriteBuffer(&temp,i,1);
temp+=1;
}
//依次读出之前写入的数据,进行校验
for(i=0;i<1024*1024;i++)
{
FSMC_SRAM_ReadBuffer(&temp,i,1);
if(temp != i)
{
delay_ms(10); // 如果进入这个条件,说明写入和读出的数据不一致,有异常
}
}
如果把代码改成上面的,调试发现能进入异常条件中,即写入和读出的数据不一致,此时i=256
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
现在一个疑问请教,在SRAM中定义:u32 testsram[250000] __attribute__((at(0X68000000)));//测试用数组
是不是已经可以说明数组testsram中的内容已经在SRAM中了,如果这样的话,那么读和写SRAM的功能是不是不需要了,即testsram就可以像在RAM中使用一样?
以下函数多余?
void FSMC_SRAM_WriteBuffer(u8* pBuffer,u32 WriteAddr,u32 n)
void FSMC_SRAM_ReadBuffer(u8* pBuffer,u32 ReadAddr,u32 n)
我在用STM32CUBEMX生成的代码中加入以下这句后,提示“could not stop cortex-m device”
*(vu32*)(Bank5_SDRAM_ADDR+i)=temp;
在网上找一些方法尝试解决不了问题,删除这句之后就正常了,这个是什么原因?
一周热门 更多>