arm在Windows的編譯器
1. 如何利用Eclipse C/C++搭建嵌入式ARM開發環境
由於覺得在linux下不方便編寫代碼,所以准備在windows上搭建開發環境,其實在Linux上也搭建好了,但是使用起來不是很人性化,尤其是文件比較多的時候就很麻煩。下面就選擇在windows上用Eclipse做開發。【後來發現還是需要在Linux下編程,因為Windows下沒法包含Linux下的一些頭文件,所以下面也介紹Linux環境下的Eclipse搭建】。
Windows下的Eclipse環境搭建:
1. 下載並安裝Eclipse C/C++
2. 下載交叉編譯器,之前在Linux都用的arm-linux-gcc,後來使用TI的ti-sdk-am335x-evm-08開發包,裡面安裝的編譯器是arm-none-linux-gnueabi-gcc,都是能用的,所以我也選擇了arm-none-linux-gnueabi-gcc作為交叉編譯器,下載windows平台的編譯器,然後安裝。
下載地址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc
3. 開啟Eclipse的ssh遠程登錄功能,我分別開啟了Beaglebone Black和Linux的ssh terminal,操作起來很是方便。
4. 新建C項目工程「hello」,編寫簡單的hello代碼,注意選擇交叉編譯選項,交叉編譯器前綴「arm-none-linux-gnueabi-」交叉編譯器路徑選擇arm-none-linux-gnueabi-gcc安裝的路徑「…Linuxin」,在此文件夾下有arm-none-linux-gnueabi-gcc.exe、arm-none-linux-gnueabi-gdb.exe等,還有cs-make.exe,這里需要把「cs-make.exe」改成「make.exe」,因為Eclipse不認cs-make.exe編譯的時候會報錯的。
圖文安裝參考:http://www.linuxidc.com/Linux/2016-03/129577.htm
5. 調試(構建Ctrl+B)的時候會自動生成makefile,生成編譯結果,放到ARM嵌入式平台運行就可以了,成功執行並輸出「hello」。
Linux下的Eclipse環境搭建:
官網下載http://www.eclipse.org/downloads/
發下是收費的
sudo apt-get install eclipse直接就安裝了
然後sudo eclipse –s啟動後發現「窗口->打開視圖」裡面沒有ssh遠程登錄的選項,網路一下發現它是Eclipse的插件,查詢下這個軟體:sudo apt-cache search Remote System Explorer,發現一個eclipse-rse,就是它了,然後直接安裝:sudo apt-get install eclipse-rse
重啟eclipse
新建工程時發現沒有C/C++工程,只有Java工程,再次搜索sudo apt-cache search eclipse C/C++
發現其中一條:
eclipse-cdt - C/C++ Development Tools for Eclipse
繼續安裝:
sudo apt-get install eclipse-cdt
再次重啟eclipse,就有了C/C++項目,高興ing。
新建C工程,添加編譯器:
arm-none-linux-gnueabi-
/opt/toolschain/4.4.3/bin
編寫hello程序,編譯OK,在BBB上執行,成功!
2. arm 主流的編譯器有哪些
windows環境常用的有iar和keil。ads已經被keil取代停產了。
keil現在是官方開發軟體。iar上手比較麻煩,但效率高點。其實差不多。
linux下可能就是gcc手動編譯,十分麻煩。沒接觸過
3. 交叉編譯器的舉例
交叉編譯
1、在Windows PC上,利用ADS(ARM開發環境),使用armcc編譯器,則可編譯出針對ARM CPU的可執行代碼。
2、在Linux PC上,利用arm-linux-gcc編譯器,可編譯出針對Linux ARM平台的可執行代碼。
3、在Windows PC上,利用cygwin環境,運行arm-elf-gcc編譯器,可編譯出針對ARM CPU的可執行代碼。
4、在Windows系統上,利用Keil Uvison工具,開發出運行在89C51單片機上的程序。
5、在Windows系統上,利用CodeWarrior IDE工具,開發出運行在Freescale XS128單片機上的程序。
4. 適合win10系統的c語言編譯器
桌面操作系統
對於當前主流桌面操作系統而言,可使用 VisualC++、GCC以及 LLVM Clang 這三大編譯器。
Visual C++(簡稱 MSVC)只能用於 Windows 操作系統;GCC 和 LLVM Clang除了可用於Windows操作系統之外,主要用於 Unix/Linux操作系統。
像現在很多版本的 Linux 都默認使用 GCC 作為C語言編譯器,而像 FreeBSD、macOS 等系統默認使用 LLVM Clang 編譯器。由於當前 LLVM 項目主要在 Apple 的主推下發展的,所以在 macOS中,Clang 編譯器又被稱為 Apple LLVM 編譯器。
MSVC 編譯器主要用於 Windows 操作系統平台下的應用程序開發,它不開源。用戶可以使用 Visual Studio Community 版本來免費使用它,但是如果要把通過 Visual Studio Community 工具生成出來的應用進行商用,那麼就得好好閱讀一下微軟的許可證和說明書了。
而使用 GCC 與 Clang 編譯器構建出來的應用一般沒有任何限制,程序員可以將應用程序隨意發布和進行商用。
MSVC 編譯器對 C99 標準的支持就十分有限,加之它壓根不支持任何 C11 標准,所以本教程中設計 C11 的代碼例子不會針對 MSVC 進行描述。所幸的是,Visual Studio Community 2017 加入了對 Clang 編譯器的支持,官方稱之為——Clang with Microsoft CodeGen,當前版本基於的是 Clang 3.8。
也就是說,應用於 Visual Studio 集成開發環境中的 Clang 編譯器前端可支持 Clang 編譯器的所有語法特性,而後端生成的代碼則與 MSVC 效果一樣,包括像 long 整數類型在 64 位編譯模式下長度仍然為 4 個位元組,所以各位使用的時候也需要注意。
為了方便描述,本教程後面涉及 Visual Studio 集成開發環境下的 Clang 編譯器簡稱為 VS-Clang 編譯器。
嵌入式系統
而在嵌入式系統方面,可用的C語言編譯器就非常豐富了,比如:
用於 Keil 公司 51 系列單片機的 Keil C51 編譯器;
當前大紅大紫的 Arino 板搭載的開發套件,可用針對 AVR 微控制器的 AVRGCC 編譯器;
ARM 自己出的 ADS(ARM Development Suite)、RVDS(RealView Development Suite)和當前最新的 DS-5 Studio;
DSP 設計商 TI(Texas Instruments)的 CCS(Code Composer Studio);
DSP 設計商 ADI(Analog Devices,Inc.)的 Visual DSP++ 編譯器,等等。
- 通常,用於嵌入式系統開發的編譯工具鏈都沒有免費版本,而且一般需要通過國內代理進行購買。所以,這對於個人開發者或者嵌入式系統愛好者而言是一道不低的門檻。
- 不過 Arino 的開發套件是可免費下載使用的,並且用它做開發板連接調試也十分簡單。Arino 所採用的C編譯器是基於 GCC 的。
- 還有像樹莓派(Raspberry Pi)這種迷你電腦可以直接使用 GCC 和 Clang 編譯器。此外,還有像 nVidia 公司推出的 Jetson TK 系列開發板也可直接使用 GCC 和 Clang 編譯器。樹莓派與 Jetson TK 都默認安裝了 Linux 操作系統。
- 在嵌入式領域,一般比較低端的單片機,比如 8 位的 MCU 所對應的C編譯器可能只支持 C90 標准,有些甚至連 C90 標準的很多特性都不支持。因為它們一方面內存小,ROM 的容量也小;另一方面,本身處理器機能就十分有限,有些甚至無法支持函數指針,因為處理器本身不包含通過寄存器做間接過程調用的指令。
- 而像 32 位處理器或 DSP,一般都至少能支持 C99 標准,它們本身的性能也十分強大。而像 ARM 出的 RVDS 編譯器甚至可用 GNU 語法擴展。
- 下圖展示了上述C語言編譯器的分類。