亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 入門指導 > 華清遠見大牛講解:嵌入式linux的開發流程

華清遠見大牛講解:嵌入式linux的開發流程 時間:2019-03-13      來源:華清遠見

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

嵌入式linux的開發流程雖然是需要了解的重點之一,但是其流程并不是很難,但是其中的零碎知識點是需要注意的。當然這也是多年來的經驗總結,接下來就看看嵌入式linux開發流程:

1.創建開發環境

這是必須需要了解學會的,要會安裝嵌入式linux開發環境,這是最基本的。也就是在linux操作系統中安裝虛擬機,通過網絡下載相應的GCC交叉編譯器進行安裝,或者安裝產品廠家提供的交叉編譯器。

在這個步驟中需要你一定要細心,因為往往配置沒有配好的話就會導致下面的步驟無法正常進行。

2.配置開發主機

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

配置網絡,主要是配置NFS網絡文件系統,這個主要是用于下載程序,當然不配置也可以,有很多別的辦法。

3.建立引導裝在程序的bootloader

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

簡單的講,其實就是要做好一個屬于自己板子的u-boot,完成初始化,內核引導,下載、燒寫等。

4.移植嵌入式Linux操作系統

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

5.建立根文件系統

前面的文章講述過,沒有根文件系統的Linux是無法正常工作的,還需要根文件系統。所以需要下載使用busybox軟件來實現制作根文件系統。

再根據自己的應用需要來添加其他程序,默認的啟動腳本一般都不會符合應用的需求(因為所有的嵌入式開發都是自由定制的),所以就要修改根文件系統中的啟動腳本,它的存放位置至于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛載文件系統的配置文件/etc/fstab,其實就是定制自己要開機啟動的程序,具體情況會隨著系統的不同而不同,根文件系統在嵌入式系統中一般設為只讀,需要使用mkcramfs、genromfs等工具產生少些映像文件。

6.建立應用程序的Flash磁盤分區

一般會使用jffs2或者YAFF文件系統,這需要在內核中提供這些文件系統的驅動,有的系統使用NOR FLASH,有的系統使用NAND FLASH,也有的系統兩種flash都使用,那么jffs2的作用是什么呢?

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

MTD(memory technology device內存技術設備),就是各種flash。 

7.開發應用程序

應用程序可以放到根文件系統中,也可以放到yaffs、jffs2文件系統中,有的應用不使用根文件系統,直接將應用程序和內核設計在一起,就是類似于uCOS-II的方式。

其實,寫到這,這一步才是最終的目的,前面的步驟都是為了這一步,我自己的理解,開發應用程序呈現的方式應該是有三種的:

(1)直接講應用程序和內核設計在一起,類似與uCOS-II的方式,這種方式就是屬于私人訂制了,實現的功能種類是比較少的,只是專屬,但是穩定性要求高的,比如說復雜交換機、防火墻等,可能更看中linux系統的穩定性和各種優秀的外圍資源吧。

(2)基于qt等GUI開發應用程序,之前一直以為qt是linux繞不開的,其實隨著了解,不盡然,qt其實就是一個桌面系統,比如說ubuntu,對于高手來說,有沒有桌面都是無所謂的,因為所有都是可以通過shell來完成的,使用qt是方便用戶使用,所以對于那些需要操作,有屏幕的嵌入式設備,這個是一個很好的方案。比如目前工控觸摸屏還有各種手持式帶有屏幕的儀表器械,都是這種方式。

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

8.燒寫內核、根文件系統、應用程序

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

9.發布產品

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

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

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

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

上一篇:嵌入式系統的四層結構你都知道嗎?

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

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 国产在线果冻传媒在线观看 | 日韩三级| 国产精品jizz观看 | 日本三级午夜 | 国产成人亚洲精品2020 | 久久亚洲国产欧洲精品一 | 人人澡人人看 | 亚洲第一中文字幕 | 日本中文字幕在线视频站 | 人人插人人爽 | 欧美在线黄| 欧洲精品码一区二区三区免费看 | 欧美日韩久久中文字幕 | 欧美日韩一区二区在线 | 国产剧情在线观看 | 亚洲最黄视频 | 韩国一级视频 | 欧美卡一卡二卡新区网站 | 99黄色片 | 久久大香香蕉国产免费网站 | 另类国产精品一区二区 | 亚洲日本成人 | 永久免费人成网ww555kkk手机 | 久久婷婷久久一区二区三区 | 国产在线观看免费一级 | 国产网红在线观看 | 色综合天天综合网国产成人网 | 爱综合| 99精品视频在线视频免费观看 | 欧美黑b | 亚洲艹 | 国产一区二区三区在线影院 | 久久伊人精品综合观看99 | 日本黄色免费看 | 日本欧美日韩 | 色操插| 日本欧美视频在线 | 欧美综合国产精品日韩一 | 国产成人综合在线观看网站 | 黄色污污视频网站 | 亚洲a在线播放 |