在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

i.MX6ULL開發板-Buildroot制作交叉編譯器

武漢萬象奧科 ? 2021-12-29 19:02 ? 次閱讀

前言

文章基于HD-IMX6ULL-MB 系列開發板測試驗證,該開發板由武漢芯路遙科技有限公司與武漢萬象奧科電子有限公司合作推出。此開發板基于 NXP iMX6ULL 系列 Cortex-A7 高性能處理器設計,適用于快速開發一系列具有創新性的產品如人機界面工業 4.0 掃描儀、車載終端以及便攜式醫療設備。



poYBAGHJb9-AGJjfAAFp4I2KTKg619.jpg



1. Buildroot制作交叉編譯器


在前面我們提到,如果想要自己制作交叉編譯器的話,通常會用到兩個工具,分別是 crosstool-NG Buildroot 。但需要了解的是制作交叉編譯器只是嵌入式開發的第一步,后面我們還需要使用交叉編譯器來移植 bootloader、linux kernel 以及制作根文件系統 rootfs,之后還會用它來交叉編譯各種所需要的應用程序。其中 crosstool-NG 只是制作了一個交叉編譯器,而如果你希望一鍵完成這所有的事情, 則可以使用 Buildroot


如果你是一個嵌入式軟件工程師,那你有必要要知道buildroot是什么。buildroot這個工具除了可以制 作交叉編譯器以外,還提供了一種更加高效的管理方法,它把bootloader,linux,應用程序和rootfs集 成在一起,可以非常方便的去定制,管理,編譯和組裝一個自己需要的,針對自己的設備的一個完整的 軟件系統,這樣我們可以利用buildroot針對自己的嵌入式設備開發完整的BSP和SDK。

接下來我們將介紹如何使用 buildroot 來制作交叉編譯器,同時生成一個開發板可以使用的根文件系統。需要注意的是,因為 Linux 內核 和 u-boot 今后需要自己針對開發板做移植修改,所以這里將不編譯 Linux內核 和 u-boot 程序。


1.1Buildroot 介紹


Buildroot 官網首頁對buildroot的定義,和特點有非常明確的介紹: h ttps://buildroot.org/ 。

buildroot的宗旨為了讓嵌入式linux開發更容易;

管理一切!為嵌入式設備生成交叉編譯工具鏈,文件系統,交叉編譯bootloader和kernel image;

易用!所有配置通過像linux一樣的menuconfig,gconfig和xconfig;

支持豐富的package資源,構建你需要的rootfs;



pYYBAGHMKseAWOSXAADuskfvqvI095.jpg



這里,我們從Buildroot的官方下載地址下載當前的最新長期支持版本 buildroot-2021.02.7 并解壓縮。


poYBAGHMKseAJVNeAACELMj4FbY85.jpeg



整個Buildroot是由Makefile(*.mk)腳本和Kconfig(Config.in)配置文件構成的,因此可以像配置Linux內 核一樣執行make menuconfig進行配置,編譯出一個完整的、可以直接燒寫到機器上運行的Linux系統文件(包含bootloader、kernel、rootfs以及rootfs中的各種庫和應用程序)。而構建開源軟件包的流程, 工作流大致如下:

獲取:獲取源代碼解壓:解壓源代碼

補丁:針對缺陷修復和增加的功能應用補丁配置:根據環境準備構建過程

安裝:復制二進制和輔助文件到它們的目標目錄

打包:為在其它系統上安裝而打包二進制和輔助文件

構建每個軟件包的工作流幾乎是相同的,Buildroot主要就是把這些重復操作自動化,用戶只需勾選上所 需軟件包,便自動完成以上所有操作。其次,U-boot、Linux Kernel的編譯工作流的差不多,只是配置的自定義參數更多,在Buildroot設置好了,也就一并生成。


1.2Buildroot 配置

在 buildroot 源碼路徑下,有很多參考的示例配置,其中就包含有 imx6ullevk 的參考配置。我們沒有必要所有的選項都自己從0開始配置,接下來我們將在它的基礎上來修改。


poYBAGHMKseAYt6ZAAAx0EBlDKQ22.jpeg


如果是使用 SecureCRT 遠程登錄到Linux服務器上操作的話,需要 export TERM=vt100 命令配置TERM 環境變量,否則接下來的配置可能不能輸入。接下來再執行 make menuconfig 對交叉編譯器制作進行配置。


