日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 入門指導(dǎo) > 華清遠(yuǎn)見大牛講解:嵌入式linux的開發(fā)流程

華清遠(yuǎn)見大牛講解:嵌入式linux的開發(fā)流程 時(shí)間:2019-03-13      來源:華清遠(yuǎn)見

想要入行嵌入式開發(fā)肯定是少不了嵌入式linux的學(xué)習(xí),而且嵌入式linux是嵌入式開發(fā)學(xué)習(xí)的重點(diǎn)知識之一。所以說了解嵌入式linux開發(fā)流程也是需要了解的重點(diǎn)之一。那么嵌入式linux的開發(fā)流程是怎樣的呢?來看看華清遠(yuǎn)見大牛給大家所分享的嵌入式linux開發(fā)流程。

嵌入式linux的開發(fā)流程雖然是需要了解的重點(diǎn)之一,但是其流程并不是很難,但是其中的零碎知識點(diǎn)是需要注意的。當(dāng)然這也是多年來的經(jīng)驗(yàn)總結(jié),接下來就看看嵌入式linux開發(fā)流程:

1.創(chuàng)建開發(fā)環(huán)境

這是必須需要了解學(xué)會(huì)的,要會(huì)安裝嵌入式linux開發(fā)環(huán)境,這是最基本的。也就是在linux操作系統(tǒng)中安裝虛擬機(jī),通過網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝,或者安裝產(chǎn)品廠家提供的交叉編譯器。

在這個(gè)步驟中需要你一定要細(xì)心,因?yàn)橥渲脹]有配好的話就會(huì)導(dǎo)致下面的步驟無法正常進(jìn)行。

2.配置開發(fā)主機(jī)

主要配置的就是minicom,也就是串口助手,minicom軟件是作為調(diào)試嵌入式開發(fā)板信息輸出的監(jiān)視器和鍵盤輸入工具,是一個(gè)非常方便的工具,我們開發(fā)其他嵌入式程序時(shí),其實(shí)很多時(shí)候也采用串口調(diào)試,所以最終原理都是相通的。

配置網(wǎng)絡(luò),主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),這個(gè)主要是用于下載程序,當(dāng)然不配置也可以,有很多別的辦法。

3.建立引導(dǎo)裝在程序的bootloader

常用的bootloader主要有u-boot、vivi等,貌似主流的就是u-boot,這個(gè)根據(jù)自己具體的芯片進(jìn)行移植修改。有些芯片是沒有內(nèi)置引導(dǎo)加載程序的,這就需要編寫開發(fā)板上的Flash的少些程序,當(dāng)然也可以用windows下的通過JTAG并口和仿真器少些Flash芯片程序,也有l(wèi)inux下的公開源代碼的J-Flash程序,所以在設(shè)計(jì)自己的硬件時(shí),可以預(yù)留多種方式。

簡單的講,其實(shí)就是要做好一個(gè)屬于自己板子的u-boot,完成初始化,內(nèi)核引導(dǎo),下載、燒寫等。

4.移植嵌入式Linux操作系統(tǒng)

如果有專門針對你使用的CPU的Linux再好不過,比如uCLinux、ARM-Linux、PPC-Linux等,如果沒有,就要嘗試移植專屬自己的linux了,然后再添加自己特定硬件的驅(qū)動(dòng)程序,進(jìn)行調(diào)試修改,對于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動(dòng),而對于uCLinux這樣的系統(tǒng)則需要編譯進(jìn)內(nèi)核,與內(nèi)核為一體,再進(jìn)行調(diào)試。

5.建立根文件系統(tǒng)

前面的文章講述過,沒有根文件系統(tǒng)的Linux是無法正常工作的,還需要根文件系統(tǒng)。所以需要下載使用busybox軟件來實(shí)現(xiàn)制作根文件系統(tǒng)。

再根據(jù)自己的應(yīng)用需要來添加其他程序,默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需求(因?yàn)樗械那度胧介_發(fā)都是自由定制的),所以就要修改根文件系統(tǒng)中的啟動(dòng)腳本,它的存放位置至于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動(dòng)掛載文件系統(tǒng)的配置文件/etc/fstab,其實(shí)就是定制自己要開機(jī)啟動(dòng)的程序,具體情況會(huì)隨著系統(tǒng)的不同而不同,根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs、genromfs等工具產(chǎn)生少些映像文件。

6.建立應(yīng)用程序的Flash磁盤分區(qū)

一般會(huì)使用jffs2或者YAFF文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用NOR FLASH,有的系統(tǒng)使用NAND FLASH,也有的系統(tǒng)兩種flash都使用,那么jffs2的作用是什么呢?

