日常生活中憨颠,我們時刻不能離手的電子設備,所見所用的辦公,娛樂設施大大小小都離不開系統(tǒng)。離我們最近的就有手機的Android系統(tǒng)或IOS系統(tǒng),這些系統(tǒng)本來并不能直接用在我們現(xiàn)在的商品手機上舟铜,需要一定的修改,而所謂的系統(tǒng)移植就是通過優(yōu)化,修改使其成為符合我們使用習慣的一個過程奠衔。
交叉編譯是系統(tǒng)移植過程中代碼由高級語言轉換為機器碼的一個步驟谆刨,即我們在電腦或其它平臺上寫好的代碼奕谭,需要以目標平臺的工具鏈進行轉換才可使用的一個過程(包含庫移植)。
[庫移植實戰(zhàn)問題注意點1:找不到交叉工具鏈(建立軟連接方法)時改為絕對路徑 或 修改環(huán)境變量.bashrc]
下面給大家見見網上搜索到的系統(tǒng)移植的詳細操作步驟(包含四大部分,內容較多痴荐,建議分段閱讀)
http://www.cnblogs.com/jiangzhaowei/p/6136879.html
可能您所好奇的MIUI ROM 制作: http://www.miui.com/thread-842680-1-1.html
而在實際開發(fā)過程中,我們拿到新開發(fā)板(包含手機研發(fā)時)通常也會考慮板子上電及之后硬件層面會發(fā)生什么事情,都是什么工作原理,關心用的是否是uboot,與其它有什么不同等等,還會思考用這塊芯片能發(fā)揮什么性能,做些什么產品。
下面列舉一些可能接觸到的概念及資料
1.板級支持包(BSP)(Board Support Package)是介于主板硬件和操作系統(tǒng)中驅動層程序之間的一層官册,一般認為它屬于操作系統(tǒng)一部分生兆,主要是實現(xiàn)對操作系統(tǒng)的支持,為上層的驅動程序提供訪問硬件設備寄存器的函數(shù)包膝宁,使之能夠更好的運行于硬件主板鸦难。在嵌入式系統(tǒng)軟件的組成中,就有BSP员淫。BSP是相對于操作系統(tǒng)而言的合蔽,不同的操作系統(tǒng)對應于不同定義形式的BSP,例如VxWorks的BSP和Linux的BSP相對于某一CPU來說盡管實現(xiàn)的功能一樣,可是寫法和接口定義是完全不同的介返,所以寫B(tài)SP一定要按照該系統(tǒng)BSP的定義形式來寫(BSP的編程過程大多數(shù)是在某一個成型的BSP模板上進行修改)拴事。這樣才能與上層OS保持正確的接口,良好的支持上層OS圣蝎。
- ADS與GCC
都是Arm軟件開發(fā)的工具,一般公司會有自己的交叉工具鏈刃宵。
一般LINUX、UCLINUX 的移植于開發(fā)都用GCC徘公。
而不帶OS或者移植簡單的ucos,多用ADS進行開發(fā)牲证。在Windows PC上,多用于ADS. LINUX的操作系統(tǒng)或者通過虛擬機的LINUX,多用GCC.
ads直接編譯生成的.bin文件可以在沒有os的板子上跑啊关面,干嘛還要什么gcc編譯坦袍? 你只要設置ads的配置參數(shù)就行了呀。如果是在linux下等太,就要下載一個交叉編譯工具捂齐,解壓后把工具的路徑設置成環(huán)境變量,然后arm-linux-gcc 編譯缩抡,就可以生成你要的在板子上跑的代碼了辛燥。
通過對部分系統(tǒng)源碼的接觸學習過程中,我個人想法是能否實現(xiàn)一款基于私有云同步的手機系統(tǒng)缝其,既包含語言助手(可進行語言喚醒挎塌,支持本地化/方言,又能免喚醒詞),希望看到本文的您也能一起努力,實現(xiàn)一款自己滿意的作品内边。