新聞中心

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

        FSMC使用之外擴RAM的妙用

        ——
        作者:liklon 時間:2013-10-23 來源:電子產品世界 收藏

          LDR R0,= 0x00001011 ;選擇存儲類型S,地址數據不復用,總線寬度16位,寫使能,并啟動存儲器塊

        本文引用地址:http://www.104case.com/article/182411.htm

          LDR R1,= 0xA0000010

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

          LDR R0,= 0x00000200 ;根據外部S芯片的時序配置時序寄存器

          LDR R1,= 0xA0000014

          STR R0,[R1] ;時序寄存器配置結束

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

          啟動文件與編譯軟件配置

          最后一步就是對啟動文件進行修改以及對編譯軟件進行配置。現在需要把片內的全部作為棧來使用,所以在啟動文件中要完成棧頂地址的設置以及長度的設置。并在啟動文件中完成對的配置。

          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 ;重點從這里開始

          __initial_sp EQU 0X20000000 + Stack_Size ;設置棧頂地址,是向下生長 ;的所以這么設置

          ELSE

          __initial_sp

          ENDIF

          第一處修改完成,主要完成了對棧頂的設置。下面開始第二處:

          Reset_Handler PROC

          EXPORT Reset_Handler [WEAK]

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

          ;此處添加上面對配置的代碼

          ENDIF ;修改結束

          IMPORT __main

          IMPORT SystemInit

          LDR R0, =SystemInit

          BLX R0

          LDR R0, =__main

          BX R0

          ENDP

          第二處修改完成,主要是加入了對FSMC配置的代碼。到此啟動代碼的修改部分就結束了,下面對編譯軟件進行設置。在設置之前我們回頭看看第一部分對FSMC的介紹,可以看出現在RAM的首地址為0x68000000,因為我們是通過Bank1的第三區(qū)控制的所以首地址是0x68000000。了解了這個我們就開始設置編譯軟件:

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

        存儲器相關文章:存儲器原理



        上一頁 1 2 下一頁

        關鍵詞: STM32 FSMC RAM

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 吴堡县| 冀州市| 丹棱县| 长寿区| 迭部县| 清流县| 连南| 宁阳县| 甘德县| 资溪县| 武川县| 赣榆县| 衡阳县| 湾仔区| 刚察县| 晋州市| 延长县| 蒲城县| 柯坪县| 太白县| 江北区| 济阳县| 宜昌市| 伊春市| 教育| 伊通| 湘潭县| 清苑县| 县级市| 汉寿县| 上杭县| 历史| 许昌县| 英吉沙县| 拉萨市| 凉城县| 洛浦县| 锡林郭勒盟| 嵊泗县| 林周县| 玛沁县|