新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 讓STM32的外部SRAM操作跟內部SRAM一樣

        讓STM32的外部SRAM操作跟內部SRAM一樣

        作者: 時間:2016-11-28 來源:網絡 收藏
        前幾天看到開源電子論壇(openedv.com)有人在問這個問題,我特意去做了這個實驗,這樣用外部SRAM就跟用內部SRAM一樣,不用自己去申請內存,也不用考慮什么內存地址,一切讓編譯器自己去解決。

        廢話不多說,我直接拿原子哥的戰艦開發板庫函數版的外部SRAM實驗來修改。在庫函數的system_stm32f10x.c這個初始化文件當中其實就已經有外部SRAM的初始化,我們只要增加“#define DATA_IN_ExtSRAM 1”這句宏定義

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

        view sourceprint?
        1#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
        2
        3#define DATA_IN_ExtSRAM 1
        4#endif

        再編譯的時候就會把外部SRAM的初始化編譯進去,初始化的代碼大家可以去看文件中的void SystemInit_ExtMemCtl(void) 這個函數。然后我們在工程設置那里把外部SRAM地址增加進去,如下圖

        修改啟動文件中的中的第39行,把__initial_sp 修改成__initial_spEQU 0x20000000 + Stack_Size

        然后我們把Main中的testsram中的地址去掉,讓編譯器自己去指定地址

        再把原子哥的外部SRAM的初始化注釋掉,因為前面已經在System_init已經初始化了。其實這里我們可以把原子的SRAM.c文件去掉不用它了,我這里沒去掉,其實只是為了能正常調用fsmc_sram_test()來測試實驗結果

        到這里我們可以編譯了,下載到開發板,我們就可以看到實驗結果


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 商水县| 达孜县| 富蕴县| 眉山市| 玉屏| 郎溪县| 岚皋县| 体育| 伊川县| 临湘市| 革吉县| 临泽县| 太白县| 从江县| 天峨县| 龙川县| 蒙阴县| 连南| 嘉定区| 中西区| 隆子县| 贞丰县| 冷水江市| 应城市| 木兰县| 刚察县| 洛宁县| 化隆| 揭西县| 西乌珠穆沁旗| 随州市| 大安市| 三门峡市| 四子王旗| 蒲江县| 彭阳县| 灵丘县| 灯塔市| 横峰县| 扶沟县| 鹿邑县|