pYYBAGHMKseAUbWeAAAry5PTCDs92.jpeg


下面是 Buildroot 的配置界面,接下來我們將對齊進行配置。在配置的過程中:

使用 上、下鍵 選擇菜單;

使用 Tab選擇底行的 或 < Exit> ;在某個選項上按 h 可以參考該選項的配置幫助信息;使用 空格 選擇或使能某個選項, 也可以使用 y 或 n 使能或取消該選項; 如果是需要輸入配置的選項,按 回車 進入輸入;在 Target options 選項中 ,這里配置了交叉編譯器的體系架構信息。因為我們的開發板所有的處理器i.MX6ULL 是采樣 Cortex-A7架構,帶有 NEON 浮點運算,所以這里做如下的默認配置。在 Build options 選項中 ,這里主要修改一下:($(TOPDIR)/tarballs) Download dir 修改指定源碼包的下載路徑;(/opt/buildroot/cortexA7) Host dir 修改指定交叉編譯器的安裝路徑;libraries (both static and shared) 這里修改選擇使能靜態庫,今后編譯程序或學習過程中可能需要。在 Toolchain 選項中,這里做如下修改:C library 選擇使用 (glibc);Kernel Headers 選擇 (Linux 5.10.x kernel headers);[*] Enable C++ support 該選項選擇支持 C++編譯器,如果想支持其它的語言(Fortran、Dlanguage)也可以選擇;這里的gcc、binutils的版本使用默認的版本System configuration 選項中配置了根文件系統的相關信息,我們做如下修改:(imx6ull) System hostname 設置開發板的主機名,保存在根文件系統樹 /etc/hostname 文件中;(Welcome to LingYun iMX6ULL Board, default password '12345'.) System banner 設置開機提示信息,保存到根文件系統樹 /etc/issue 文件中;/dev management (Dynamic using devtmpfs + mdev) 這里設置設備管理的默認程序,這里使用的是 busybox 里提供的mdev,也可以選擇 udev;(12345) Root password 設置開發板登錄時的 root 賬號默認密碼為 12345;移除 Custom scripts to run after creating filesystem images 里設置的腳本,我們不需要;Kernel 選項主要是Linux內核的編譯配置,今后我們將會自己移植并編譯Linux內核,所以這里不要選擇。Target packages 選項這里有大量的應用程序或開源庫編譯選項,如果想制作到根文件系統樹中的話, 這里可以做相應的選擇。下面是一些建議可以選擇的軟件包:Filesystem images 選項指定生成根文件系統鏡像的類型,因為我們將來將會自己制作系統鏡像,所以這里不需要生成。只需要將根文件系統樹打包并使用 bzip2 壓縮即可。Bootloaders 選項主要是u-boot的編譯配置,今后我們將會自己移植并編譯U-boot,所以這里不要選擇。Host utilities 是在編譯 Buildroot 過程中,X86主機上所依賴的一些工具。可以進去把一些能取消的都取消,從而節省編譯時間;Legacy config options 是一些過期作廢的軟件包,一般都不需要;配置完成之后,選擇 < Exit > 退出并保存該配置,這些配置將會保存在當前路徑下的 .config 隱藏文件里。之后的編譯過程將根據這里面的配置,選擇下載、編譯相關程序或代碼。1.3Buildroot 編譯首先創建交叉編譯器的安裝路徑,注意制作交叉編譯器別用 root 賬號來完成,否則小心破壞自己的Linux系統。接下來我們就開始交叉編譯的編譯制作過程,這個過程的時間依賴PC的性能和所選擇的選項多少。我的Linux服務器處理器是Intel(R) Xeon(R) CPU E31235 @ 3.20GHz,4核8線程,所以我這里使用 make -j8命令用8個進程同時編譯。編譯成功完成之后,輸出如下:編譯過程中 下載的源碼包 將會放到 tarballs 文件夾下:編譯生成的 根文件系統樹 將會放到 output/images/ 文件夾下:編譯生成的 交叉編譯器 將會放到 /opt/buildroot/cortexA7 路徑下:我們可以使用下面命令查看制作好的交叉編譯器相關版本信息:1.4 Buildroot 測試接下來我們使用制作好的交叉編譯器,交叉編譯之前寫好的 hello.c 測試程序,并放到 ARM 開發板上運行測試。需要注意的是因為新制作的交叉編譯器跟開發板上運行的C運行庫版本不一致,這里必須加上 -static 進行靜態鏈接,這樣編譯生成的程序才能在開發板上運行。ARM 開發板上下載運行測試:版權聲明本文檔所有內容文字資料由凌云實驗室郭工編著,主要用于凌云嵌入式Linux教學內部使用,版權歸屬作 者個人所有。任何媒體、網站、或個人未經本人協議授權不得轉載、鏈接、轉帖或以其他方式復制發布/ 發表。已經授權的媒體、網站,在下載使用時必須注明來源,違者本人將依法追究責任。Copyright (C) 2021 凌云物網智科實驗室·郭工

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式開發
    +關注

    關注

    18

    文章

    1035

    瀏覽量

    47670
  • 開發板
    +關注

    關注

    25

    文章

    5121

    瀏覽量

    98036
