ARM編譯工具

ARM 297瀏覽

ARM Compilation Tools

ARM編譯工具就是使用廣為人知的ARM
RealView編譯工具。它包括如下幾部分:

  • ARM C/C++編譯器(armcc)
  • Microlib
  • ARM匯編器(armasm)
  • ARM鏈接器(armlink)
  • ARM工具(Librarian and FromELF)
這些開發工具作用于ARM微控制器系列,能夠幫助你編譯你所編寫ARM C/C++應用程序,相比較與編寫匯編來說,這樣可以提高工作效率和速度。

ARM編譯器工具鏈將C/C++源文件轉換為可重定位的目標文件,它包含完整的符號信息,方便在μVision調試器調試或在線仿真。除了目標文件,編譯器會生成一個列表文件,它可以包括符號表和交叉引用的信息。


Continuous Improvement

在ARM技術領域的編譯器當中,ARM編譯器是行業公認最高性能的。通過優化代碼的密度,ARM編譯器產生最小的代碼大小,以達到降低存儲空間成本。ARM編譯器能夠為 32-bit ARM指令集,16-bit Thumb指令集和32-bit/16-bit混合的Thumb-2指令集產生優化代碼,同時支持標準ISO C/C++語法。
ARM編譯器一直在精煉和改進代碼密度和性能,并提供新的亮點,比如MicroLIB。


ARM C/C++ Compiler (armcc)

有如下特點和優勢:

  • 支持ARM 模式和Thumb模式
? ? ? 你可以在你的源代碼中混合使用ARM代碼和Thumb代碼。 ARM模式下響應中斷會更快,Thumb模式下有利于減少代碼大小。
  • 優化代碼大小的技術是處于業界領先的
? ? ? ?通過生成最小的代碼空間來節約內存成本。
  • 優化代碼性能的技術是處于業界領先的
? ? ?在不提升時鐘頻率的情況下,通過增加吞吐量來降低功耗。
  • 支持訪問硬件的函數功能
? ? ? ARM C編譯器提供了一些支持訪問硬件功能的函數屬性。
? ? ? 示例:
? ? ? ?__irq允許使用C語言創建中斷服務程序
? ? ? ?__swi(id)允許調用軟件中斷處理函數
  • 嵌入式匯編
? ? ? ?你可以將匯編代碼插入到C函數當中。在快速DSP和其他信號處理算法編程中,這種做法是很有用的。即使你使用嵌入式匯編,ARM編譯器也會支持全部的程序優化,。
  • 內聯函數
當有些函數調用的頻率比較高的時候,可以通過使用內聯函數加速執行。內聯函數減少了函數調用,參數傳輸和返回值這些開銷。
  • ?CPU寄存器傳輸參數
?
ARM編譯器自動選擇CPU寄存器去傳輸函數參數。它甚至能夠通過寄存器傳輸和返回一些小的C結構體。
  • 可第重入的運行庫
大多數的庫是可重入的,并且可以被主程序和中斷調用。 不需要為調用庫安排特別的保護機制。
  • 兼容支持IEEE-754單精度浮點和雙精度浮點
高精度浮點支持。

MicroLib

  • MicroLib是一個高度優化的庫,主要是為了ARM嵌入式應用程序而建立,它是用C語言編寫的。相比于ARM工具鏈提供的標準C庫,MicroLib在代碼空間上有優勢,它是專門為嵌入式系統設計的。

ARM Macro Assembler (armasm)

有如下特點和優勢:

  • 標準宏處理器
宏處理器支持重復使用的宏匯編程序,或者自動匯編指令系列。
  • 條件匯編控制
在同一份源代碼中,你可以使用條件匯編去控制匯編源代碼去創建不同的目標應用。
  • 生成符號參考列表
列表文件包括了一個可選的交叉參考,它提供一些關于匯編源文件的詳細信息。

ARM Linker (armLink)

如下特點和優勢:
  • 詳細列表文件
鏈接器創建了一個全面易于理解的列表文件。它包括了一些詳細信息,比如內存配置,輸入模塊,內存映射,符號表和交叉參考。
  • 全局代碼列表
鏈接器產生一個全局代碼列表文件,它包括代碼的反匯編符號。
  • 靜態棧分析
鏈接器能夠計算棧要求是否滿足要求,這樣可以避免在目標應用程序運行過程中要棧檢查。

ARM Utilities

有如下特點和優勢:

  • The ARM Archiver (Librarian), armar
armar能夠將ELF目標文件打包成標準AR庫。并且可以通過創建可重入模塊來節約時間,這個模塊能夠被鏈接器替換多個ELF目標文件。
擁有armar能夠做到:
-創建新庫
-增加新文件到庫中
-替換庫中獨立的文件
-控制文件在庫中的位置順序
-顯示指定庫的相關信息
  • The ARM Elf Utility, fromelf
fromelf能夠通過編譯器,匯編器和鏈接 器去處理ARM ELF目標文件和鏡像文件。
擁有fromelf能夠做到:
-轉換ELF鏡像到其它格式,它可以被ROM加載,或者直接加載到內存當中。
-顯示關于輸入文件的信息,示例,反匯編,或者符號信息等。它可以輸出到標準輸出,也可以輸出到一個文件當中。

七星彩走势图2元网官网