您的位置 首页 制造

STM32在MDK中运用外部RAM浅解

使用简介:开发板神舟王STM32F207开发板问题描述:在使用emwin的时候由于占用的变量较多,出现了STM32F207内部RAM不够用的尴尬局面,开发…

运用简介:

开发板 神舟王STM32F207开发板
问题描绘:

在运用emwin的时分因为占用的变量较多,呈现了STM32F207内部RAM不够用的为难局势,开发板自带了4M的外部SRAM,因而考虑速度和存储的平衡,运用芯片内部RAM作为仓库区运用,外部RAM则用来存储其他变量

修正内容:
发动文件即startup_stm32f2xx.s文件
1.增加标志量:DATA_IN_ExtSRAM EQU 1 ;主要是便利操控切换运用内部和外部RAM
2.修正栈区:IF DATA_IN_ExtSRAM == 1

__initial_sp EQU 0x20000000 + Stack_Size
ELSE
__initial_sp
ENDIF
3.在进入main函数之前初始化外部RAM
有两种初始化方法
第一种:在SystemInit内初始化
SystemInit函数坐落system_stm32f2xx.c文件内
界说宏变量DATA_IN_ExtSRAM
这样体系初始化时就会调用函数SystemInit_ExtMemCtl
修正SystemInit_ExtMemCtl函数内容,即初始化FSMC RAM
第二种
在startup_stm32f2xx.s内 调用main函数前先调用RAM初始化函数完结RAM的初始化
IMPORT __main
IMPORT SystemInit
IMPORT SRAM_Init
LDR R0, =SystemInit
BLX R0
LDR R0, =SRAM_Init
BLX R0
LDR R0, =__main
BX R0
ENDP
当然还有最蛋疼的一种方法便是在startup_stm32f2xx.s初始化外部RAM 不过需求修正成汇编语言
最终便是修正MDK的装备 在option->target勾选上外部RAM
之后就可以测验界说一个大数组试试了

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部