收藏 人收藏

    評論

    相關推薦

    Triton編譯器與其他編譯器的比較

    的GPU編程框架,使開發者能夠編寫出接近手工優化的高性能GPU內核。 其他編譯器 (如GCC、Clang、MSVC等): 定位:通用編譯器,支持多種編程語言,廣泛應用于各種軟件開發場景
    的頭像 發表于 12-24 17:25 ?463次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    Triton 是一個開源的編譯器前端,它支持多種編程語言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一個可擴展和可定制的編譯器框架,允許開發者添加新的編程語言特性和優化技術
    的頭像 發表于 12-24 17:23 ?584次閱讀

    【迅為電子】i.MX6UL和i.MX6ULL芯片區別與開發板對比

    【迅為電子】i.MX6UL和i.MX6ULL芯片區別與開發板對比
    的頭像 發表于 11-28 14:31 ?550次閱讀
    【迅為電子】<b class='flag-5'>i.MX6</b>UL和<b class='flag-5'>i.MX6ULL</b>芯片區別與<b class='flag-5'>開發板</b>對比

    【新品】i.MX6ULL工業嵌入式核心!NXP低功耗MPU,LCD顯示

    核心新品上市ECK20-6Y2XA系列核心是億佰特基于NXPCortex-A7內核i.MX6ULL處理精心設計的,采用郵票孔連接的低成
    的頭像 發表于 11-15 01:04 ?295次閱讀
    【新品】<b class='flag-5'>i.MX6ULL</b>工業嵌入式核心<b class='flag-5'>板</b>!NXP低功耗MPU,LCD顯示

    i.MX Linux開發實戰指南—基于野火i.MX系列開發板

    電子發燒友網站提供《i.MX Linux開發實戰指南—基于野火i.MX系列開發板.pdf》資料免費下載
    發表于 10-10 17:23 ?11次下載

    在NXP源碼基礎上如何適配ELF 1開發板的UART功能

    UART即通用異步收發,是一種支持全雙工串行通信協議的接口。在i.MX6ULL處理平臺上,該處理原生支持多達8路的UART接口,提供了豐富的串行通信能力。 針對ELF 1
    的頭像 發表于 09-29 11:49 ?417次閱讀
    在NXP源碼基礎上如何適配ELF 1<b class='flag-5'>開發板</b>的UART功能

    ElfBoard技術貼|如何在NXP源碼基礎上適配ELF 1開發板的UART功能

    UART即通用異步收發,是一種支持全雙工串行通信協議的接口。在i.MX6ULL處理平臺上,該處理原生支持多達8路的UART接口,提供了豐富的串行通信能力。 針對ELF 1
    的頭像 發表于 09-25 13:56 ?2410次閱讀
    ElfBoard技術貼|如何在NXP源碼基礎上適配ELF 1<b class='flag-5'>開發板</b>的UART功能

    使用TPS6521815 PMIC為NXP i.MX 6ULL6UltraLite供電

    電子發燒友網站提供《使用TPS6521815 PMIC為NXP i.MX 6ULL6UltraLite供電.pdf》資料免費下載
    發表于 09-13 09:44 ?1次下載
    使用TPS6521815 PMIC為NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>6ULL</b>、<b class='flag-5'>6</b>UltraLite供電

    【北京迅為】iTOP-i.MX6開發板使用手冊第四部分固件編譯第十四章非設備樹Android4.4系統編譯

    【北京迅為】iTOP-i.MX6開發板使用手冊第四部分固件編譯第十四章非設備樹Android4.4系統編譯
    的頭像 發表于 09-12 15:43 ?595次閱讀
    【北京迅為】iTOP-<b class='flag-5'>i.MX6</b><b class='flag-5'>開發板</b>使用手冊第四部分固件<b class='flag-5'>編譯</b>第十四章非設備樹Android4.4系統<b class='flag-5'>編譯</b>

    如何在NXP源碼基礎上適配ELF 1開發板的PWM功能

    本次源碼適配項目是在NXP i.MX6ULL EVK評估所搭載的Linux內核源碼(版本為Linux-imx_4.1.15)基礎上進行的,主要目標是通過調整功能接口引腳配置,使其適應ELF 1開發板。為了深入闡述這一適配過程,
    的頭像 發表于 09-10 10:00 ?976次閱讀
    如何在NXP源碼基礎上適配ELF 1<b class='flag-5'>開發板</b>的PWM功能

    linux開發板如何編譯curl

    準備開發環境 確保你的開發板已經安裝了編譯 curl 所需的工具,包括 gcc 、 make 和可能的其他庫。如果開發板交叉
    的頭像 發表于 08-30 15:33 ?766次閱讀

    米爾NXP i.MX 93開發板的Qt開發指南

    Qt應用開發中,推薦使用QtCreator集成開發環境,可以在LinuxPC下開發Qt應用,自動化地交叉編譯
    的頭像 發表于 06-07 08:01 ?1822次閱讀
    米爾NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發板</b>的Qt<b class='flag-5'>開發</b>指南

    飛凌嵌入式ElfBoard ELF 1板卡-i.MX6ULL交叉編譯freetype字體引擎庫

    freetype。 交叉編譯zlib1、下載源碼https://zlib.net/2、將zlib-1.3.1.tar.gz 拷貝到開發環境/home/elf/work目錄下解壓elf@ubuntu:~/work
    發表于 06-05 11:25

    迅為iTOP-RK3588開發板Buildroot系統功能測試

    迅為iTOP-RK3588開發板Buildroot系統功能測試
    的頭像 發表于 03-14 15:42 ?1518次閱讀
    迅為iTOP-RK3588<b class='flag-5'>開發板</b><b class='flag-5'>Buildroot</b>系統功能測試

    QT開發學習筆記1(安裝交叉編譯器

    QT安裝交叉編譯器
    的頭像 發表于 02-18 10:02 ?1106次閱讀
    QT<b class='flag-5'>開發</b>學習筆記1(安裝<b class='flag-5'>交叉</b><b class='flag-5'>編譯器</b>)
    主站蜘蛛池模板: 国产一区二区播放 | a毛片基地免费全部香蕉 | 丁香综合在线 | 四虎最新网站 | 网站在线观看你懂的 | 午夜传媒| 国产aaaaa一级毛片 | 黄色在线观看国产 | 国产精品电影一区 | 一级在线观看视频 | 色视频网站在线观看 | 黄 色 录像成 人播放免费99网 | videos另类重口tv | 激情久久久久久久久久 | 求网址你懂的手机在线观看网站 | 182tv免费视视频线路一二三 | 久久天天干 | 长腿丝袜美女被啪啪 | 美女被猛男躁免费视频网站 | 国产精品久久久久久久久免费 | 大黄网站色多多 | 国产重口老太和小伙乱视频 | 国产精品三级国语在线看 | 久久99久久精品国产99热 | 天天射日日射 | 黑人一区二区三区中文字幕 | www在线视频观看 | 精品乱码一区二区三区四区 | 国产一级特黄一级毛片 | 成人网男女啪啪免费网站 | 来吧成人综合网 | 美女视频永久黄网站免费观看国产 | 四虎在线最新永久免费播放 | 成人在线亚洲 | 午夜高清在线观看免费6 | 91中文字幕在线视频 | 天天爱天天操天天射 | 成人av电影在线 | 韩国三级hd中文字幕久久精品 | 欧美人与动性行为网站免费 | www在线视频在线播放 |