<output id="yn1pw"></output>
    <wbr id="yn1pw"></wbr>

    <form id="yn1pw"><legend id="yn1pw"></legend></form>

  1. 更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    嵌入式linux開發運行基本流程

    • 發布:嵌入式培訓
    • 來源:嵌入式資訊
    • 時間:2020-06-19 14:31

    在學習嵌入式開發的過程中,尤其是開始入門時,包括各種各樣的教程,都是在講學習linux,很少講如何利用linux來開發屬于自己的嵌入式項目,也就是沒有一個全局的概念,簡單理解,大概流程如下:

    工具/原料:電腦 開發板 網線 串口線 linux系統

    方法/步驟如下:

    一、建立開發環境

    操作系統當然是LInux,或者在win系統下安裝虛擬機,通過網絡下載相應的GCC交叉編譯器進行安裝,或者安裝產品廠家提供的交叉編譯器。這一步,就相當于在win系統下,要安裝一個IDE開發環境,如MDK,IAR等,相信學習這個大家都知道。

    二、配置開發主機

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

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

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

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

    四、移植嵌入式Linux操作系統

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

    五、建立根文件系統

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

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

    六、建立應用程序的Flash磁盤分區

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

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

    七、開發應用程序

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

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

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

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

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

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

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

    版權聲明:轉載文章來自公開網絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯系刪除或授權事宜。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:嵌入式C語言編程小技巧,趕快收藏!
    下一篇:嵌入式linux內核是怎樣編譯出來的?

    單片機:寫1清零,寫0清零,有什么區別?

    嵌入式工程師一定不要亂用全局變量

    嵌入式培訓靠譜嗎?就業怎么樣?

    新手如何學習單片機?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    高清在线不卡一区二区_2019最新国产高清不卡a_亚洲欧洲日本aⅴ 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>