linux嵌入式開發(fā)學(xué)習(xí)路徑交流 嵌入式Linux系統(tǒng)開發(fā)模式?
嵌入式Linux系統(tǒng)開發(fā)模式?嵌入式系統(tǒng)通常是資源有限的系統(tǒng)。在嵌入式系統(tǒng)的硬件平臺(tái)上直接編寫軟件是困難的,有時(shí)甚至是不可能的。目前常用的方法是在通用計(jì)算機(jī)上編寫程序,然后通過交叉編譯生成可以在目標(biāo)平
嵌入式Linux系統(tǒng)開發(fā)模式?
嵌入式系統(tǒng)通常是資源有限的系統(tǒng)。
在嵌入式系統(tǒng)的硬件平臺(tái)上直接編寫軟件是困難的,有時(shí)甚至是不可能的。目前常用的方法是在通用計(jì)算機(jī)上編寫程序,然后通過交叉編譯生成可以在目標(biāo)平臺(tái)上運(yùn)行的二進(jìn)制代碼格式,最后下載到目標(biāo)平臺(tái)上的特定位置運(yùn)行。下面由福州卓悅教育詳細(xì)介紹。第一步是建立一個(gè)嵌入式Linux應(yīng)用程序開發(fā)環(huán)境。目前常用的交叉開發(fā)主要有開放和商業(yè)兩種。開放交叉開發(fā)的典型代表是GNU工具鏈,已經(jīng)能夠支持x86、ARM、MIPS、PowerPC等處理器。商業(yè)交叉開發(fā)主要有Metrowerks CodeWarrior、ARM軟件開發(fā)工具包、SDS交叉編譯器、WindRiver Tornado、微軟Embedded Visual C等。交叉開發(fā)是指編譯、鏈接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境。它不同于運(yùn)行嵌入式應(yīng)用軟件的環(huán)境,通常采用主機(jī)/目標(biāo)模式。第二步:交叉編譯和鏈接。嵌入式軟件編碼完成后,編譯鏈接生成可執(zhí)行代碼。由于開發(fā)過程多在Intel公司x86 CPU的通用計(jì)算機(jī)上進(jìn)行,而目標(biāo)環(huán)境中的處理器芯片多為ARM、MIPS、PowerPC、DragonBall等系列微處理器,因此需要在已建立的交叉開發(fā)中進(jìn)行交叉編譯和鏈接。第三步,交叉調(diào)試。①硬件調(diào)試。如果不使用在線仿真器,CPU可以直接在其中實(shí)現(xiàn)調(diào)試功能,通過開發(fā)板上引出的調(diào)試端口發(fā)送調(diào)試命令和接收調(diào)試信息,完成調(diào)試過程。目前摩托羅拉提供的開發(fā)板使用DBM調(diào)試口,ARM提供的開發(fā)板使用JTAG調(diào)試口。將這些調(diào)試端口與合適的軟件工具連接起來,可以達(dá)到類似IC
在嵌入式領(lǐng)域,Android、Linux兩者的關(guān)系是怎樣?
Android會(huì)取代Linux嗎?基于Android開發(fā)電子產(chǎn)品需要Linux工程師嗎?
一;一個(gè)droid的底層是Linux內(nèi)核。兩者的關(guān)系可以簡(jiǎn)化為:Android是Linux系統(tǒng),有自己的界面。Linux一般沒有接口。Ubuntu操作系統(tǒng),在Linux內(nèi)核的基礎(chǔ)上開發(fā)一個(gè)桌面窗口程序,是我們常用的Ubuntu操作系統(tǒng)。Android基于Linux內(nèi)核開發(fā)一個(gè)GUI手機(jī)桌面系統(tǒng),也就是我們常用的手機(jī)操作系統(tǒng)Android。
Android不會(huì)取代Linux。就像汽車一樣,不同品牌的汽車使用相同的發(fā)動(dòng)機(jī)。你認(rèn)為汽車會(huì)取代發(fā)動(dòng)機(jī)嗎?
Android開發(fā)分為上層開發(fā)、中層開發(fā)和底層開發(fā)。
上層APP開發(fā),主要用Java語言。
中間層HAL層的開發(fā)主要是C語言和C語言。
底層驅(qū)動(dòng)開發(fā)是Linux內(nèi)核驅(qū)動(dòng)開發(fā)。
如果您對(duì)嵌入式學(xué)習(xí)和Linux學(xué)習(xí)路線有任何疑問,請(qǐng)關(guān)注頭條號(hào):宅學(xué)部落。