x86架構的cpu採用的是複雜指令集(complex instruction set computer,cics),而arm架構的cpu使用的是精簡指令集(reduced instruction set computer,risc)。由於這兩種架構的cpu使用了不同的指令集,因此在x86架構上開發可執行在arm架構上的程式就必須要使用交叉編譯器。通常交叉編譯器和相關工具包含的了很多可執行檔案以及大量的共享庫及標頭檔案等資源。這些資源的集合稱為交叉編譯環境。
android是基於linux核心的系統,可以說android是一種執行在基於arm架構裝置上的linux作業系統。android驅動其實就是linux驅動,不過在x86的ubuntu系統下需要交叉編譯器將linux驅動編譯成了arm架構的,然後便可將驅動安裝在基於arm架構的android模擬器、android手機(需要root)或平板上。使用傳統的gcc也可以編譯成x86架構的驅動(並不需要修改**),這樣編譯出來的驅動可直接安裝在ubuntu linux上。
1、可到
2、將codesourcery/sourcery_codebench_lite_for_arm_gnu_linux/bin加到環境變數中
3、測試
下面編寫乙個簡單的c程式來測試一下這個交叉編譯環境。
// test.c
#include int main()
輸入下面的命令編譯test.c檔案(需要加-static選項)。
# arm-none-linux-gnueabi-gcc -static -o test test.c
輸入下面的命令將test檔案上傳到任意的android裝置的/data/local目錄中(不需root許可權)。
# adb push test /data/local
使用adb shell命令進入android裝置的控制台,cd /data/local進入/data/local目錄,執行命令:
# ./test
Android底層開發之Audio HAL
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!android底層開發之audio hal 在android音訊底層除錯 基於tinyalsa中以 拋開android的天生複雜,回歸嵌入式linux的本質 的方式介紹如何除錯linux核心中的音訊驅動。這裡向上再伸展一下進入hal層,看是如何將t...
玩轉開發板之交叉編譯器安裝
玩轉開發板之交叉編譯器安裝 在一種計算機環境中執行的編譯程式,能編譯出在另外一種環境下執行的 我們就稱這種編譯器支援交叉編譯。這個編譯過程就叫交叉編譯。簡單地說,就是在乙個平台上生成另乙個平台上的可執行 這裡需要注意的是所謂平台,實際上包含兩個概念 體系結構 architecture 作業系統 op...
《Android底層開發技術》學習總結
android底層開發技術實戰詳解 核心 移植和驅動 學習總結 整本書看的比較粗,了解個大概,以後需要的時候,可以針對性的學習!android與linux的關係 linux kernel的版權是gpl general public license 它要求對源 的任何修改都必須開源。android的k...