新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > MAXQ構架上閃存和SRAM存儲器的分配

        MAXQ構架上閃存和SRAM存儲器的分配

        作者: 時間:2013-05-25 來源:網絡 收藏
        gb(31,43,56); BORDER-RIGHT-COLOR: rgb(204,205,207); FONT-SIZE: 10pt; PADDING-TOP: 3px" class=tablebody4>———0x80000xFFFF


        圖3. 執行固定用途ROM函數時的存儲器映射

        和SRAM中的存儲器分配

        IAR嵌入式工作臺IDE用于編程基于核的微控制器。IAR? C編譯器(用于微控制器)提供用于定義或SRAM位置中數據對象或變量的選項。編譯器具有特殊關鍵詞pragma locationpragma required;通過使用關鍵詞,可將存儲器分配給絕對地址的數據對象或變量。必須用IAR關鍵詞__no_initconst(標準C關鍵詞)聲明這些變量或數據對象。請參見下文中__no_initconstpragma locationpragma required的關鍵詞說明。

        pragma location

        #pragma location用于定義絕對地址的單個全局或靜態變量或數據對象。變量或數據對象必須聲明為__no_initconst。這對于必須位于固定地址的個體數據對象非常有用,例如變量、帶有外部或內部接口的數據對象或增加的硬件表項。

        pragma required

        #pragma required確保鏈接輸出中包括某個符號所需的另一個符號。該指令必須放在緊鄰第二個符號的前邊。如果符號在應用中不可見,使用該指令。例如,如果僅通過某個變量所在的段對其進行間接引用,必須使用#pragma required

        __no_init

        正常情況下,應用程序啟動時,IAR運行時環境將全部全局和靜態變量初始化為0。IAR C編譯器支持聲明不初始化的變量,使用__no_init類型限定符。聲明為__no_init的變量在啟動時被禁止。不可能為__no_init對象賦予初始值。

        例如:__no_init char MaximChar @ 0x0200;

        本例中,聲明為__no_init的變量被放在默認數據存儲器(SRAM)的一個絕對地址。

        const

        const關鍵詞意味著對象為只讀。這類限定符用于表示直接或通過指針存取的數據對象,不可寫。當const隨關鍵詞#pragma location#pragma required一起使用時,IAR分配#pragma location定義的位置的存儲器。這對于配置從外部接口進行存取的參數非常有用。這樣的數據只能由固定用途ROM函數讀或寫。

        IAR默認存儲器模型中,不可存取絕對地址的常量。利用選項Place constants in CODE (在IAR ProjectOptionGeneral OptionTarget window)使其可存取,如圖4所示。


        圖4. IAR項目選項窗口

        例1

        const int FLASH_DATA0;
        //FLASH_DATA0 is initialized to 0x0000 and linker will allocate memory address.

        例2

        #pragma location = 0xA000
        const int FLASH_DATA1 = 0x1234;
        #pragma required = FLASH_DATA1
        本例中,存儲器分配為閃存地址0xA000,初始化為0x1234。

        例3

        #pragma location = 0xA002
        __no_init const int FLASH_DATA2 //Memory is allocated at the address 0xA002 (byte address)
        #pragma required = FLASH_DATA2

        本例中,存儲器分配為閃存地址0xA002,不初始化。

        上例中,有三個聲明為常量的對象,第一個初始化為0,第二個初始化為規定值,第三個不初始化。全部三個變量均在閃存中。


        上一頁 1 2 3 下一頁

        關鍵詞: MAXQ 閃存 SRAM存儲器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 青海省| 石嘴山市| 博客| 新闻| 荥经县| 青田县| 苗栗县| 金川县| 陆良县| 泸定县| 盈江县| 长寿区| 巴楚县| 吉安市| 萍乡市| 德清县| 庆安县| 侯马市| 太保市| 合川市| 南康市| 平顶山市| 漳浦县| 翁牛特旗| 凤庆县| 东海县| 湘西| 云安县| 朝阳区| 揭西县| 大兴区| 广饶县| 南岸区| 临夏市| 松原市| 灌南县| 枞阳县| 信丰县| 开封市| 竹山县| 含山县|