运用简介:
开发板 神舟王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
之后就可以测验界说一个大数组试试了