新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > FSMC使用之外擴(kuò)RAM的妙用

FSMC使用之外擴(kuò)RAM的妙用

——
作者:liklon 時(shí)間:2013-10-23 來源:電子產(chǎn)品世界 收藏

  LDR R0,= 0x00001011 ;選擇存儲(chǔ)類型S,地址數(shù)據(jù)不復(fù)用,總線寬度16位,寫使能,并啟動(dòng)存儲(chǔ)器塊

本文引用地址:http://m.butianyuan.cn/article/182411.htm

  LDR R1,= 0xA0000010

  STR R0,[R1] ;對(duì)控制寄存器配置完成

  LDR R0,= 0x00000200 ;根據(jù)外部S芯片的時(shí)序配置時(shí)序寄存器

  LDR R1,= 0xA0000014

  STR R0,[R1] ;時(shí)序寄存器配置結(jié)束

  有了對(duì)的配置代碼,最后一步就是修改的啟動(dòng)文件以及編譯軟件的設(shè)置,具體如何操作咱繼續(xù)往后看。

  啟動(dòng)文件與編譯軟件配置

  最后一步就是對(duì)啟動(dòng)文件進(jìn)行修改以及對(duì)編譯軟件進(jìn)行配置。現(xiàn)在需要把片內(nèi)的全部作為棧來使用,所以在啟動(dòng)文件中要完成棧頂?shù)刂返脑O(shè)置以及長(zhǎng)度的設(shè)置。并在啟動(dòng)文件中完成對(duì)的配置。

  DATA_IN_ExtSRAM EQU 1 ;方便以后修改所用

  Stack_Size EQU 0x00000400 ;定義棧的大小

  AREA STACK, NOINIT, READWRITE, ALIGN=3

  Stack_Mem SPACE Stack_Size

  IF DATA_IN_ExtSRAM == 1 ;重點(diǎn)從這里開始

  __initial_sp EQU 0X20000000 + Stack_Size ;設(shè)置棧頂?shù)刂罚?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/STM32">STM32是向下生長(zhǎng) ;的所以這么設(shè)置

  ELSE

  __initial_sp

  ENDIF

  第一處修改完成,主要完成了對(duì)棧頂?shù)脑O(shè)置。下面開始第二處:

  Reset_Handler PROC

  EXPORT Reset_Handler [WEAK]

  IF DATA_IN_ExtSRAM == 1 ;方便以后修改

  ;此處添加上面對(duì)配置的代碼

  ENDIF ;修改結(jié)束

  IMPORT __main

  IMPORT SystemInit

  LDR R0, =SystemInit

  BLX R0

  LDR R0, =__main

  BX R0

  ENDP

  第二處修改完成,主要是加入了對(duì)FSMC配置的代碼。到此啟動(dòng)代碼的修改部分就結(jié)束了,下面對(duì)編譯軟件進(jìn)行設(shè)置。在設(shè)置之前我們回頭看看第一部分對(duì)FSMC的介紹,可以看出現(xiàn)在RAM的首地址為0x68000000,因?yàn)槲覀兪峭ㄟ^Bank1的第三區(qū)控制的所以首地址是0x68000000。了解了這個(gè)我們就開始設(shè)置編譯軟件:

  到此為止所有工作都完工了,可以給UCGUI的存儲(chǔ)設(shè)備分配70K字節(jié)的空間都毫無壓力。最后提醒一點(diǎn),記得將Use MicroLIB 選上。

存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理



上一頁 1 2 下一頁

關(guān)鍵詞: STM32 FSMC RAM

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