初學(xué)者如何開(kāi)始學(xué)習(xí)嵌入式linux開(kāi)發(fā)方法 呢?新手入門全干貨!零基礎(chǔ)小白入門linux嵌入式開(kāi)發(fā)是做什么的,學(xué)習(xí)Linux嵌入式開(kāi)發(fā)怎么樣呢,嵌入式Linux開(kāi)發(fā)中的Linux Shell是什么?,誰(shuí)能給我說(shuō)一下嵌入式Linux的開(kāi)發(fā)流程包括哪些步驟?請(qǐng)?jiān)敿?xì)介紹,謝謝了??必看
1.linux嵌入式開(kāi)發(fā)是做什么的
嵌入式操作系統(tǒng)EOS(Embedded )是一種用途廣泛的系統(tǒng)軟件,過(guò)去它主要應(yīng)用于工業(yè)控制和國(guó)防系統(tǒng)領(lǐng)域。EOS負(fù)責(zé)嵌人系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制協(xié)調(diào)并發(fā)活動(dòng);它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過(guò)裝卸某些模塊來(lái)達(dá)到系統(tǒng)所要求的功能。目前,已推出一些應(yīng)用比較成功的EOS產(chǎn)品系列。隨著Internet技術(shù)的發(fā)展、信息家電的普及應(yīng)用及EOS的微型化和專業(yè)化,EOS開(kāi)始從單一的弱功能向高專業(yè)化的強(qiáng)功能方向發(fā)展。嵌人式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。EOS是相對(duì)于一般操作系統(tǒng)而言的,它除具備了一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件功能等外,還有以下特點(diǎn): (1)可裝卸性。開(kāi)放性、可伸縮性的體系結(jié)構(gòu)。 (2)強(qiáng)實(shí)時(shí)性。EOS實(shí)時(shí)性一般較強(qiáng),可用于各種設(shè)備控制當(dāng)中。 (3)統(tǒng)一的接口。提供各種設(shè)備驅(qū)動(dòng)接日. (4)操作方便、簡(jiǎn)單、提供友好的圖形GUI,圖形界面,追求易學(xué)易用. (5)提供強(qiáng)大的網(wǎng)絡(luò)功能,支持TCP門P協(xié)議及其它協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問(wèn)層接口,為各種移動(dòng)計(jì)算設(shè)備預(yù)留接口.(6)強(qiáng)穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開(kāi)始運(yùn)行就不需要用戶過(guò)多的干預(yù),這就要負(fù)責(zé)系統(tǒng)管理的EOS臭有較強(qiáng)的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接日一般不提供操作命令,它通過(guò)系統(tǒng)調(diào)用命令向用戶程序提供服務(wù)。 (7)固化代碼。在嵌入系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計(jì)算機(jī)的ROM中。輔助存儲(chǔ)器在嵌入式系統(tǒng)中很少使用,因此,嵌入式操作系統(tǒng)的文件管理功能應(yīng)該能夠很容易地拆卸,而用各種內(nèi)存文件系統(tǒng). (8)更好的硬件適應(yīng)性,也就是良好的移植性. 國(guó)際上用于信息電器的嵌入式操作系統(tǒng)有40種左右。現(xiàn)在,市場(chǎng)上非常流行的EOS產(chǎn)品,包括3Corn公司下屬子公司的Palm OS,全球占有份額達(dá)50%,MicroS。fi公司的Wind。ws CE不過(guò)29%。在美國(guó)市場(chǎng),Palm OS更以80%的占有率遠(yuǎn)超Windows CE。開(kāi)放源代碼的Linux很適于做信息家電的開(kāi)發(fā). 比如:中科紅旗軟件技術(shù)有限公司開(kāi)發(fā)的紅旗嵌入式Linux和美商網(wǎng)虎公司開(kāi)發(fā)的基于Xlinux的嵌人式操作系統(tǒng)“夸克"?!翱淇恕笔悄壳叭澜缱钚〉腖inux,它有兩個(gè)很突出的特點(diǎn),就是體積小和使用GCS編碼。常見(jiàn)的嵌入式系統(tǒng)有:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive .嵌入式操作系統(tǒng)的發(fā)展也必將帶動(dòng)新一輪的科技競(jìng)爭(zhēng)
2.學(xué)習(xí)Linux嵌入式開(kāi)發(fā)怎么樣呢
做這方面的,很多人是做軟件的,對(duì)下層不精,感覺(jué)現(xiàn)在的公司都不少這樣的人了,而且以前做單片機(jī)的都改做這個(gè)了,把它用于工程上也不是太難。學(xué)的人多了,可能不是件好事!我之前做這個(gè)的,主要是驅(qū)動(dòng),但是這點(diǎn)可憐的薪水不夠用啊,而且 工作壓力有點(diǎn)大(除非你的工作沒(méi)有太大的技術(shù)含量),還有一點(diǎn):英語(yǔ)一定要好,不然你會(huì)很頭痛的!
3.嵌入式Linux開(kāi)發(fā)中的Linux Shell是什么?
雖然我做linux嵌入式測(cè)試,不是開(kāi)發(fā)。但我可以告訴你,絕對(duì)必要。Linux下很多事情用shell腳本來(lái)處理非常方便:1)啟動(dòng)腳本,負(fù)責(zé)啟動(dòng)系統(tǒng)進(jìn)程、守護(hù)進(jìn)程等。2)腳本可以做一些文件處理、命令行工具調(diào)用,在C程序中用system系統(tǒng)調(diào)用方式執(zhí)行腳本。
4.誰(shuí)能給我說(shuō)一下嵌入式Linux的開(kāi)發(fā)流程包括哪些步驟?請(qǐng)?jiān)敿?xì)介紹,謝謝了
嵌入式Linux開(kāi)發(fā)流程在一個(gè)嵌入式系統(tǒng)中使用Linux開(kāi)發(fā),根據(jù)應(yīng)用需求的不同有不同的配置開(kāi)發(fā)方法,但是一般都要經(jīng)過(guò)如下的過(guò)程:1.建立開(kāi)發(fā)環(huán)境操作系統(tǒng)一般使用RedHat-Linux,版本從7到9都可以,選擇定制安裝或全部安裝,通過(guò)網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝(例如arm-Linux-gcc、arm-μclibc-gcc),或者安裝產(chǎn)品廠家提供的交叉編譯器。2.配置開(kāi)發(fā)主機(jī)配置MINICOM,一般的參數(shù)為波特率為115 200bps,數(shù)據(jù)位為8位,停止位為1,無(wú)奇偶校驗(yàn),軟件硬件流控設(shè)為無(wú)。在Windows下的超級(jí)終端的配置也是這樣的。MINICOM軟件的作用是作為調(diào)試嵌入式開(kāi)發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò),主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程。3.建立引導(dǎo)裝載程序從網(wǎng)絡(luò)上下載一些公開(kāi)源代碼的,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)自己具體的芯片進(jìn)行移植修改。有些芯片沒(méi)有內(nèi)置引導(dǎo)裝載程序,例如三星的ARM7、ARM9系列芯片,這樣就需要編寫開(kāi)發(fā)板上Flash的燒寫程序,網(wǎng)絡(luò)上有免費(fèi)下載的Windows下通過(guò)JTAG并口簡(jiǎn)易仿真器燒寫ARM外圍Flash芯片的燒寫程序,也有Linux下的公開(kāi)源代碼的J-Flash程序。如果不能燒寫自己的開(kāi)發(fā)板,就需要根據(jù)自己的具體電路進(jìn)行源代碼修改。這是系統(tǒng)正常運(yùn)行的*步。如果購(gòu)買了廠家的仿真器當(dāng)然比較容易燒寫Flash,這對(duì)于需要迅速開(kāi)發(fā)自己產(chǎn)品的人來(lái)說(shuō)可以極大地提高開(kāi)發(fā)速度,但是其中的核心技術(shù)是無(wú)法了解的。4.下載別人已經(jīng)移植好的Linux操作系統(tǒng)如μCLinux、ARM-Linux、PPC-Linux等,如果有專門針對(duì)所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過(guò)的,下載后再添加自己的特定硬件的驅(qū)動(dòng)程序,進(jìn)行調(diào)試修改,對(duì)于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動(dòng),對(duì)于μCLinux這樣的系統(tǒng)則需編譯進(jìn)內(nèi)核進(jìn)行調(diào)試。5.建立根文件系統(tǒng)從www.busybox.net下載使用BUSYBOX軟件進(jìn)行功能裁減,產(chǎn)生一個(gè)最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他程序。默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動(dòng)腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動(dòng)掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會(huì)隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs、genromfs等工具產(chǎn)生燒寫映像文件。6.建立應(yīng)用程序的Flash磁盤分區(qū)一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用一個(gè)線性Flash(NOR型)512KB~32MB,有的系統(tǒng)使用非線性Flash(NAND型)8~512MB,有的兩個(gè)同時(shí)使用,需要根據(jù)應(yīng)用規(guī)劃Flash的分區(qū)方案。7.開(kāi)發(fā)應(yīng)用程序應(yīng)用程序可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,這有點(diǎn)類似于μCOS-II的方式。8.燒寫內(nèi)核、根文件系統(tǒng)、應(yīng)用程序9.發(fā)布產(chǎn)品
看了以上有關(guān)的嵌入式linux開(kāi)發(fā)方法講解,如果還有什么疑問(wèn)可以直接來(lái)電咨詢。