新聞中心
Linux嵌入式系統(tǒng)開發(fā)是目前最常用的嵌入式操作系統(tǒng)之一,它的開發(fā)難度相對較低,能夠快速地實現(xiàn)嵌入式設(shè)備的開發(fā)和應(yīng)用,也能夠節(jié)約固件的開發(fā)成本和時間,因此被廣泛應(yīng)用于智能家居、智能手機(jī)、智能電視、智能門鎖、智能儀表等眾多領(lǐng)域的設(shè)備中。在本文中,我們將介紹Linux嵌入式開發(fā)的基本原理和流程,幫助讀者快速掌握Linux嵌入式開發(fā)技術(shù),打造高效的嵌入式系統(tǒng)。

創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、福清網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為福清等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
1、Linux嵌入式開發(fā)環(huán)境配置
在進(jìn)行Linux嵌入式開發(fā)之前,需要準(zhǔn)備好相應(yīng)的軟件和硬件環(huán)境,以確保系統(tǒng)的可靠性和高效性。常見的開發(fā)環(huán)境包括:Ubuntu、Redhat、CentOS等Linux操作系統(tǒng),交叉編譯器、arm-linux-gcc等軟件工具,單板計算機(jī)、開發(fā)板、JTAG調(diào)試器等硬件設(shè)備。需要注意的是,開發(fā)環(huán)境的選擇應(yīng)該根據(jù)實際開發(fā)需求來確定。
2、Linux嵌入式系統(tǒng)的內(nèi)核編譯
Linux嵌入式系統(tǒng)設(shè)計的核心是內(nèi)核編譯。內(nèi)核編譯是指,將所需的驅(qū)動程序編譯成內(nèi)核模塊或直接編譯進(jìn)內(nèi)核中。內(nèi)核編譯的過程包括內(nèi)核的配置、編譯和安裝。需要注意的是,內(nèi)核編譯中應(yīng)根據(jù)實際的開發(fā)需求選擇適當(dāng)?shù)膬?nèi)核版本,并根據(jù)硬件環(huán)境的需求進(jìn)行內(nèi)核配置。
3、Linux嵌入式系統(tǒng)的應(yīng)用程序開發(fā)
完成內(nèi)核編譯之后,需要進(jìn)行應(yīng)用程序的開發(fā)和部署。通常,Linux嵌入式系統(tǒng)的應(yīng)用程序采用C語言或C++語言編寫,也可以采用Java或Python等語言,根據(jù)系統(tǒng)的需求來選擇。再根據(jù)平臺的不同,可能需要進(jìn)行驅(qū)動的編寫、QT框架的應(yīng)用等。
4、Linux嵌入式系統(tǒng)的測試
在Linux嵌入式系統(tǒng)開發(fā)之后,需要進(jìn)行測試,以確保系統(tǒng)的可靠性和高效性。測試的方式包括單元測試、集成測試、驗收測試等等。需要注意的是,測試中應(yīng)該考慮到不同的硬件環(huán)境、軟件環(huán)境和用戶需求。
5、Linux嵌入式系統(tǒng)的調(diào)優(yōu)和優(yōu)化
在系統(tǒng)開發(fā)和測試之后,還需要對系統(tǒng)進(jìn)行調(diào)優(yōu)和優(yōu)化,以進(jìn)一步提高系統(tǒng)的性能和穩(wěn)定性。常見的調(diào)優(yōu)和優(yōu)化方法包括:內(nèi)存管理、優(yōu)化算法、程序優(yōu)化、緩存控制等等。
綜上所述,快速掌握Linux嵌入式開發(fā)技術(shù)是實現(xiàn)高效系統(tǒng)的關(guān)鍵。通過合理的環(huán)境配置、內(nèi)核編譯、應(yīng)用程序開發(fā)、測試和調(diào)優(yōu)等一系列的流程,我們可以快速地開發(fā)出高效的嵌入式系統(tǒng),從而達(dá)到滿足市場需求和用戶需求的目的。
相關(guān)問題拓展閱讀:
- 誰能給我說一下嵌入式Linux的開發(fā)流程包括哪些步驟?請詳細(xì)介紹,謝謝了
- 嵌入式系統(tǒng)開發(fā)需要學(xué)習(xí)什么?
- 嵌入式設(shè)備的嵌入式設(shè)備上的Linux系統(tǒng)開發(fā)
誰能給我說一下嵌入式Linux的開發(fā)流程包括哪些步驟?請詳細(xì)介紹,謝謝了
這個很難一兩句講清楚了
總之
1.有l(wèi)inux的pc環(huán)境
2.pc上安裝交叉編譯環(huán)境
3.下載對應(yīng)版本的引導(dǎo)程序
4.下載到對應(yīng)版本的linux內(nèi)核
5.編譯uboot或其他的引導(dǎo)程序
6.下載到flash中
7.寫驅(qū)動程序
8.寫應(yīng)用程序
9.在告雀下載的對應(yīng)版本的linux內(nèi)核中生成內(nèi)核鏡像
10.通過uboot或其他引導(dǎo)程序下載到flash中
11.運行板子,啟動linux,并搏友扮運行基灶自己編寫的程序
嵌入式Linux開發(fā)流程
在一個嵌入式系統(tǒng)中使用Linux開發(fā),根據(jù)應(yīng)用需求的不同有不同的配置開發(fā)方法,但是一般都要經(jīng)過如下的過程:
1.建立開發(fā)環(huán)境
操作系統(tǒng)一般使用RedHat-Linux,版本從7到9都可以,選擇定制安裝或全部安裝,通過網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝(例如arm-Linux-gcc、arm-μclibc-gcc),或者安裝產(chǎn)品廠家提供的交叉編譯器。
2.配置開發(fā)主機(jī)
配置MINICOM,一般的參數(shù)為波特率為bps,數(shù)據(jù)位為8位,停止位為1,無奇偶校驗,軟件硬件流控設(shè)為無。在Windows下的超級終端的配置也是這樣的。MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò),主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過程。
3.建立引導(dǎo)裝載程序BOOTLOADER
從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)自己具體的芯片進(jìn)行移植修改。有些芯片沒有內(nèi)置引導(dǎo)裝載程序,例如三星的ARM7、ARM9系列芯片,這樣就需要編寫開發(fā)板上Flash的燒寫程序,網(wǎng)絡(luò)上有免費下載的Windows下通過JTAG并口簡易仿真器燒寫ARM外圍Flash芯片的燒寫程序,也有Linux下的公開源代碼的J-Flash程序。如果不能燒寫自己的開發(fā)板,就需要根據(jù)自己的具體電路進(jìn)行源代碼修改。這是系統(tǒng)正常運行的之一步。如果購買了廠家的仿真器當(dāng)然比較容易燒寫Flash,這對于需要迅速開發(fā)自己產(chǎn)品的人來說可以極大地提高開發(fā)速度,但是其中的核心技術(shù)是無法了解的。
4.下載別人已經(jīng)移植好的Linux操作系統(tǒng)
如μCLinux、ARM-Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過的,下載后再添加自己的特定硬件的驅(qū)動程序,進(jìn)行調(diào)試修改,對于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動,對于μCLinux這樣的系統(tǒng)則需編譯進(jìn)內(nèi)核進(jìn)行調(diào)試。
5.建立根文件系統(tǒng)
從
www.busybox.net
下載使用BUSYBOX軟件進(jìn)行功能裁減,產(chǎn)生一個最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他程序。默認(rèn)的啟動腳本一般都不會符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會隨系統(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ū)動,有的系統(tǒng)使用一個線性Flash(NOR型)512KB~32MB,有的系統(tǒng)使用非線性Flash(NAND型)8~512MB,有的兩個同時使用,需要根據(jù)應(yīng)用規(guī)劃Flash的分區(qū)方案。
7.開發(fā)應(yīng)用程序
應(yīng)用程序可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不念野使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計在一起,這有點類似于μCOS-II的州高槐方式。
8.燒寫內(nèi)核、根文件系統(tǒng)、應(yīng)用程序
9.發(fā)布產(chǎn)品
怎樣成為一名優(yōu)秀的嵌入式系統(tǒng)工程師
——資深I(lǐng)T人對大學(xué)生們的學(xué)瞎歲習(xí)建議
在IT應(yīng)用領(lǐng)域,嵌入式系統(tǒng)的火爆程度恐怕不低于當(dāng)下的室外溫度,在工業(yè)、醫(yī)療、家電、通訊等行業(yè)中,無所不在的嵌入式系統(tǒng)顯現(xiàn)出巨大的發(fā)展?jié)摿?,然而,嵌入式系統(tǒng)人才的匱乏,已成為限制這個行業(yè)進(jìn)一步發(fā)展的主要瓶徑,無論是在北京、上海、深圳還是內(nèi)地,嵌入式企業(yè)的人力資源經(jīng)理們最頭痛的就是沒有辦法為企業(yè)找到足夠的嵌入式系統(tǒng)工程師,與每年幾十萬找不到工作的應(yīng)屆大學(xué)生相比,成為了一個鮮明的差別。
那么,是什么阻礙了嵌入式系統(tǒng)人才的培養(yǎng)和出現(xiàn)呢?在長沙市首家專業(yè)嵌入式培訓(xùn)基地——長沙英騰信息技術(shù)有限公司,筆者了解到,由于嵌入式系統(tǒng)屬于一門年輕的科學(xué)技術(shù),在國內(nèi)的高等教育機(jī)構(gòu),還沒有形成完善高效的培訓(xùn)機(jī)構(gòu),很多優(yōu)秀的理工科大學(xué)生雖然看好嵌入式系統(tǒng),但由于找不到合適的學(xué)習(xí)途徑和學(xué)習(xí)方法,花費了不少時間,走了不少彎路,卻始終不能邁入嵌入式系統(tǒng)的門檻。
如何成為一名合格的嵌入式系統(tǒng)工程師,英騰技術(shù)的培訓(xùn)老師建議,首先,要對C語言進(jìn)行充分學(xué)習(xí)和全面了解,這是IT系統(tǒng)開發(fā)的基礎(chǔ),特別是要如慶掌握規(guī)范的編程技巧和編擬軟件開發(fā)文檔,從一入門就打好良好的編程習(xí)慣;再其次,對邏輯電路和模擬電路,也要有足夠的了解,弄懂電路設(shè)計的來龍去脈,在這方面,并不需要去學(xué)習(xí)什么高深的應(yīng)用技術(shù),但基本功一事實上要扎實,對基本原理和設(shè)計方法有充分的理解,也就是說,你不需要能夠設(shè)計出一塊電路板,但一定要熟悉目前市場上的主流開發(fā)板;有了這些基礎(chǔ),就可以涉及嵌入式操作系統(tǒng)的原理和編程了,雖然這方面,有很多的資料(其中絕大部份是英文的)可供參考,但在一個經(jīng)驗豐富的老師指導(dǎo)下學(xué)習(xí)是最快的途徑,在 長沙英騰技術(shù)已畢業(yè)的近千名學(xué)員中,絕大部分都可以在授課老師的幫助下用2個半月的時間完成理論知識的掌握,如果是自學(xué)的話,時間則至少要在1年以上。
最后,大量的實踐操作是學(xué)習(xí)過程中必不可少的一環(huán),嵌入式系統(tǒng)是一門實踐性極強(qiáng)的科學(xué),沒有足夠的系統(tǒng)開發(fā)實踐,無法將所學(xué)的理論知識應(yīng)用在實際工作中,則不能稱之為合格,這種實踐并不是盲目的編程,在英騰技術(shù),指導(dǎo)老師們會根據(jù)學(xué)習(xí)的不同階段和企業(yè)對嵌入式系統(tǒng)工程師的技能要求,有針對性的提出各種不同的實踐內(nèi)容,指導(dǎo)磨橡睜學(xué)員們完成,這些實踐內(nèi)容,大多來自企業(yè)中的嵌入式實戰(zhàn)項目,對于學(xué)員們而言,一旦順利完成這些項目,就意味著成為一名合格的嵌入式系統(tǒng)工程師和擁有進(jìn)入嵌入式領(lǐng)域的‘敲門磚’。
關(guān)于如何學(xué)習(xí)嵌入式,我剛才看到一篇很不錯的文章,是一個??粕榻B自己如何自學(xué)嵌入式,并找到嵌入式的工作,里面介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過程,希望對你有幫助。
??粕鷮W(xué)嵌入式到找到工作的前前后后–學(xué)習(xí)的榜樣
先做個自我介紹,我07年考上一所很爛??泼褶k的學(xué)校,學(xué)的是生物專業(yè),具體的學(xué)校名稱我就不說出來獻(xiàn)丑了。09年我就輟學(xué)了,我在那樣的學(xué)校,一年學(xué)費要1萬多,但是根本沒有人學(xué)習(xí),我實在看不到希望,我就退學(xué)了。
退學(xué)后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結(jié)著我能做什么。所以輟學(xué)后我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應(yīng)聘做業(yè)務(wù)。我想應(yīng)聘做技術(shù)的,可是處處碰壁。
一次偶然的機(jī)會,我才聽到嵌入式這個行業(yè)。那天我去新華書店,在計算機(jī)分類那邊想找本書學(xué)習(xí)。后來有個女孩子走過來,問我是不是讀計算機(jī)的,有沒有興趣學(xué)習(xí)嵌入式,然后給我介紹了一下嵌入式現(xiàn)在的火熱情況,告訴我學(xué)嵌入式多么的有前景,給我了一份傳單,嵌入式培訓(xùn)的廣告。聽了她的介紹,我心里癢癢的,確實我很想去學(xué)會一門自己的技術(shù),靠自己的雙手吃飯。
回家后,我就上網(wǎng)查了下嵌入式,確實是當(dāng)今比較熱門的行業(yè),也是比較好找工作的,工資也是相對比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓(xùn)的相關(guān)信息,說真的,我也很迷茫,我不知道培訓(xùn)是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
后來,我在百度知道看到一篇讓我很鼓舞的文章《如何學(xué)習(xí)嵌入式》,是一個嵌入式高手介紹沒有基礎(chǔ)的朋友怎么自學(xué)入門學(xué)嵌入式,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí)。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認(rèn)同,我自己看書往往看不了幾頁。
我在想,為什么別人都能自學(xué)成才,我也可以的!我要相信自己,所以我就想自學(xué),如果實在學(xué)不會我再去培訓(xùn)。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個能夠告訴我該怎么學(xué)的視頻,一套從入門到精通的視頻,一個比較完整的資料,更好能有老師教,不懂可以請教的。
后來我又找到一份很好的視頻,是在嵌入式學(xué)習(xí)網(wǎng)推出的一份視頻《嵌入式視頻教虛逗程–零基礎(chǔ)手把手教你學(xué)嵌入式》,里面的教程還不錯,很完整,可以讓我從基差碼賣礎(chǔ)的開始學(xué)起。視頻不便宜啊,但是我也忍了,畢竟買幾本書都要幾百了,何況他們還有半年的技術(shù)咨詢和服務(wù),算值了。
==============這里我就不給出他們的網(wǎng)址,如果你也想要嵌入式視頻的話,那就自己去百度搜索:零基礎(chǔ)手把手教你學(xué)嵌入式。
下面介紹下我的學(xué)習(xí)流程,希望對和我一樣完全沒有基礎(chǔ)的朋友有所幫助。
收到他們寄過來的光盤后,我就開始學(xué)習(xí)了,由于我沒有什么基礎(chǔ),我就從最簡單的C語言視頻教程學(xué)起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學(xué)了一個禮拜,接下來我就學(xué)了linux的基本命令,我在他們提供linux虛擬機(jī)上都有做練習(xí),敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月后我基本掌握了C和linux的基本操作。
接下來我就去學(xué)習(xí)了人家的視頻的培訓(xùn)教程,是整套的,和去參加培訓(xùn)沒有多大的區(qū)別,這一看就是兩個月,學(xué)習(xí)了ARM的基本原理,學(xué)習(xí)嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應(yīng)用到底是怎么做的,但是驅(qū)動我只是有一點點的了解,這個相對難一點,我想以后再慢慢啃。
這兩個月,除了吃飯睡覺,我?guī)缀醵荚趯W(xué)習(xí)。因為我知道幾乎沒有基礎(chǔ),比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養(yǎng)活自己,必須學(xué)好這門技術(shù),同時我不懂的就問,這里真的很感謝他們的技術(shù)客服對我的任何問題都是耐心的解答,每天都我?guī)缀醵加泻脦讉€問題問他們,然后我就把不懂的問題總結(jié)記下來,這樣慢慢積累了一段時間,我發(fā)現(xiàn)自己真的有點入門了。
最后的一個月,我就去看關(guān)于模悄實踐部分的內(nèi)容,了解嵌入式項目具體的開發(fā)流程,需要什么樣的知識,我就開始準(zhǔn)備這方面的知識,也就是學(xué)習(xí)這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準(zhǔn)備。我就到網(wǎng)上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多準(zhǔn)備了20天左右
我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡歷,因為我學(xué)歷的問題,??茮]有畢業(yè),說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過后,就有面試了,但是之一次面試我失敗了,雖然我自認(rèn)為筆試很好,因為我之前做了準(zhǔn)備,但是他們的要求比較嚴(yán)格,需要有一年的項目經(jīng)驗,所以我沒有被選中。
后來陸續(xù)面試了幾家公司,終于功夫不負(fù)有心人。我終于面試上的,是在閔行的一家民營的企業(yè),公司規(guī)模比較小,我的職務(wù)是嵌入式linux應(yīng)用開發(fā),做安防產(chǎn)品的應(yīng)用的。我想我也比較幸運,經(jīng)理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500只能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養(yǎng),我自己也能養(yǎng)活自己的。我想只要我繼續(xù)努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎(chǔ)的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
最后祝愿所有想學(xué)嵌入式的朋友更早的入門!
嵌入式系統(tǒng)開發(fā)需要學(xué)習(xí)什么?
嵌入式系統(tǒng)開發(fā)就是對于除了電腦之外的所有電子設(shè)備上操作系統(tǒng)的開發(fā),開發(fā)對象有手機(jī),掌上電腦,機(jī)電系統(tǒng)等。
嵌入式系統(tǒng)開發(fā)流程:
之一步:建立開發(fā)環(huán)境
操作系統(tǒng)一般使用RedhatLinux,選擇定制安裝或全部安裝,通過網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝(比如,arm-linux-g、arm-uclibc-g),或者安裝產(chǎn)品廠家提供的相關(guān)交叉編譯器;
第二步:配置開發(fā)主機(jī)
配置MINICOM,一般的參數(shù)為波特率115200Baud/s,數(shù)據(jù)位8位,停止位為1,9,無奇偶校驗,軟件硬件流控設(shè)為無。在Windows下的超級終端的配置也是這樣。MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò)主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過程。
第三步:建立引導(dǎo)裝載程序BOOTLOADER
從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)具體芯片進(jìn)行移植修改。有些芯片沒有內(nèi)置引導(dǎo)裝載程序,比如,三星的ARV17、ARM9系列芯片,這樣就需要編寫開發(fā)板上FLASH的燒寫程序,可以在網(wǎng)上下載相應(yīng)的燒寫程序,也有Linux下的公開源代碼的J-FLASH程序。如果不能燒寫自己的開發(fā)板,就需要根據(jù)自己的具體電路進(jìn)行源代碼修改。這是讓系統(tǒng)可以正常運行的之一步。如果用戶購買了廠家的仿真器比較容易燒寫FLASH,雖迅穗然無法了解其中的核心技術(shù),但對于需要迅速開發(fā)自己的應(yīng)用的人來說可以極大提高開發(fā)速度。
第四步:下載已經(jīng)移植好的Linux操作系統(tǒng)
如MCLiunx、ARM-Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過,下載后再添加特定硬件的驅(qū)動程序,然后進(jìn)行調(diào)試修改,對于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動,而對于MCLiunx這樣的系統(tǒng)只能編譯內(nèi)核進(jìn)行調(diào)試。
第五步:建立根文件系統(tǒng)
下載使用BUSYBOX軟件進(jìn)行功能裁減,產(chǎn)生一個最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他的程序。由于默認(rèn)的啟動腳本一般都不會符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfsgenromfs等工具產(chǎn)生燒寫映像文件。
第六步:建立應(yīng)用程序的FLASH磁盤分區(qū)
一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動,有的系統(tǒng)使用一個線性FLASH(NOR型)512KB~32MB,有的系統(tǒng)使用非線賣液性FLASH(NAND型)8MB~512MB,有的兩個同時使用,需要根據(jù)應(yīng)用規(guī)劃FLASH的分區(qū)方案。
第七步:開發(fā)應(yīng)用程序
可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用畝配卜程序和內(nèi)核設(shè)計在一起,這有點類似于μC/OS-II的方式。
第八步:燒寫內(nèi)核
根文件系統(tǒng)和應(yīng)用程序,發(fā)布產(chǎn)品。
………………………………………………………………………………………………………………………………….
……………………………………………………….
還有怎么學(xué)習(xí)嵌入式呢,我剛才看到一篇很不錯的文章,是一個專科生介紹自己如何自學(xué)嵌入式,并找到嵌入式的工作,里面介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過程,希望對你有幫助。
先做個自我介紹,我07年考上一所很爛專科民辦的學(xué)校,學(xué)的是生物專業(yè),具體的學(xué)校名稱我就不說出來獻(xiàn)丑了。09年我就輟學(xué)了,我在那樣的學(xué)校,一年學(xué)費要1萬多,但是根本沒有人學(xué)習(xí),我實在看不到希望,我就退學(xué)了。
退學(xué)后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結(jié)著我能做什么。所以輟學(xué)后我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應(yīng)聘做業(yè)務(wù)。我想應(yīng)聘做技術(shù)的,可是處處碰壁。
一次偶然的機(jī)會,我才聽到嵌入式這個行業(yè)。那天我去新華書店,在計算機(jī)分類那邊想找本書學(xué)習(xí)。后來有個女孩子走過來,問我是不是讀計算機(jī)的,有沒有興趣學(xué)習(xí)嵌入式,然后給我介紹了一下嵌入式現(xiàn)在的火熱情況,告訴我學(xué)嵌入式多么的有前景,給我了一份傳單,嵌入式培訓(xùn)的廣告。聽了她的介紹,我心里癢癢的,確實我很想去學(xué)會一門自己的技術(shù),靠自己的雙手吃飯。
回家后,我就上網(wǎng)查了下嵌入式,確實是當(dāng)今比較熱門的行業(yè),也是比較好找工作的,工資也是相對比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓(xùn)的相關(guān)信息,說真的,我也很迷茫,我不知道培訓(xùn)是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
后來,我在百度知道看到一篇讓我很鼓舞的文章,是一個嵌入式高手介紹沒有基礎(chǔ)的朋友怎么自學(xué)入門學(xué)嵌入式,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí)。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認(rèn)同,我自己看書往往看不了幾頁。
我在想,為什么別人都能自學(xué)成才,我也可以的!我要相信自己,所以我就想自學(xué),如果實在學(xué)不會我再去培訓(xùn)。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個能夠告訴我該怎么學(xué)的視頻,一套從入門到精通的視頻,一個比較完整的資料,更好能有老師教,不懂可以請教的。
后來我又找到一份很好的視頻,是在IT學(xué)習(xí)聯(lián)盟網(wǎng)站推出的一份視頻《零基礎(chǔ)嵌入式就業(yè)班》(喜歡《零基礎(chǔ)嵌入式就業(yè)班》的可以復(fù)制sina.lt/qKh粘貼瀏覽器地址欄按回車鍵即打開)。里面的教程還不錯,很完整,可以讓我從基礎(chǔ)的開始學(xué)起。視頻比較便宜。
下面介紹下我的學(xué)習(xí)流程,希望對和我一樣完全沒有基礎(chǔ)的朋友有所幫助。
收到他們寄過來的光盤后,我就開始學(xué)習(xí)了,由于我沒有什么基礎(chǔ),我就從最簡單的C語言視頻教程學(xué)起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學(xué)了一個禮拜,接下來我就學(xué)了linux的基本命令,我在他們提供linux虛擬機(jī)上都有做練習(xí),敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月后我基本掌握了C和linux的基本操作。
接下來我就去學(xué)習(xí)了人家的視頻的培訓(xùn)教程,是整套的,和去參加培訓(xùn)沒有多大的區(qū)別,這一看就是兩個月,學(xué)習(xí)了ARM的基本原理,學(xué)習(xí)嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應(yīng)用到底是怎么做的,但是驅(qū)動我只是有一點點的了解,這個相對難一點,我想以后再慢慢啃。
這兩個月,除了吃飯睡覺,我?guī)缀醵荚趯W(xué)習(xí)。因為我知道幾乎沒有基礎(chǔ),比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養(yǎng)活自己,必須學(xué)好這門技術(shù),然后我就把不懂的問題總結(jié)記下來,這樣慢慢積累了一段時間,我發(fā)現(xiàn)自己真的有點入門了。
最后的一個月,我就去看關(guān)于實踐部分的內(nèi)容,了解嵌入式項目具體的開發(fā)流程,需要什么樣的知識,我就開始準(zhǔn)備這方面的知識,也就是學(xué)習(xí)這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準(zhǔn)備。我就到網(wǎng)上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多準(zhǔn)備了20天左右
我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡歷,因為我學(xué)歷的問題,??茮]有畢業(yè),說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過后,就有面試了,但是之一次面試我失敗了,雖然我自認(rèn)為筆試很好,因為我之前做了準(zhǔn)備,但是他們的要求比較嚴(yán)格,需要有一年的項目經(jīng)驗,所以我沒有被選中。
后來陸續(xù)面試了幾家公司,終于功夫不負(fù)有心人。我終于面試上的,是在閔行的一家民營的企業(yè),公司規(guī)模比較小,我的職務(wù)是嵌入式linux應(yīng)用開發(fā),做安防產(chǎn)品的應(yīng)用的。我想我也比較幸運,經(jīng)理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500只能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養(yǎng),我自己也能養(yǎng)活自己的。我想只要我繼續(xù)努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎(chǔ)的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
假如你喜歡嵌入式的話就努力學(xué)習(xí)吧。
嵌入式設(shè)備的嵌入式設(shè)備上的Linux系統(tǒng)開發(fā)
Linux正在嵌入式開發(fā)領(lǐng)域穩(wěn)步發(fā)展。因為Linux使用GPL(請參閱本文后面的參考資料),所以任何對將Linux定制于PDA、掌上機(jī)或者可佩帶設(shè)備感興趣的人都可以從因特網(wǎng)免費下載其內(nèi)核和應(yīng)用程序,并開始移植或開發(fā)。許多仔畢Linux改良品種迎合了嵌入式/實時市場。它們包括RTLinux(實時Linux)、uclinux(用于非MMU設(shè)備的Linux)、MontavistaLinux(用于ARM、MIPS、PPC的Linux分發(fā)版)、ARM-Linux(ARM上的Linux)和其它Linux系統(tǒng)
嵌入式Linux開發(fā)大致涉及三個層次:引導(dǎo)裝載程序、Linux內(nèi)核和圖形用戶界面(或稱GUI)。引導(dǎo)裝載程序通常是在任何硬件上執(zhí)行的之一段代碼。在象臺式機(jī)這樣的常規(guī)系統(tǒng)中,通常將引導(dǎo)裝載程序裝入主引導(dǎo)記錄(MasterBootRecord,(MBR))中,或者裝入Linux駐留的磁盤的之一個扇區(qū)中。通常,在臺式機(jī)或其它系統(tǒng)上,BIOS將控制移交給引導(dǎo)裝載程序。
專用軟件可以直接與遠(yuǎn)程系統(tǒng)上的閃存設(shè)備進(jìn)行交互并將引導(dǎo)裝載程序安裝在閃存的給定位置中。閃存設(shè)備是與存儲設(shè)備功能類似的特殊芯片,而且它們能持久存儲信息—即,在重新引導(dǎo)時不會擦除其內(nèi)容。
某些種類的嵌入式設(shè)備具有微小的引導(dǎo)代碼—根據(jù)幾個字節(jié)的指令—它將初始化一些DRAM設(shè)置并啟用目標(biāo)上的一個串行(或者USB,或者以太網(wǎng))端口與主機(jī)程序通信。然后,主機(jī)程序或裝入程序可以使用這個連接將引導(dǎo)裝載程序傳送到目標(biāo)上,并將它寫入閃存。設(shè)置工具鏈在主機(jī)機(jī)器上創(chuàng)建一個用于編譯將在目標(biāo)上運行的內(nèi)核和應(yīng)用程序的構(gòu)建環(huán)境—這是因為目標(biāo)硬件可能沒有與主機(jī)兼容的二進(jìn)制執(zhí)行級別。
工具鏈由一套用于編譯、匯編和鏈接內(nèi)核及應(yīng)用程序的組件組成。這些組件包括:Binutils—用哪檔于操作二進(jìn)制文件的實用程序。它們包括諸如ar、as、objmp、objcopy這樣的實用程序。G—GNUC編譯器。Glibc—所有用戶應(yīng)用程序都將鏈接到的C庫。避免使用任何C庫函數(shù)的內(nèi)核和其它應(yīng)用程序可以在沒有該庫的情況下進(jìn)行編譯。構(gòu)建工具鏈建立了一個交叉編譯器環(huán)境。本地編譯器編譯與本機(jī)同類的處理器的指令。交叉編譯器運行在某一種處理器上,卻可以編譯另一種處理器的指令。重頭設(shè)置交叉編譯器工具鏈可不是一項簡單的任務(wù):它包括下載源代碼、修補(bǔ)補(bǔ)丁、配置、編譯、設(shè)置頭文件、安裝以及很多很多的操作。另外,這樣一個徹底的構(gòu)建過程對內(nèi)存和硬盤的需求是巨大的。如果沒有足夠的內(nèi)存和硬盤空間,那么在構(gòu)建階段由于相關(guān)性、配置或頭文件設(shè)置等念緩芹問題會突然冒出許多問題。
因此能夠從因特網(wǎng)上獲得已預(yù)編譯的二進(jìn)制文件是一件好事(但不太好的一點是,它們大多數(shù)只限于基于ARM的系統(tǒng),但遲早會改變的)。一些比較流行的已預(yù)編譯的工具鏈包括那些來自Compaq(FamiliarLinux)、LART(LARTLinux)和Embedian(基于Debian但與它無關(guān))的工具鏈—所有這些工具鏈都用于基于ARM的平臺。從用戶的觀點來看,圖形用戶界面(GUI)是系統(tǒng)的一個最至關(guān)重要的方面:用戶通過GUI與系統(tǒng)進(jìn)行交互。所以GUI應(yīng)該易于使用并且非??煽?。但它還需要是有內(nèi)存意識的,以便在內(nèi)存受限的、微型嵌入式設(shè)備上可以無縫執(zhí)行。所以,它應(yīng)該是輕量級的,并且能夠快速裝入。
另一個要考慮的重要方面涉及許可證問題。一些GUI分發(fā)版具有允許免費使用的許可證,甚至在一些商業(yè)產(chǎn)品中也是如此。另一些許可證要求如果想將GUI合并入項目中則要支付版稅。
最后,大多數(shù)開發(fā)人員可能會選擇XFree86,因為XFree86為他們提供了一個能使用他們喜歡的工具的熟悉環(huán)境。但是市場上較新的GUI,象CenturySoftware的(Nano-X)和TrolltechQT/Embedded,與X在嵌入式Linux的競技舞臺中展開了激烈競爭,這主要是因為它們占用很少的資源、執(zhí)行的速度很快并且具有定制窗口構(gòu)件的支持。
關(guān)于linux嵌入式開發(fā)入門的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
分享名稱:快速掌握Linux嵌入式開發(fā),打造高效系統(tǒng)!(linux嵌入式開發(fā)入門)
文章來源:http://m.5511xx.com/article/cdjiphs.html


咨詢
建站咨詢
