使用eclipse進(jìn)行嵌入式Linux的開發(fā)環(huán)境配置:
賀蘭網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
1、安裝jdk
jdk(java development kit)即java開發(fā)包,其中包含了運(yùn)行eclipse所需要的jre. ubuntu缺省安裝的gnu版本的jre運(yùn)行效率不高,所以需要安裝sun公司的jre. 首先從sun的網(wǎng)站上下載安裝包jdk-6u7-linux-i586.bin,然后如下進(jìn)行安裝:
# mkdir -p /opt/java
# ./jdk-6u7-linux-i586.bin // 執(zhí)行自解壓文件,生成目錄
# mv jdk1.6.0_07 /opt/java // 把目錄移到/opt/java下
# cd /opt/java
# ln -s jdk1.6.0_07 jdk
# mv /etc/alternatives/java /etc/alternatives/java.gnu
# ln -s /opt/java/jdk/bin/java /etc/alternatives/java
# export JAVA_HOME=/opt/java/jdk // 設(shè)置環(huán)境變量
2、安裝eclipse和cdt
從eclipse網(wǎng)站上下載安裝包eclipse-SDK-3.4-linux-gtk.tar.gz 和cdt-master-5.0.0.zip
# cd /opt
# tar zxvf eclipse-SDK-3.4-linux-gtk.tar.gz // 解壓生成eclipse目錄
# export PATH=/opt/eclipse:$PATH
# mkdir -p /opt/cdt
# cd /opt/cdt
# unzip cdt-master-5.0.0.zip
# cp -r plugins/* /opt/eclipse/plugins/
# cp -r features/* /opt/eclipse/features/
二、創(chuàng)建c/c++工程
假設(shè)已經(jīng)在linux上安裝好了arm交叉工具鏈,下面介紹如何創(chuàng)建、交叉編譯和調(diào)試c/c++工程,進(jìn)入eclipse安裝路徑后,運(yùn)行eclipse。
創(chuàng)建c 工程
使用缺省的Linux GCC工具鏈
進(jìn)入c/c++ 界面
添加源代碼文件1
添加源代碼文件2
編輯代碼
設(shè)置工程屬性,指定交叉工具鏈1
設(shè)置工程屬性,指定交叉工具鏈2
設(shè)置工程屬性,指定交叉工具鏈3
編譯工程
已生成arm平臺(tái)可執(zhí)行代碼
配置調(diào)試選項(xiàng)
設(shè)置Debugger和 GDB debugger選項(xiàng)
設(shè)置連接類型為TCP,目標(biāo)板的ip地址和調(diào)試端口號(hào)。端口號(hào)任意指定,通常大于1024(避免和系統(tǒng)所用端口號(hào)沖突)
在開發(fā)板上運(yùn)行程序,格式如上圖所示:gdbserver是交叉調(diào)試輔助程序;192.168.0.150是主機(jī)的ip地址;1234是調(diào)試端口號(hào),和eclipse調(diào)試選項(xiàng)里設(shè)定的端口號(hào)要一致
點(diǎn)擊Debug,進(jìn)入調(diào)試界面
執(zhí)行到斷點(diǎn)
eclipse的調(diào)試界面和操作和在windows下開發(fā)類似。
所需開發(fā)工具及環(huán)境
虛擬機(jī)Linux:Fedora 9
交叉編譯工具:arm-linux-gcc-3.4.1.tar.bz2
集成開發(fā)工具:Eclipse(Linux安裝包中自帶的,安裝Linux時(shí)選中安裝)
安裝ARM交叉編譯器
1. 安裝。其實(shí)很簡單,就是將下載的arm-linux-gcc-3.4.1.tar.bz2解壓到Linux根目錄即可(因?yàn)榻鈮汉笠呀?jīng)包含了/usr/local目錄,所以要解壓到根目錄),如下命令:
tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 -C /
解壓后的目錄/usr/local/arm/3.4.1/
2. 設(shè)置環(huán)境變量。就是把交叉編譯器的路徑設(shè)置到系統(tǒng)環(huán)境變量里面去。
echo $PATH
查看現(xiàn)有的環(huán)境變量
如果只想臨時(shí)添加交叉編譯器的環(huán)境變量(注:臨時(shí)添加的系統(tǒng)重啟或注銷后又沒有了),只需在命令行輸入如下命令:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
如果想這個(gè)環(huán)境變量永久的添加到系統(tǒng)的環(huán)境變量中,則你只需把這個(gè)命令添加到/root/.bashrc文件的最后一行即可(這個(gè)文件是隱藏文件,你要在文件瀏覽器中單擊查看菜單,勾選顯示隱藏文件才能看到)
3. 測(cè)試建立的交叉編譯環(huán)境。新建一個(gè)c程序,文件名:test.c, 如下:
#include stdio.h
int main(void)
{
printf("Hellow world!\n");
return 0;
}
進(jìn)行交叉編譯,如下:
arm-linux-gcc -o test test.c
將交叉編譯好的目標(biāo)文件test下載到ARM開發(fā)板中并運(yùn)行,如下:
./test
輸出結(jié)果為:
Hellow world!
用集成開發(fā)工具Eclipse來開發(fā)嵌入式應(yīng)用程序
雙擊Eclipse圖標(biāo)啟動(dòng)Eclipse
設(shè)置Eclipse的工作空間,就是選個(gè)目錄,單擊OK
啟動(dòng)后的主界面
開始新建一個(gè)應(yīng)用程序工程
選擇新建一個(gè)C工程,單擊Next
給工程取個(gè)名字,這里我就叫test_app;然后選擇工程類型,我選擇了個(gè)Hellow world C工程模版,單擊Next
填寫作者、版權(quán)等信息,單擊Next
沒什么選的,點(diǎn)擊Finish
單擊Yes
新建好的項(xiàng)目工程
展開左邊的源代碼目錄,雙擊打開主函數(shù)。這里只是輸出一句"Hello World!!!",你可以做一些其他復(fù)雜的應(yīng)用
單擊Project菜單,去掉Build Automatically的勾選,因?yàn)楣催x的話,每次修改一個(gè)地方工程都會(huì)自動(dòng)進(jìn)行編譯
打開工程的屬性對(duì)話框進(jìn)行編譯選項(xiàng)的設(shè)置
我們的應(yīng)用程序最終要到嵌入式arm上運(yùn)行,這里就要把gcc改成arm-linux-gcc編譯器,當(dāng)然前提是你要在你的開發(fā)主機(jī)上先安裝arm-linux-gcc
C連接器也要改成arm-linux-gcc
這里的Libraries是設(shè)置你的應(yīng)用程序中用到的庫文件,比如應(yīng)用程序中用到了線程類,則這里在上面添加pthread這個(gè)庫,下面就添加這個(gè)庫的路徑。如果應(yīng)用程序沒用到任何庫文件就不用管了
選中左側(cè)的工程名,右鍵,在彈出的菜單中選擇Build Project編譯工程
編譯好后的工程,目標(biāo)文件在Debug目錄下
1、連接電腦上,用adb打開,android命令行終端即可。
2、如果你想直接在android上打開,可以安裝一個(gè)android terminal,在手機(jī)上使用linux命令行。
擴(kuò)展資料:
終端命令sudo: Executing Commands with Elevated Privileges 執(zhí)行命令特權(quán) sudo是允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個(gè)工具,如halt,reboot,su等等。這樣不僅減少了root用戶的登陸 和管理時(shí)間,同樣也提高了安全性。Sudo不是對(duì)shell的一個(gè)代替,它是面向每個(gè)命令的。
app_0是用戶名,也就是終端在系統(tǒng)中的名字。android是主機(jī)名/ 表示當(dāng)前路徑。
這些信息存儲(chǔ)在變量PS1中,自己可以改變。改成彩色更加美觀,而且輸入命令后更加容易找到提示符。有一個(gè)重要的基本變量是PATH,這叫命令搜索路徑。
參考資料:安卓中文網(wǎng)--在手機(jī)端使用命令行刷入Recovery教程詳解
dd :用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換。
注意:指定數(shù)字的地方若以下列字符結(jié)尾,則乘以相應(yīng)的數(shù)字: b=512 ; c=1 ; k=1024 ; w=2
參數(shù)注釋:
4、備份與恢復(fù)MBR
·備份文件開始的512個(gè)字節(jié)大小的MBR信息到指定文件:
#dd if=/system/xbin/busybox of=/data/local/tmp/bb count=1 bs=512
· count=1 指僅拷貝一個(gè)塊; bs=512 指塊大小為512個(gè)字節(jié)
·恢復(fù):
#dd if=/data/local/tmp/bb of=/data/local/tmp/bbb
·將備份的MBR信息寫到磁盤開始部分
/dev/null ,外號(hào)叫無底洞,你可以向它輸出任何數(shù)據(jù),它通吃,并且不會(huì)撐著!
/dev/zero ,是一個(gè)輸入設(shè)備,你可你用它來初始化文件。該設(shè)備無窮盡地提供 0 ,可以使用任何你需要的數(shù)目——設(shè)備提供的要多的多。他可以用于向設(shè)備或文件寫入字符串 0 。
/dev/null ——它是空設(shè)備,也稱為位桶( bit bucket )。任何寫入它的輸出都會(huì)被拋棄。如果不想讓消息以標(biāo)準(zhǔn)輸出顯示或?qū)懭胛募?,那么可以將消息重定向到位桶?/p>
27種用法格式 :
用法說明 :
1、 pm list packages : prints all packages, optionally only those whose package name contains the text in FILTER. Options:
例子:列出系統(tǒng)中所有packages
2、 pm list permission-groups : prints all known permission groups.
例子:
3、 pm list permissions : prints all known permissions, optionally only those in GROUP. Options:
例子:列出系統(tǒng)所有許可
4、 pm list instrumentation : use to list all test packages; optionally supply to list the test packages for a particular application. Options:
-f: list the .apk file for the test package.
5、 pm list features : prints all features of the system.
例子:列出所有手機(jī)特性
6、 pm list users : prints all users on the system.
例子:
7、 pm path : print the path to the .apk of the given PACKAGE.
例子:按包名查找apk文件所在路徑
8、 pm dump : print system state associated with the given PACKAGE.
9、 pm install : installs a package to the system. Options:
例子:
10、 pm uninstall : removes a package from the system. Options:
-k: keep the data and cache directories around after package removal. 保留數(shù)據(jù)
例子:
11、 pm clear : deletes all data associated with a package..
例子:只刪除數(shù)據(jù)
12、 pm enable, disable, disable-user, disable-until-used : these commands change the enabled state of a given package or component (written as "package/class").
13、 pm grant, revoke : these commands either grant or revoke permissions to applications. Only optional permissions the application has declared can be granted or revoked.
14、 pm get-install-location : returns the current install location.
15、 pm set-install-location : changes the default install location.
NOTE: this is only intended for debugging; using this can cause applications to break and other undersireable behavior.
16、 pm trim-caches : trim cache files to reach the given free space.
17、 pm create-user : create a new user with the given USER_NAME, printing the new user identifier of the user. 創(chuàng)建新用戶
18、 pm remove-user : remove the user with the given USER_IDENTIFIER, deleting all data associated with that user 。 按用戶ID刪除用戶