mdk Arm Compiler V6注意事宜


Arm Compiler V6發布已經好久,考慮到各種麻煩,懶得轉換。

近期研究iar對代碼的優化,忽然發現V6版本的優化也很不錯,遂對之前的代碼做了一些升級,當然過程比較坎坷,一些要點記錄一下:

1. 分散加載文件

; V6: armclang
#! armclang --target=arm-arm-none-eabi -mcpu=cortex-m3 -E -x c

; V5: armcc
#! armcc -E

分散加載文件中定義宏的時候,V5比較簡單,V6需要修改一下。

2. C語言宏的連接問題

V5的宏連接,##對連接內容沒有限制,但是V6只能連接一個符號。

比如:GPIOA##->ORD,這里面的符號“->”會出錯。

3. CPU底層接口ISB

在cpu底層代碼中,之前使用的__isb, 現在變成了__builtin_arm_isb,__isb會報錯。

#define __ISB()        __builtin_arm_isb(0xF);

4. 數據段的定義l

1 // V5:
2 #pragma arm section rwdata="EXT_RAM" zidata="EXT_RAM"
3 #pragma arm section rwdata="" zidata=""
4 
5 // V6
6 #pragma clang section data="EXT_RAM" bss  ="EXT_RAM"
7 #pragma clang section data="" bss  =""
8 
9 In Arm Compiler 5, the section types you can use this pragma with are rodata, rwdata, zidata, and code. In Arm Compiler 6, the equivalent section types are rodata, data, bss, and text respectively.

5. TODO...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM