A. 如何利用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上執行,成功!
B. 嵌入式ARM linux操作系統中如何構建交叉開發環境
這個問題相當專業了,之前我去周立功那邊了解過的。
按照以下步驟進行安裝:
1) 安裝32位的兼容庫和libncurses5-dev庫
在安裝交叉編譯工具之前需要先安裝32位的兼容庫和libncurses5-dev庫,安裝32兼容庫需要從ubuntu的源庫中下載,所以需要在Linux主機系統聯網的條件下,通過終端使用如下命令安裝:
vmuser@Linux-host ~$sudo apt-get install ia32-libs
若Linux主機系統沒有安裝32位兼容庫,在使用交叉編譯工具的時候可能會出現錯誤:
-bash: ./arm-fsl-linux-gnueabi-gcc: 沒有那個文件或目錄
在終端中使用如下命令則可以安裝libncurses5-dev庫。
vmuser@Linux-host ~$sudo apt-get install libncurses5-dev
如果沒有安裝此庫,在使用make menucofig時出現如下所示的錯誤:
*** Unableto find the ncurses libraries or the
*** required headerfiles.
*** 'makemenuconfig' requires the ncurses libraries.
***
Installncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 錯誤 1
make: *** [menuconfig] 錯誤 2
2) 安裝交叉編譯工具鏈
將交叉編譯工具「gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2」文件通過U盤的方式拷貝到Linux主機的「/tmp」目錄下,然後執行如下命令進行解壓安裝交叉編譯工具鏈:
vmuser@Linux-host ~$ cd /tmp
vmuser@Linux-host ~$ sudo tar -jxvfgcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2 -C /opt/
vmuser@Linux-host /tmp$ # 輸入vmuser用戶的密碼「vmuser」
執行完解壓命令後,交叉編譯工具鏈將被安裝到「/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0」目錄下。交叉編譯器的具體目錄是「/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin」,為了方便使用,還需將該路徑添加到PATH環境變數中,其方法為:修改「/etc/profile」文件,具體操作方法如下:
在終端中輸入如下指令
vmuser@Linux-host ~$ sudo vi /etc/profile # 若提示輸入密碼,則輸入「vmuser」
用vi編輯器打開「/etc/profile」文件後,在文件末尾增加如下一行內容:
export PATH=$PATH:/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin
文件修改並保存後,再在終端中輸入如下指令,更新環境變數,使設置生效。
vmuser@Linux-host ~$source /etc/profile
在終端輸入arm-fsl-linux-gnueabi-並按TAB鍵,如果能夠看到很多arm-fsl-linux-gnueabi-前綴的命令,則基本可以確定交叉編譯器安裝正確,如下圖所示。