<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          初識Buildroot

          共 2806字,需瀏覽 6分鐘

           ·

          2021-07-19 01:26

          轉(zhuǎn)自CSDN ,記錄是為了作者小編學(xué)習(xí)需要

          作者:xixihaha331


          什么是buildroot

          Buildroot是Linux平臺上一個構(gòu)建嵌入式Linux系統(tǒng)的框架。整個Buildroot是由Makefile腳本和Kconfig配置文件構(gòu)成的。你可以和編譯Linux內(nèi)核一樣,通過buildroot配置,menuconfig修改,編譯出一個完整的可以直接燒寫到機器上運行的Linux系統(tǒng)軟件(包含boot、kernel、rootfs以及rootfs中的各種庫和應(yīng)用程序)。

          buildroot目錄結(jié)構(gòu)

          1.buildroot/package/下面放著應(yīng)用軟件的配置文件,每個應(yīng)用軟件的配置文件有Config.in和soft_name.mk其中soft_name.mk(這種其實就Makefile腳本的自動構(gòu)建腳本)文件可以去下載應(yīng)用軟件的包。 

          2.buildroot/output/是編譯出來的輸出文件夾,里面的build/目錄存放著解壓后的各種軟件包編譯完后的現(xiàn)場。host/目錄放著制作好的編譯工具鏈,target/ 目錄是用來制作rootfs的,里面放著Linux系統(tǒng)基本的目錄結(jié)構(gòu),以及各種編譯好的應(yīng)用庫和bin可執(zhí)行文件。Images/目錄下就是最終生成的可燒寫到板子上的各種image。 

          3.buildroot/dl存放下載的源碼包及應(yīng)用軟件的壓縮包 

          4.buildroot/fs放各種文件系統(tǒng)的源代碼 

          5.buildroot/fs/skeleton放生成文件系統(tǒng)鏡像的地方,及板子里面的系統(tǒng) 

          6.buildroot/linux/ 存放著Linux kernel的自動構(gòu)建腳本。 

          7.buildroot/configs放置開發(fā)板的一些配置參數(shù)。

          8.buildroot/dl/目錄存在從官網(wǎng)上下載的開源軟件包,第一次下載后,下次就不會再去從官網(wǎng)下載了,而是從dl/目錄下拿開源包,以節(jié)約時間。 

          9.buildroot/docs/ 存放相關(guān)的參考文檔。

           
          10.buildroot/arch/ 目錄存放CPU架構(gòu)相關(guān)的配置腳本,如arm/mips/x86 ,這些CPU相關(guān)的配置,在制作工具鏈,編譯boot和內(nèi)核時很關(guān)鍵。

          buildroot工作原理

          Buildroot原則上是一個自動構(gòu)建框架,雖然說u-boot、linux kernel這些經(jīng)典的開源軟件包的構(gòu)建腳本,官方社區(qū)都在幫你實現(xiàn)了,但是有時候你還是需要加入你自己特有的app_pkg軟件包,用以構(gòu)建自己的應(yīng)用。 

          Buildroot提供了函數(shù)框架和變量命令框架(下一篇文章將介紹細節(jié)),采用它的框架編寫的app_pkg.mk這種Makefile格式的自動構(gòu)建腳本,將被package/pkg-generic.mk 這個核心腳本展開填充到buildroot主目錄下的Makefile中去。最后make all執(zhí)行Buildroot主目錄下的Makefile,生成你想要的image。

          package/pkg-generic.mk中通過調(diào)用同目錄下的pkg-download.mk、pkg-utils.mk文件,已經(jīng)幫你自動實現(xiàn)了下載、解壓、依賴包下載編譯等一系列機械化的流程。你只要需要按照格式寫Makefile腳app_pkg.mk,填充下載地址,鏈接依賴庫的名字等一些特有的構(gòu)建細節(jié)即可。

          總而言之,Buildroot本身提供構(gòu)建流程的框架,開發(fā)者按照格式寫腳本,提供必要的構(gòu)建細節(jié),配置整個系統(tǒng),最后自動構(gòu)建出你的系統(tǒng)。 



          buildroot/packages里面有豐富的應(yīng)用軟件的配置文件,可以通過make menuconfig,出現(xiàn)圖形化界面進行選擇豐富的開源軟件包的編譯和構(gòu)建。

          在Buildroot論壇中,了解到關(guān)于STM32F4系列芯片運行Nuttx系統(tǒng)的相關(guān)介紹:

          In case anyone is interested....


          I modified buildroot to create a distribution for the STM32F4 processor. (It should be fairly portable to different Cortex-M processors though, the STM32F4 is the only one I've tested so far). 

          So far it:


          Builds the toolchain

          Builds a modified Nuttx RTOS

          Builds the icsp tools for programming and debugging (openocd/gdb) 

          It also integrates the filesystem buildroot generates into the Nuttx kernel so it shows up in Nuttx's filesystem. 

          It still has a ways to go, but right now it builds everything and works on my hardware. 

          So far I've tested it on hardware I built, and on the STM32F407 discovery board with the attached baseboard. 

          You can find instructions here 


          http://www.vxmdesign.com/STM32.html


          The git repo is 


          https://github.com/vxmdesign/prjpluto.git 


          and vdsc_defconfig is the config for the discovery board. 

          Happy programming!

          -Chris





          感謝完成閱讀,我是喜歡打籃球的寫代碼的籃球球癡,這個是我的公眾號,感謝你關(guān)注并支持。我從大學(xué)開始接觸電子和嵌入式軟件知識,至今,已經(jīng)畢業(yè)工作了9年,我喜歡嵌入式,也愿意從事這個行業(yè)。不管是從技術(shù)還是職場經(jīng)驗,都積累了足夠多的經(jīng)驗,目前在一個非常優(yōu)秀的團隊中做開發(fā)工作。


          很高興認識每一個對技術(shù)努力,對人用心的朋友。


          瀏覽 117
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操操网继续操用力豆花 | 人人操人人爽 | 无码区精品区一区二区三区 | 四虎永久www成人影院 | 高清无码成人电影 |