FSMC外挂SRAM:
用的是IS61LV25616,是个256K*16字节的SRAM,外部总线A0-A17(寻址范围0x40000),数据线D0-D15,
地址Bank1_SRAM3_ADDR ((u32)0x68000000)
修改工程外部RAM 起始地址(u32)0x68000000 范围0x40000
再把启动文件的memory地址修改下 程序可以运行
我的问题是:范围写成0x80000也可以运行,程序里面Bank1_SRAM3_ADDR ((u32)0x68000000) 随便修改都可以运行,只要比0x68000000小就行,不明白怎么回事
下面是我的主程序:
#define WRITE_READ_ADDR 0x30000 //读写的起始地址
#define Bank1_SRAM3_ADDR ((u32)0x68000000)
........
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); //使能FSMC时钟
FSMC_SRAM_Init(); //初始化FSMC
FSMC_SRAM_WriteBuffer(TxBuffer, WRITE_READ_ADDR, BUFFER_SIZE); //写入数据
FSMC_SRAM_ReadBuffer(RxBuffer, WRITE_READ_ADDR, BUFFER_SIZE); //读出数据
for(i=0;i<10;i++)
{
printf("RxBuffe[%d]:%d ",i,RxBuffer);
} |