Windows下ARM Linux應用程序開發環境搭建說明


https://blog.csdn.net/feifansong/article/details/80255276

 

這是因為工作寫的一個文檔,主要是我們開發人員都不會Linux不會vi也不會命令行,於是研究了一下Windows系統調試ARM Linux程序的辦法,在這共享一下。

1. 概述

嵌入式Linux系統的應用程序開發,編譯器一般是gcc,一般都說是要在Linux虛擬機中進行開發和編譯。本文提供了一種能夠在Windows系統下編譯、調試Linux應用程序的方法,可大大簡化Linux軟件開發環境的搭建難度,保留原開發人員的操作習慣,讓Linux程序開發和開發VxWorks一樣方便快捷。

2. 軟件包

2.1. IDE環境:EclipseIDE for C/C++ Developers

地址:

Eclipse IDE for C/C++ Developers

Eclipse下載后,無需安裝配置,直接解壓到program files目錄即可運行,可放快捷方式到桌面。

2.2. 交叉編譯工具:Linaro GCC

地址:

Linaro Releases

編譯器版本選擇,建議與CPU官方開發包提供的版本一致或接近,不必要追求最新版本。Windows下的編譯器,命名一般為:gcc-linaro-4.9.4-2017.01-i686-mingw32_arm-linux-gnueabihf.tar.xz。帶有mingw32字樣的,就是Windows版的。

安裝方法:

將下載的包用7zip解壓到D:\gcc(winRAR似乎有問題,待確認),目錄結構如下:

其中主要的幾個目錄位置如下:

bin/ 交叉編譯工具目錄

arm-linux-gnueabihf/libc/usr/include Linux user-space程序頭文件目錄

添加環境變量:

解壓文件后,將D:\gcc\bin目錄,添加到系統PATH環境變量中(系統屬性-高級屬性-環境變量),確保在任何位置調用arm-linux-gnueabihf-gcc均能成功。

2.3. Cygwin環境

地址:Cygwin Installation

根據安裝向導進行在線安裝,隨本文檔提供離線安裝包

注意:

1、 源選擇國內的某個源,或網上尋找合適的國內源(如163mirror)

2、 軟件包選擇一定要包含“man”包,其他開發包根據需要可以以后追加

安裝完成后,就可以在Windows環境使用Linux命令了

2.4. Linux API man庫

地址:Index of /pub/linux/docs/man-pages

需要下載兩個包:

man-pages

man-pages-posix

均可選擇最新版本下載

下載后解壓,將其中的man1~man7,man1p~man7p目錄,復制到Cygwin安裝目錄下Cygwin_base/usr/share/man,如果重名則選擇覆蓋。

完成后,打開Cygwin終端測試:

man aio

manpthread_mutex_lock

如果能正確打開對應的幫助文檔,說明安裝完成。

以后開發中,可以隨時通過man程序查看函數手冊。

3. 目標板准備

目標板應能正常運行Linux系統,與開發機網絡連通。在此基礎上,確保以下功能被配置正確。本章節的准備工作,一般可由內核或rootfs維護人員處理,應用程序開發工程師一般不需要處理。

3.1. 開啟SSH服務器

確保系統打開了SSH服務,一般在嵌入式Linux下,由dropbear提供該功能。

通過以下命令確認是否開啟:

ps | grep dropbear

如果沒有開啟,需要找內核和rootfs維護人員處理。

3.2. GDB Server

遠程調試依賴GDB Server功能,需要確保目標板上的GDB Server版本與開發環境中的一致,可復制位於GCC環境下的gdbserver到目標板。Windows下的gdbserver位於如下路徑:

D:\gcc\bin\gdbserver

3.3. 調試臨時目錄

程序開發調試時,會反復地把編譯好的應用程序復制到目標板的文件系統中。當目標板中Linux系統完全運行在Flash並無NFS文件系統時,下載文件的速度可能較慢,反復下載也可能導致Flash壽命提前結束。

為了提高調試效率,保證壽命,我們可以在目標板上申請一塊tmpfs內存目錄,調試程序都可以在該目錄下進行。

這里我們約定基於tmpfs的調試目錄為/run/app,后續文檔中說明的應用程序調試目錄均在此。

335x系統中,可修改/etc/default/volatiles/00_core,增加下面一行后自動創建app目錄:

d root root 1777 /run/app none

4. 應用程序開發

4.1. Eclipse配置

Window-Preference

搜索path

在C/C++的Source Lookup Path中,添加一個File System Dir.,路徑指向

D:\gcc\arm-linux-gnueabihf\libc\usr\include

並包含其子目錄


4.2. 創建連接

File – New –Other

Remote SystemExplorer – Connection

創建一個連接:

連接類型為Linux:


輸入HostName和IP地址:


下一步后,選擇文件傳輸方式為SSH方式:

下一步,選擇進程控制方式為通過系統shell控制

圖略,同上

下一步,選擇ssh.shells

圖略,同上

下一步,選擇ssh.terminals:

圖略,同上

點擊Finish完成。

測試

Window – View中打開Remote Systems窗口


右鍵Connect,當提示輸入密碼時,輸入目標板用戶名、密碼(通常為root,密碼空)

如果一切正常,可以展開SftpFiles查看目標板上的文件,右鍵SSH Terminals可以啟動一個ssh終端。


4.3. 創建工程

新建一個工程,選擇CProject

輸入工程名,工程類型選擇Executable—EmptyProject –Cross GCC

Cross GCC設置中,輸入gcc前綴和gcc路徑:

創建工程后,選擇工程屬性

C/C++ Build中,Builder選擇內建builder:InternalBuilder

完成配置后,編譯程序,應能成功:


4.4. 程序調試

打開DebugConfigurations


在C/C++ RemoteApplication下新建一個config.


在右側配置頁Main中

選擇Connection為之前創建的Linux目標板連接LINUX_PMC-1308V2
遠程運行程序路徑,選擇3.3調試臨時目錄中指定的調試目錄,並在后面追加調試程序名:/run/app/appdemo

在Debugger選項卡中,指定gdb程序名為arm-linux-gnueabihf-gdb

配置完成后,即可點擊對話框右下角Debug按鈕啟動調試。

剩下的工作,和Windows系統其他基於Eclipse的嵌入式開發環境下調試單片機程序、VxWorks程序沒什么區別了。


免責聲明!

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



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