久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > STM32在MDK中使用外部RAM淺解

STM32在MDK中使用外部RAM淺解

作者: 時間:2016-11-10 來源:網絡 收藏
使用簡介:
開發板 神舟王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
之后就可以嘗試定義一個大數組試試了



關鍵詞: STM32MDK外部RA

評論


技術專區

關閉