小白必備的嵌入式linux開發流程總結指南

可以說嵌入式linux是學習比較困難的,會遇到各種各樣的題目,那麼嵌入式linux學習有一個緊張的點就是嵌入式linux開發的流程,這是必須要曉得的,接上去我們就看看這方面的大牛總結的嵌入式linux開發流程及一些遇到的困難,解決方法。

嵌入式開發流程著實很簡單,但是內里是有許多小的工具必要你注意的,這也是我這麼多年來的一些經驗,先說嵌入式linux開發流程:

一、創建開發情況,起首你必須要會安裝配置嵌入式linux開發情況,這個是根本

(2)基於qt等GUI開發應用程序

可以說嵌入式linux是學習比較困難的,會遇到各種各樣的題目,那麼嵌入式linux學習有一個緊張的點就是嵌入式linux開發的流程,這是必須要曉得的,接上去我們就看看這方面的大牛總結的嵌入式linux開發流程及一些遇到的困難,解決方法。

這一步,就相當於在win體系下,要安裝一個IDE開發情況,如MDK,IAR等。在這一點上,我時常會由於這呈現一些題目,就由於配置沒配好,招致上面的步調沒法進行,報錯,要切記這裡必要你仔細點。

二、配置開發主機

主要是配置minicom,也就是串口助手,minicom軟體是作為調試嵌入式開發板信息輸出的監視器和鍵盤輸入工具,是一個十分方便的工具,我們開發其他嵌入式程序時,著實許多時候也接納串口調試,以是最終原理都是雷同的。

1、嵌入式linux開發流程

配置網路,主要是配置NFS網路文件體系,這個主要是用於下載程序,固然不配置也可以,有許多另外辦法。

三、創建引導裝在程序的bootloader

常用的bootloader主要有u-boot、vivi等,貌似主流的就是u-boot,這個根據本身具體的晶元進行移植修改。有些晶元是沒有內置引導載入程序的,這就必要編寫開發板上的Flash的少些程序,固然也可以用windows下的通過JTAG並口和模擬器少些Flash晶元程序,也有linux下的公然源代碼的J-Flash程序,在本身做的時候,可以預留多重方式,如許是有用的。

簡單的講,著實就是要做好一個屬於本身板子的u-boot,完成初始化,內核引導,下載、燒寫等。著實在這一點上,也會是個難點,這裡必要掌握的工具多,這一流程的燒寫,內核引導,網路上有收費下載的Windows下通過JTAG並口淺易模擬器燒寫ARM外圍Flash晶元的燒寫程序,也有Linux下的公然源代碼的J-Flash程序。要是不能燒寫本身的開發板,就必要根據本身的具體電路進行源代碼修改。這是體系正常運行的第一步。要是購置了廠家的模擬器固然比較容易燒寫Flash,這對於必要敏捷開發本身產品的人來說可以極大地進步開發速率,但是此中的焦點技能是無法了解的。

再來就是嵌入式Linux操作體系移植了

1、嵌入式linux開發流程

要是有專門針對你使用的CPU的Linux再好不外,比如uCLinux、ARM-Linux、PPC-Linux等,要是沒有,就要實驗移植專屬本身的linux了,然後再添加本身特定硬體的驅動程序,進行調試修改,對於帶MMU的CPU可以使用模塊方式調試驅動,而對於uCLinux如許的體系則必要編譯進內核,與內核為一體,再進行調試。最好的就是下載別人曾經移植好的Linux操作體系來弄,如許會高效

2、接上去就是根文件體系了

前面的文章講述過,沒有根文件體系的Linux是無法正常事情的,還必要根文件體系。以是必要下載使用busybox軟體來完成製作根文件體系。

再根據本身的應用必要來添加其他程序,默認的啟動腳本一樣平常都不會符合應用的需求(由於所有的嵌入式開發都是自由定製的),以是就要修改根文件體系中的啟動腳本,它的存放地位至於/etc目錄下,包羅:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛載文件體系的配置文件/etc/fstab,著實就是定製本身要開機啟動的程序,具體情況會隨著體系的不同而不同,根文件體系在嵌入式體系中一樣平常設為只讀,必要使用mkcramfs、genromfs等工具孕育發生少些映像文件。記得這一步要看好,別為了省時間寫錯。

弄好上面那麼接上去就簡單了就是創建應用程序的Flash磁碟分區

一樣平常會使用jffs2或者YAFF文件體系,這必要在內核中提供這些文件體系的驅動,有的體系使用NOR FLASH,有的體系使用NAND FLASH,也有的體系兩種flash都使用,到時候就看具體情況了。

3、開發應用程序

操作體系固然是LInux,或者在win體系下安裝假造機,通過網路下載相應的GCC交叉編譯器進行安裝,或者安裝產品廠家提供的交叉編譯器。

著實,上面的那些步調也就是為了這一步,在這裡你要注意他有三種呈現方式:

(1)間接講應用程序和內核設計在一同,類似與uCOS-II的方式

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

(3)沒有屏幕,只要簡單的人機介面,比如串口,按鍵,數碼管,這種也能完成龐大功效開發

如今就是對燒寫內核、根文件體系、應用程序的載入了(著實差未幾也就完了)

無論怎樣載入,模塊也好,所有的這些開發,歷程資料,都是要燒寫到flash中的,然後應用程序必要什麼,就載入對應的功效程序即可。

4、發布產品

開發一款中高型的控制器設置裝備擺設,功效比較龐大,乃至必要龐大的屏幕交互,比如手機(安卓是linux的親兒子,OS是linux的親表弟),取款機,伺服器生意業務體系,那麼linux就十分符合了。

開發一款小型控制器設置裝備擺設,要是功效不太龐大,可以使用輕微初級的CPU,裸機或者ucos等來開發,也很方便,也能做許多定製版的產業小型控制器。

嵌入式linux開發流程差未幾就是如許了,在學習時一步一步來,就不會出錯,大牛說的這些都學習到了嗎,掌握這些方法,嵌入式linux開發流程就不是事兒。


推薦閱讀:

TAG:嵌入式開發 | Linux |