91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

i.MX6ULL開(kāi)發(fā)板-Buildroot制作交叉編譯器

武漢萬(wàn)象奧科 ? 2021-12-29 19:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

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



poYBAGHJb9-AGJjfAAFp4I2KTKg619.jpg



1. Buildroot制作交叉編譯器


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


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

接下來(lái)我們將介紹如何使用 buildroot 來(lái)制作交叉編譯器,同時(shí)生成一個(gè)開(kāi)發(fā)板可以使用的根文件系統(tǒng)。需要注意的是,因?yàn)?Linux 內(nèi)核 和 u-boot 今后需要自己針對(duì)開(kāi)發(fā)板做移植修改,所以這里將不編譯 Linux內(nèi)核 和 u-boot 程序。


1.1Buildroot 介紹


Buildroot 官網(wǎng)首頁(yè)對(duì)buildroot的定義,和特點(diǎn)有非常明確的介紹: h ttps://buildroot.org/ 。

buildroot的宗旨為了讓嵌入式linux開(kāi)發(fā)更容易;

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

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

支持豐富的package資源,構(gòu)建你需要的rootfs;



pYYBAGHMKseAWOSXAADuskfvqvI095.jpg



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


poYBAGHMKseAJVNeAACELMj4FbY85.jpeg



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

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

補(bǔ)?。横槍?duì)缺陷修復(fù)和增加的功能應(yīng)用補(bǔ)丁配置:根據(jù)環(huán)境準(zhǔn)備構(gòu)建過(guò)程

安裝:復(fù)制二進(jìn)制和輔助文件到它們的目標(biāo)目錄

打包:為在其它系統(tǒng)上安裝而打包二進(jìn)制和輔助文件

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


1.2Buildroot 配置

在 buildroot 源碼路徑下,有很多參考的示例配置,其中就包含有 imx6ullevk 的參考配置。我們沒(méi)有必要所有的選項(xiàng)都自己從0開(kāi)始配置,接下來(lái)我們將在它的基礎(chǔ)上來(lái)修改。


poYBAGHMKseAYt6ZAAAx0EBlDKQ22.jpeg


如果是使用 SecureCRT 遠(yuǎn)程登錄到Linux服務(wù)器上操作的話,需要 export TERM=vt100 命令配置TERM 環(huán)境變量,否則接下來(lái)的配置可能不能輸入。接下來(lái)再執(zhí)行 make menuconfig 對(duì)交叉編譯器制作進(jìn)行配置。


pYYBAGHMKseAUbWeAAAry5PTCDs92.jpeg


下面是 Buildroot 的配置界面,接下來(lái)我們將對(duì)齊進(jìn)行配置。在配置的過(guò)程中:

