1. gzyueqian
      13352868059

      粵嵌嵌入式大牛詳解:嵌入式linux開(kāi)發(fā)流程總結(jié)

      更新時(shí)間: 2018-11-05 14:41:25來(lái)源: 嵌入式培訓(xùn)瀏覽量:4597

          很多的小伙伴都私信問(wèn)了小編在嵌入式學(xué)習(xí)的過(guò)程中都能學(xué)到什么,這次小編就順從大家的意思來(lái)一篇嵌入式linux開(kāi)發(fā)的流程,嵌入式linux的學(xué)習(xí)是不可少的,可以說(shuō)嵌入式linux是學(xué)習(xí)比較困難的,會(huì)遇到各種各樣的問(wèn)題,那么嵌入式linux學(xué)習(xí)有一個(gè)重要的點(diǎn)就是嵌入式linux開(kāi)發(fā)的流程,這是必須要知道的,接下來(lái)我們就看看這方面的大牛總結(jié)的嵌入式linux開(kāi)發(fā)流程及一些遇到的困難,解決方法。



          嵌入式開(kāi)發(fā)流程其實(shí)很簡(jiǎn)單,但是里面是有很多小的東西需要你注意的,這也是我這么多年來(lái)的一些經(jīng)驗(yàn),先說(shuō)嵌入式linux開(kāi)發(fā)流程:
          一、建立開(kāi)發(fā)環(huán)境,首先你必須要會(huì)安裝配置嵌入式linux開(kāi)發(fā)環(huán)境,這個(gè)是基本
          操作系統(tǒng)當(dāng)然是LInux,或者在win系統(tǒng)下安裝虛擬機(jī),通過(guò)網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝,或者安裝產(chǎn)品廠家提供的交叉編譯器。
          這一步,就相當(dāng)于在win系統(tǒng)下,要安裝一個(gè)IDE開(kāi)發(fā)環(huán)境,如MDK,IAR等。在這一點(diǎn)上,我時(shí)常會(huì)因?yàn)檫@出現(xiàn)一些問(wèn)題,就因?yàn)榕渲脹](méi)配好,導(dǎo)致下面的步驟沒(méi)法進(jìn)行,報(bào)錯(cuò),要切記這里需要你仔細(xì)點(diǎn)。
          二、配置開(kāi)發(fā)主機(jī)
          主要是配置minicom,也就是串口助手,minicom軟件是作為調(diào)試嵌入式開(kāi)發(fā)板信息輸出的監(jiān)視器和鍵盤(pán)輸入工具,是一個(gè)非常方便的工具,我們開(kāi)發(fā)其他嵌入式程序時(shí),其實(shí)很多時(shí)候也采用串口調(diào)試,所以終原理都是相通的。
          1、嵌入式linux開(kāi)發(fā)流程
          配置網(wǎng)絡(luò),主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),這個(gè)主要是用于下載程序,當(dāng)然不配置也可以,有很多別的辦法。
          三、建立引導(dǎo)裝在程序的bootloader
          常用的bootloader主要有u-boot、vivi等,貌似主流的就是u-boot,這個(gè)根據(jù)自己具體的芯片進(jìn)行移植修改。有些芯片是沒(méi)有內(nèi)置引導(dǎo)加載程序的,這就需要編寫(xiě)開(kāi)發(fā)板上的Flash的少些程序,當(dāng)然也可以用windows下的通過(guò)JTAG并口和仿真器少些Flash芯片程序,也有l(wèi)inux下的公開(kāi)源代碼的J-Flash程序,在自己做的時(shí)候,可以預(yù)留多重方式,這樣是有用的。
          簡(jiǎn)單的講,其實(shí)就是要做好一個(gè)屬于自己板子的u-boot,完成初始化,內(nèi)核引導(dǎo),下載、燒寫(xiě)等。其實(shí)在這一點(diǎn)上,也會(huì)是個(gè)難點(diǎn),這里需要掌握的東西多,這程的燒寫(xiě),內(nèi)核引導(dǎo),網(wǎng)絡(luò)上有免費(fèi)下載的Windows下通過(guò)JTAG并口簡(jiǎn)易仿真器燒寫(xiě)ARM外圍Flash芯片的燒寫(xiě)程序,也有Linux下的公開(kāi)源代碼的J-Flash程序。如果不能燒寫(xiě)自己的開(kāi)發(fā)板,就需要根據(jù)自己的具體電路進(jìn)行源代碼修改。這是系統(tǒng)正常運(yùn)行的步。如果購(gòu)買(mǎi)了廠家的仿真器當(dāng)然比較容易燒寫(xiě)Flash,這對(duì)于需要迅速開(kāi)發(fā)自己產(chǎn)品的人來(lái)說(shuō)可以極大地提高開(kāi)發(fā)速度,但是其中的核心技術(shù)是無(wú)法了解的。
          再來(lái)就是嵌入式Linux操作系統(tǒng)移植了
          1、嵌入式linux開(kāi)發(fā)流程
          如果有專(zhuān)門(mén)針對(duì)你使用的CPU的Linux再好不過(guò),比如uCLinux、ARM-Linux、PPC-Linux等,如果沒(méi)有,就要嘗試移植專(zhuān)屬自己的linux了,然后再添加自己特定硬件的驅(qū)動(dòng)程序,進(jìn)行調(diào)試修改,對(duì)于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動(dòng),而對(duì)于uCLinux這樣的系統(tǒng)則需要編譯進(jìn)內(nèi)核,與內(nèi)核為一體,再進(jìn)行調(diào)試。的就是下載別人已經(jīng)移植好的Linux操作系統(tǒng)來(lái)弄,這樣會(huì)高效
          2、接下來(lái)就是根文件系統(tǒng)了
          前面的文章講述過(guò),沒(méi)有根文件系統(tǒng)的Linux是無(wú)法正常工作的,還需要根文件系統(tǒng)。所以需要下載使用busybox軟件來(lái)實(shí)現(xiàn)制作根文件系統(tǒng)。
          再根據(jù)自己的應(yīng)用需要來(lái)添加其他程序,默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需求(因?yàn)樗械那度胧介_(kāi)發(fā)都是自由定制的),所以就要修改根文件系統(tǒng)中的啟動(dòng)腳本,它的存放位置至于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動(dòng)掛載文件系統(tǒng)的配置文件/etc/fstab,其實(shí)就是定制自己要開(kāi)機(jī)啟動(dòng)的程序,具體情況會(huì)隨著系統(tǒng)的不同而不同,根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs、genromfs等工具產(chǎn)生少些映像文件。記得這一步要看好,別為了省時(shí)間寫(xiě)錯(cuò)。
          弄好上面那么接下來(lái)就簡(jiǎn)單了就是建立應(yīng)用程序的Flash磁盤(pán)分區(qū)
          一般會(huì)使用jffs2或者YAFF文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用NOR FLASH,有的系統(tǒng)使用NAND FLASH,也有的系統(tǒng)兩種flash都使用,到時(shí)候就看具體情況了。
          3、開(kāi)發(fā)應(yīng)用程序
          應(yīng)用程序可以放到根文件系統(tǒng)中,也可以放到y(tǒng)affs、jffs2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,就是類(lèi)似于uCOS-II的方式。
          其實(shí),上面的那些步驟也就是為了這一步,在這里你要注意他有三種呈現(xiàn)方式:
          (1)直接講應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,類(lèi)似與uCOS-II的方式
          (2)基于qt等GUI開(kāi)發(fā)應(yīng)用程序
          (3)沒(méi)有屏幕,只有簡(jiǎn)單的人機(jī)接口,比如串口,按鍵,數(shù)碼管,這種也能實(shí)現(xiàn)復(fù)雜功能開(kāi)發(fā)
          現(xiàn)在就是對(duì)燒寫(xiě)內(nèi)核、根文件系統(tǒng)、應(yīng)用程序的加載了(其實(shí)差不多也就完了)
          無(wú)論怎么加載,模塊也好,所有的這些開(kāi)發(fā),過(guò)程資料,都是要燒寫(xiě)到flash中的,然后應(yīng)用程序需要什么,就加載對(duì)應(yīng)的功能程序即可。
          4、發(fā)布產(chǎn)品
          開(kāi)發(fā)一款中高型的控制器設(shè)備,功能比較復(fù)雜,甚至需要復(fù)雜的屏幕交互,比如手機(jī)(安卓是linux的親兒子,OS是linux的親表弟),取款機(jī),服務(wù)器交易系統(tǒng),那么linux就非常合適了。
          開(kāi)發(fā)一款小型控制器設(shè)備,如果功能不太復(fù)雜,可以使用稍微的CPU,裸機(jī)或者ucos等來(lái)開(kāi)發(fā),也很方便,也能做很多定制版的工業(yè)小型控制器。

          嵌入式linux開(kāi)發(fā)流程差不多就是這樣了,在學(xué)習(xí)時(shí)一步一步來(lái),就不會(huì)出錯(cuò),大牛說(shuō)的這些都學(xué)習(xí)到了嗎,掌握這些方法,嵌入式linux開(kāi)發(fā)流程就不是事兒。


      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 久热这里只精品国产8 | 强奷乱码中文字幕熟女网 | 亚洲国产第50页精品 | 曰韩精品视频一区二区 | 亚洲成年轻人天堂久久 | 外国福利在线观看入口 |