新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > IAR編譯器的常見問題

        IAR編譯器的常見問題

        作者: 時間:2016-11-30 來源:網絡 收藏

        5.內聯函數

        inline函數傳統上只有C++支持,但IAR EW也支持在C代碼中使用inline.
        #pragma inline:建議編譯器對緊隨其后的函數進行inline處理
        #pragma inline = forced:強制編譯器對緊隨其后的函數進行inline處理

        /***************************** 錯誤描述 ******************************************/// tft.c中定義內聯函數#pragma inline = forced          //強制inlinevoid TFT_Write_Colour(const RGB_COLOUR *rgb){ //...code....}// tft.h中聲明函數void TFT_Write_Colour(const RGB_COLOUR *rgb);// main.c中調用函數// 編譯報錯:main中引用了未定義的外部函數TFT_Write_Colour。/***************************** 解決辦法 ******************************************/// tft.h中“定義函數”#pragma inline = forced          //在IAR EW430中,這里必須用強制inline;用inline可能導致編譯器忽略內聯,而定義成普通函數而出錯。void TFT_Write_Colour(const RGB_COLOUR *rgb){ //...code....}// main.c中包含tft.h,并調用函數// 結果:編譯正確

        6. 如何把變量定義到flash空間

        unsignedchar__flash temptab[] = {1,2,3,4,5};
        __flash unsignedchara @ 0x8;// 定義變量存放在flash 空間0X08單元

        7. 關于內存模型

        AVR微控制器的其中一個特點是它有一種存儲器訪問方法均衡了“cheap access limited to small memory areas”與“more expensive accessmethods that can access any location in memory”。
        在AVR_IAR C/C++編譯器中,通過選擇某種存儲模式(memorymodel),可設置一些訪問方法為默認的存儲器訪問方法(default memory accessmethod)。共有三種可用的存儲模式——Tiny,Small 和Large。你的處理器選項決定了哪些模式可以使用。如果你不指定一種存儲模式,則編譯器自動設定-v0、-v1、-v2、-v3、-v5 選項下的默認方法為Tiny,-v4 和-v6 選項下的訪問方法為Small。  

        8.關于生成文件格式的設置

        如圖,在linker -> outpu ->other中可設置相應的輸出文件格式.

        比如要生成bin格式,選擇raw-binary就可以了, 如果是要生成hex格式,那么可以選intel-extern ,不過這個時候文件擴展名是*.a90,可以把"Override default " 打鉤,然后修改后綴名為hex就行了.

        ------------------------------------------------------------------------------------------------------------------


        上一頁 1 2 3 下一頁

        關鍵詞: IAR編譯

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 华宁县| 湘潭市| 鲁山县| 香港 | 治多县| 沽源县| 凉山| 和平区| 中山市| 澎湖县| 云梦县| 嘉黎县| 方山县| 唐山市| 山东| 水富县| 延川县| 醴陵市| 苍山县| 左权县| 台中县| 满城县| 奎屯市| 报价| 南平市| 淳化县| 商丘市| 广宗县| 凭祥市| 商都县| 应城市| 安溪县| 紫阳县| 昔阳县| 汨罗市| 炎陵县| 道孚县| 阿克陶县| 承德县| 桐庐县| 荥阳市|