使用 上、下鍵 選擇菜單;

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    技術(shù)分享 | RK3506如何交叉編譯frp wireguard

    之前,我們需要搭建交叉編譯環(huán)境,需要將我司提供的交叉編譯器拷貝至ubuntu中并解壓,完成后如下圖所示:交叉
    的頭像 發(fā)表于 12-25 17:29 ?590次閱讀
    技術(shù)分享 | RK3506如何<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>frp wireguard

    FRDM-i.MX 91開(kāi)發(fā)板刷機(jī)指南

    FRDM-i.MX 91開(kāi)發(fā)板刷機(jī)指南 在電子開(kāi)發(fā)領(lǐng)域,開(kāi)發(fā)板的刷機(jī)操作是一項(xiàng)基礎(chǔ)且關(guān)鍵的技能。今天,我們就來(lái)詳細(xì)探討NXP的FRDM-i.MX
    的頭像 發(fā)表于 12-24 11:30 ?702次閱讀

    既要穩(wěn)定性,還要性價(jià)比的工業(yè)級(jí)開(kāi)發(fā)板 — 米爾i.MX91

    之前我介紹過(guò)NXPi.MX8系列的開(kāi)發(fā)板,最近它的下一代產(chǎn)品i.MX9系列產(chǎn)品也有了,我就拿到了這個(gè)基于NXPi.MX9系列的米爾MYD-LMX91
    的頭像 發(fā)表于 11-20 08:05 ?2077次閱讀
    既要穩(wěn)定性,還要性價(jià)比的工業(yè)級(jí)<b class='flag-5'>開(kāi)發(fā)板</b> — 米爾<b class='flag-5'>i.MX</b>91

    簡(jiǎn)單認(rèn)識(shí)NXP FRDM i.MX 93開(kāi)發(fā)板

    FRDM i.MX 93開(kāi)發(fā)板是一款入門(mén)級(jí)、緊湊型開(kāi)發(fā)板,采用i.MX93應(yīng)用處理。該配備板
    的頭像 發(fā)表于 11-17 09:45 ?1368次閱讀
    簡(jiǎn)單認(rèn)識(shí)NXP FRDM <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開(kāi)發(fā)板</b>

    RK3506開(kāi)發(fā)板QT Creator開(kāi)發(fā)手冊(cè),交叉編譯工具鏈與QT應(yīng)用示例,入門(mén)必備

    本文基于觸覺(jué)智能RK3506核心/開(kāi)發(fā)板介紹QTCreator交叉編譯配置與QT應(yīng)用示例。如需購(gòu)買開(kāi)發(fā)板進(jìn)行評(píng)估驗(yàn)證簡(jiǎn)介QTCreator
    的頭像 發(fā)表于 09-30 16:26 ?3684次閱讀
    RK3506<b class='flag-5'>開(kāi)發(fā)板</b>QT Creator<b class='flag-5'>開(kāi)發(fā)</b>手冊(cè),<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>工具鏈與QT應(yīng)用示例,入門(mén)必備

    RK3568開(kāi)發(fā)板暗藏32位兼容開(kāi)關(guān)?飛凌嵌入式帶你一鍵解鎖!

    RK3568是一款64位處理,飛凌嵌入式為其提供的交叉編譯器也是64位的,然而部分用戶可能需要在RK3568開(kāi)發(fā)板上運(yùn)行32位應(yīng)用。本文將詳細(xì)闡述如何使用32位
    的頭像 發(fā)表于 07-19 08:49 ?4398次閱讀
    RK3568<b class='flag-5'>開(kāi)發(fā)板</b>暗藏32位兼容開(kāi)關(guān)?飛凌嵌入式帶你一鍵解鎖!

    瑞芯微RK3506 vs NXP i.MX6ULL

    NXPi.MX6ULL核心進(jìn)行多方面對(duì)比。性能與能效對(duì)比性能優(yōu)勢(shì)對(duì)比:RK3506在接口方面比i.MX6ULL少2個(gè)UART,其他性能方面,RK3506以三核A7(1.
    的頭像 發(fā)表于 06-19 16:26 ?1248次閱讀
    瑞芯微RK3506 vs NXP <b class='flag-5'>i.MX6ULL</b>

    迅為RK3562開(kāi)發(fā)板Buildroot系統(tǒng)功能測(cè)試

    迅為RK3562開(kāi)發(fā)板Buildroot系統(tǒng)功能測(cè)試
    的頭像 發(fā)表于 06-13 13:46 ?2078次閱讀
    迅為RK3562<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>Buildroot</b>系統(tǒng)功能測(cè)試

    NXP i.MX 91開(kāi)發(fā)板#支持快速創(chuàng)建基于Linux?的邊緣器件

    NXP Semiconductors FRDM i.MX 91開(kāi)發(fā)板設(shè)計(jì)用于評(píng)估i.MX 91應(yīng)用處理,支持快速創(chuàng)建基于Linux ^?^ 的邊緣器件。該
    的頭像 發(fā)表于 05-19 10:55 ?2884次閱讀
    NXP <b class='flag-5'>i.MX</b> 91<b class='flag-5'>開(kāi)發(fā)板</b>#支持快速創(chuàng)建基于Linux?的邊緣器件

    迅為RK3568開(kāi)發(fā)板內(nèi)核模塊實(shí)現(xiàn)-設(shè)置交叉編譯器

    1 下載網(wǎng)盤(pán)資料下的交叉編譯器,網(wǎng)盤(pán)路徑為:“iTOP-3568 開(kāi)發(fā)板\\\\03_【iTOP-RK3568 開(kāi) 發(fā)】指南教程\\\\02_Linux 驅(qū)動(dòng)配套資料\\\\03_
    發(fā)表于 04-21 16:45

    如何在i.MX6ULL睡眠時(shí)停止刷新LCD?

    為了更好的 EMC,我們需要在 i.MX6ULL 進(jìn)入睡眠狀態(tài)時(shí)停止 LCD 刷新。 能否實(shí)現(xiàn) ? 平臺(tái): i.MX6ULL 系統(tǒng): Linux
    發(fā)表于 04-03 07:14

    如何維護(hù)i.MX6ULL的安全內(nèi)核?

    隨著即將出臺(tái)的 EU RED 3(3)def 和 EN 18031 法規(guī),修復(fù)已知的漏洞至關(guān)重要。對(duì)于基于 i.MX 6ULL 的系統(tǒng),在實(shí)踐中如何做到這一點(diǎn)? 我們目前
    發(fā)表于 04-01 08:28

    如何在i.MX6ULL定制上啟用IO Expander PCA6416A的控制?

    我想知道如何在 i.MX6ULL 定制上啟用 IO Expander PCA6416A 的控制。 我嘗試修改 imx6ul-14x14-evk.dtsi,將 pca6416 節(jié)點(diǎn)添加到 i
    發(fā)表于 03-26 07:10

    NXP基于i.MX 91應(yīng)用處理打造的FRDM i.MX 91開(kāi)發(fā)板特性參數(shù)詳解

    FRDM i.MX 91開(kāi)發(fā)板。該開(kāi)發(fā)板基于i.MX 91應(yīng)用處理打造,專為加速工業(yè)與物聯(lián)網(wǎng)的開(kāi)發(fā)
    的頭像 發(fā)表于 03-21 09:37 ?17.2w次閱讀
    NXP基于<b class='flag-5'>i.MX</b> 91應(yīng)用處理<b class='flag-5'>器</b>打造的FRDM <b class='flag-5'>i.MX</b> 91<b class='flag-5'>開(kāi)發(fā)板</b>特性參數(shù)詳解

    NXP入門(mén)級(jí)Linux應(yīng)用開(kāi)發(fā)板,F(xiàn)RDM i.MX 91詳解

    FRDM平臺(tái)新品發(fā)布 FRDM i.MX 91開(kāi)發(fā)板是一款低成本、體積小巧的開(kāi)發(fā)板,集成了恩智浦i.MX 91應(yīng)用處理和IW610 Wi-
    的頭像 發(fā)表于 03-14 09:43 ?3749次閱讀
    NXP入門(mén)級(jí)Linux應(yīng)用<b class='flag-5'>開(kāi)發(fā)板</b>,F(xiàn)RDM <b class='flag-5'>i.MX</b> 91詳解