例程中实验36 外部SRAM实验的测试程序如下:
void fsmc_sram_test(u16 x,u16 y)
{
u32 i=0;
u8 temp=0;
u8 sval=0;
LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test: 0KB");
for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_WriteBuffer(&temp,i,1);
temp++;
}
for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_ReadBuffer(&temp,i,1);
if(i==0)sval=temp;
else if(temp<=sval)break;
LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);
}
}
我的疑问:1、这样的做法是否类似于读写FLASH? 将外部SRAM当作外部FLASH使用?
2、如果我要使用串口接收大量的数据,需要定义几个很大的接收数组(内部RAM不够用),应该如何使用外部的SRAM?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1、这样写跟读写flash有很大的区别,至少了SRAM是可以直接对某个地址进行读写的,直接访问要读写的地址即可,flash在写的时候要做复杂的擦除操作!
2、直接定义数组,让数组的地址指向外部SRAM即可!很简单的东西,参考内存管理函数里面定义外部内存的内存池的方式,使用__attribute(at())这样的语句
一周热门 更多>