久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2950|回復: 0
收起左側

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

[復制鏈接]
ID:91350 發表于 2015-10-29 19:06 | 顯示全部樓層 |閱讀模式
本帖最后由 piaolin 于 2015-10-29 19:07 編輯

前幾天看到論壇有人在問這個問題,我特意去做了這個實驗,這樣用外部SRAM就跟用內部SRAM一樣,不用自己去申請內存,也不用考慮什么內存地址,一切讓編譯器自己去解決。

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


        #if defined (STM32F10X_HD) || (defined STM32F10X_XL)|| (defined STM32F10X_HD_VL)
        #define DATA_IN_ExtSRAM 1
        #endif

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

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

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

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

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

       我們繼續深入點,看看testsram[]這個大數組到處編譯在到哪里去了,用IDA64來反匯編下編譯出來的AXF文件

       可以看到testsram這個大數組自動編譯到外部sram的0x68000000這個地址上。我們再試試再定義幾個大數組看看

       再來看看編譯后的結果

       可以看到每個大數組都由編譯器自己分配了內存的地址,壓根不用我們自己去定義。

       到這里相信大家會有一個疑問,那編譯是怎么來決定把哪些變量定義在內部SRAM,那些定義在外部SRAM。這一點我也研究清楚,我只知道編譯會優先把變量都定義外部SRAM,當外部SRAM不夠用情況才會定義在內部SRAM上,至于怎么讓編譯優先使用內部SRAM,我也沒有搞明白。目前我能做到的是把已經初始化的全局變量都放在SRAM,做法是修改散列文件,讓RW只在內存SRAM上編譯。

      去掉小紅框的勾,然后點擊Edit我們來修改SRAM.sct文件,也就是編譯散列文件

      把RW_RAM1中(也就是外部SRAM)的+RW去掉,這樣已經初始化的全局變量就只會編譯在內部SRAM中

      重新編譯下工程,再來反匯編下看看編譯結果

       可以看到usmart_nametab[]這個已經初始化的數組編譯在內部SRAM上,adc2[]這個未初始化的數組,數組的大小比較而且能在內部Sram編譯得下的,卻還是編譯在外部SRAM上。

       最后散列相關的知識,大家可以看看這里http://blog.csdn.net/lindabell/a ... 2d2a4e8d1a374a433f596ad1440

       前面沒有修改啟動文件,其它變量全部在內部SRAM的時候,程序運行是沒有問題,減小數組的時候程序運行不起來,修改前面的紅字部分后,程序就可以運行起來,但是LCD偶爾正常,偶爾不正常,調試下感覺是延時的問題,沒有再繼續調試了


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一二区 | 美女日皮网站 | a毛片| 久久久久久久久久性 | 国产成人99久久亚洲综合精品 | 在线观看成人小视频 | 国产精品99久久免费观看 | 欧美精品一区二区三区在线播放 | 国产精品69av | 天天久久 | 国产美女在线观看 | 免费看91| 日韩电影一区二区三区 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 久久亚洲国产 | 美女爽到呻吟久久久久 | 天天操天天干天天爽 | 亚洲一区二区三区在线播放 | 网站黄色在线免费观看 | 欧美日韩免费 | 精品一区二区三区在线视频 | 91精品国产91久久综合桃花 | 成人精品在线观看 | 91av在线电影 | 91精品在线看 | 日日骚视频 | 国产在线永久免费 | 日韩av第一页 | 91色视频在线观看 | 羞羞的视频免费在线观看 | 中文字幕乱码一区二区三区 | 久久久久国产精品午夜一区 | 懂色一区二区三区免费观看 | 国产成人网 | 一级网站 | 久久久久久天堂 | 又黑又粗又长的欧美一区 | 日韩中文字幕在线观看 | 亚洲欧美一区二区三区视频 | 中文字幕高清 | 久草在线在线精品观看 |