百科里的介紹是:jffs2全名為journalling flash filesystem version2(閃存日志型文件系統(tǒng)第二版),其功能就是管理MTD設(shè)備上實(shí)現(xiàn)的日志型文件系統(tǒng),日志系統(tǒng)也是一個(gè)完整系統(tǒng)所必須的,不管是windows還是linux,有了這些才不算耍流氓,嘿嘿。jffs2并不準(zhǔn)備提供提供類似與傳統(tǒng)文件系統(tǒng)的功能,它只會(huì)直接在MTD設(shè)備上實(shí)現(xiàn)日志結(jié)構(gòu)的文件系統(tǒng),除了提供具有斷電可靠性的日志結(jié)構(gòu)文件系統(tǒng),jffs2還會(huì)在它管理的MTD設(shè)備上實(shí)現(xiàn)"損耗平衡"和“數(shù)據(jù)壓縮”等特性。

MTD(memory technology device內(nèi)存技術(shù)設(shè)備),就是各種flash。 

7.開發(fā)應(yīng)用程序

應(yīng)用程序可以放到根文件系統(tǒng)中,也可以放到y(tǒng)affs、jffs2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,就是類似于uCOS-II的方式。

其實(shí),寫到這,這一步才是最終的目的,前面的步驟都是為了這一步,我自己的理解,開發(fā)應(yīng)用程序呈現(xiàn)的方式應(yīng)該是有三種的:

(1)直接講應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,類似與uCOS-II的方式,這種方式就是屬于私人訂制了,實(shí)現(xiàn)的功能種類是比較少的,只是專屬,但是穩(wěn)定性要求高的,比如說復(fù)雜交換機(jī)、防火墻等,可能更看中l(wèi)inux系統(tǒng)的穩(wěn)定性和各種優(yōu)秀的外圍資源吧。

(2)基于qt等GUI開發(fā)應(yīng)用程序,之前一直以為qt是linux繞不開的,其實(shí)隨著了解,不盡然,qt其實(shí)就是一個(gè)桌面系統(tǒng),比如說ubuntu,對于高手來說,有沒有桌面都是無所謂的,因?yàn)樗卸际强梢酝ㄟ^shell來完成的,使用qt是方便用戶使用,所以對于那些需要操作,有屏幕的嵌入式設(shè)備,這個(gè)是一個(gè)很好的方案。比如目前工控觸摸屏還有各種手持式帶有屏幕的儀表器械,都是這種方式。

(3)沒有屏幕,只有簡單的人機(jī)接口,比如串口,按鍵,數(shù)碼管,這種也能實(shí)現(xiàn)復(fù)雜功能開發(fā),比如說,完全可以開發(fā)一個(gè)基于linux的PLC,可編程方案,通過腳本實(shí)現(xiàn),這也是一種很好的方案實(shí)現(xiàn)。

8.燒寫內(nèi)核、根文件系統(tǒng)、應(yīng)用程序

無論怎么加載,模塊也好,所有的這些開發(fā),過程資料,都是要燒寫到flash中的,然后應(yīng)用程序需要什么,就加載對應(yīng)的功能程序即可。

9.發(fā)布產(chǎn)品

寫到最后,發(fā)現(xiàn),之前還是過于迷信linux,不是說linux不好,而是說,對于嵌入式開發(fā)工程師來說,沒有最好的,只有最適合的,開發(fā)一款產(chǎn)品,用什么,不用什么,都是因地制宜的。

比如說一個(gè)簡單的跑馬燈,你非要使用嵌入式linux方案,那就是燒包,只需要一個(gè)簡單的2051,裸機(jī)程序就能開發(fā),既便宜,又好用。

開發(fā)一款小型控制器設(shè)備,如果功能不太復(fù)雜,可以使用稍微高級的CPU,裸機(jī)或者ucos等來開發(fā),也很方便,也能做很多定制版的工業(yè)小型控制器。

開發(fā)一款中高型的控制器設(shè)備,功能比較復(fù)雜,甚至需要復(fù)雜的屏幕交互,比如手機(jī)(安卓是linux的親兒子,OS是linux的親表弟),取款機(jī),服務(wù)器交易系統(tǒng),那么linux就非常合適了。

上一篇:嵌入式系統(tǒng)的四層結(jié)構(gòu)你都知道嗎?

下一篇:嵌入式開發(fā)行業(yè)的前景可觀嗎?這些問題你要了解

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 杨金生| 《哥哥的女人》电影| 在线播放国内自拍情侣酒店| 冬去春来电视剧| 北京卫视今天节目预告| 桥段| 黄视频在线免费| 权威照片| 章家瑞| 四川地图旅游地图| 蝴蝶视频在线观看| 潜伏温子仁| 琅琊榜3第三部免费播放| 哈基米| 小腿垫东西睡觉正确图| 陈颖芝三级| 第一财经今日股市直播间在线直播| 追捕演员表名单| 美女污视频网站| hellokitty壁纸| 回到十八岁| 白上之黑电影| 陈思敏1一5集国语版在线播放| 微信头像大全500张| 命运航班| 歌曲串烧串词| 意外的春天 电影| 各各他的路赞美诗歌| 红电视剧演员表| 舞法天女之绚彩归来演员表| 热天午后| 电影《睡在我上铺的兄弟》简介| 哈利学前班| 苍兰| 影子人| 二年级最佳家长评语| 刘天宇| 免费成人结看片| 二丫的美好生活[年代]| 沙漠里的鱼| 龙的传人第四季|