1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        初識(shí)Buildroot

        共 2806字,需瀏覽 6分鐘

         ·

        2021-07-19 01:26

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

        作者:xixihaha331


        什么是buildroot

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

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

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

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

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

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

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

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

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

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

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

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

        buildroot工作原理

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

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

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

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



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

        在Buildroot論壇中,了解到關(guān)于STM32F4系列芯片運(yùn)行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





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


        很高興認(rèn)識(shí)每一個(gè)對(duì)技術(shù)努力,對(duì)人用心的朋友。


        瀏覽 117
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人做爰黄AA片免费看三区 | 男男囗交chinese | 91无码粉嫩小泬无套在线观看 | 美女啪啪视频 | 免费淫乱视频 | 国产性自拍| 女生100%无遮挡 | 黄色一级肏逼视频 | 中国av少妇 | 北条麻妃的69XX在线播放 |