日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初识Buildroot

發(fā)布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识Buildroot 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

作者:xixihaha331

什么是buildroot

Buildroot是Linux平臺上一個構(gòu)建嵌入式Linux系統(tǒng)的框架。整個Buildroot是由Makefile腳本和Kconfig配置文件構(gòu)成的。你可以和編譯Linux內(nèi)核一樣,通過buildroot配置,menuconfig修改,編譯出一個完整的可以直接燒寫到機(jī)器上運行的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ù)框架和變量命令框架(下一篇文章將介紹細(xì)節(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)了下載、解壓、依賴包下載編譯等一系列機(jī)械化的流程。你只要需要按照格式寫Makefile腳app_pkg.mk,填充下載地址,鏈接依賴庫的名字等一些特有的構(gòu)建細(xì)節(jié)即可。

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



buildroot/packages里面有豐富的應(yīng)用軟件的配置文件,可以通過make menuconfig,出現(xiàn)圖形化界面進(jì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)秀的團(tuán)隊中做開發(fā)工作。

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

總結(jié)

以上是生活随笔為你收集整理的初识Buildroot的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。