您的位置 首页 电源

让STM32的外部SRAM操作跟内部SRAM相同

前几天看到开源电子论坛(openedvcom)有人在问这个问题,我特意去做了这个实验,这样用外部SRAM就跟用内部SRAM一样,不用自己去申请内存,

前几天看到开源电子论坛(openedv.com)有人在问这个问题,我特意去做了这个试验,这样用外部SRAM就跟用内部SRAM相同,不必自己去请求内存,也不必考虑什么内存地址,全部让编译器自己去处理。

废话不多说,我直接拿原子哥的战舰开发板库函数版的外部SRAM试验来修正。在库函数的system_stm32f10x.c这个初始化文件傍边其实就现已有外部SRAM的初始化,咱们只需添加“#define DATA_IN_ExtSRAM 1”这句宏界说

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()来测验试验成果

到这儿咱们能够编译了,下载到开发板,咱们就能够看到试验成果

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/256002.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部