新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 让STM32的外部SRAM操作跟内部SRAM一样

让STM32的外部SRAM操作跟内部SRAM一样

作者:时间:2016-11-28来源:网络收藏
前几天看到开源电子论坛(openedv.com)有人在问这个问题,我特意去做了这个实验,这样用外部SRAM就跟用内部SRAM一样,不用自己去申请内存,也不用考虑什么内存地址,一切让编译器自己去解决。

废话不多说,我直接拿原子哥的战舰开发板库函数版的外部SRAM实验来修改。在库函数的system_stm32f10x.c这个初始化文件当中其实就已经有外部SRAM的初始化,我们只要增加“#define DATA_IN_ExtSRAM 1”这句宏定义

本文引用地址://m.amcfsurvey.com/article/201611/322732.htm

view sourceprint?
1#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
2
3#define DATA_IN_ExtSRAM 1
4#endif

再编译的时候就会把外部SRAM的初始化编译进去,初始化的代码大家可以去看文件中的void SystemInit_ExtMemCtl(void) 这个函数。然后我们在工程设置那里把外部SRAM地址增加进去,如下图

修改启动文件中的中的第39行,把__initial_sp 修改成__initial_spEQU 0x20000000 + Stack_Size

然后我们把Main中的testsram中的地址去掉,让编译器自己去指定地址

再把原子哥的外部SRAM的初始化注释掉,因为前面已经在System_init已经初始化了。其实这里我们可以把原子的SRAM.c文件去掉不用它了,我这里没去掉,其实只是为了能正常调用fsmc_sram_test()来测试实验结果

到这里我们可以编译了,下载到开发板,我们就可以看到实验结果


上一页 1 2 下一页

评论


技术专区

关闭