正點原子[第三期]Arm(iMX6U)Linux系統移植和根文件系統構建-5.3 xxx_defconfig過程

前言:

本文是根據嗶哩嗶哩網站上“arm(iMX6U)Linux系統移植和根文件系統構鍵篇”視頻的學習筆記,在這里會記錄下正點原子 I.MX6ULL 開發板的配套視頻教程所作的實驗和學習筆記內容。本文大量引用了正點原子教學視頻和鏈接中的內容。

引用:

正點原子IMX6U倉庫 (GuangzhouXingyi) - Gitee.com

《【正點原子】I.MX6U嵌入式Linux驅動開發指南V1.5.2.pdf》

正點原子資料下載中心 — 正點原子資料下載中心 1.0.0 文檔

正點原子imx6ull-mini-Linux驅動之Linux I2C 驅動實驗(21)-CSDN博客

正文:

本文是 “Arm(iMX6U)Linux系統移植和根文件系統構鍵篇--5.3講u-boot頂層Makefile里 xxx_defconfig的執行過程分析實驗。本節將參考正點原子的視頻教程和配套的正點原子開發指南文檔進行學習。

0. 概述

1.U-boot頂層Makefile里?xxx_defconfig的執行過程

1.1 u-boot編譯步驟

編譯u-boot時三個步驟

make ARCH=arm distclean

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-? xxx_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j 8

第一條命令 'make distclean' 清理所有的上一次編譯生成中間文件,把項目目錄清理干凈。

第二條命令 'make xxx_defconfig' ,針對開發板硬件型號進行配置,例如,配置指令集,配置cpu型號,配置開發板,配置開發板外圍硬件等,最后在 u-boot目錄下生成 '.config' 配置文件。

第三條命令‘make -j 8' 指定使用多個8線程編譯出uboot,這一步編譯u-boot的時引用上面生成的 ".config" 配置文件,根據配置來編譯源碼。

正點原子的本視頻小節,通過 u-boot/ 目錄下的頂層Makefile文件

u-boot/Makefile

來分析編譯時的第二條命令生成配置文件 'xxx_deconfig' 的執行過程。?

make xxx_defconfig

?1.2 u-boot 頂層Makefile執行 xxx_deconfig 過程

在u-boot頂層Makefile(u-boot/Makefile,以下提到uboot頂層Makefile都是指這一個文件)中有如下的 Target,使用makefile語法中的通配符 "%","%config" 目標匹配所有的 ’make xxxconfig' 的make命令。

%config:?

使用Makefile語法中的通配符 "%", "%config"匹配了所有的 "xxxconfig"的make編譯目標,當然我們執行的 'make xxx_defconfig‘ 編譯目標也匹配 uboot頂層Makefile中的這一個目標target,執行uboot頂層makefile里的依賴關系和編譯命令。

config: scripts_basic outputmakefile FORCE$(Q)$(MAKE) $(build)=scripts/kconfig $@%config: scripts_basic outputmakefile FORCE$(Q)$(MAKE) $(build)=scripts/kconfig $@

從uboot頂層Makefile看到,執行 "xxx_defconfig"命令時,"xxx_defconfig"目標依賴于兩個前置依賴,”scripts_basic"和"outputmakefile"。(FORCE是makefile的一個慣常的使用方法,使用FORCE表明依賴于FORCE的目標在makef中總是執行。)

config: scripts_basic outputmakefile FORCE

?接下來分析一下?”scripts_basic"和"outputmakefile" 在 uboot頂層makefile的執行過程,

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70658.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++初階——簡單實現list

目錄 1、前言 2、List.h 3、Test.cpp 1、前言 1. 簡單實現std::list,重點:迭代器,模板類,運算符重載。 2. 并不是,所有的類,都需要深拷貝,像迭代器類模板,只是用別的類的資源&am…

conda環境中運行“python --version“所得的版本與環境中的python版本不一致----deepseek并非全能

conda環境中運行python —version所得python版本與conda環境中的python版本不一致------deepseek并非全能 問題 conda環境中運行python —version所得python版本與conda環境中的python版本不一致 我所做的探索 1 網頁搜索 2 求助于DeepSeek 可以用四個字來形容deepseek給出…

HarmonyOS學習第5天: Hello World的誕生之旅

鴻蒙初印象:開啟探索之門 在操作系統的廣袤天地中,HarmonyOS(鴻蒙系統)宛如一顆冉冉升起的新星,自誕生起便備受矚目。它由華為傾力打造,是一款基于微內核的全場景分布式操作系統,以其獨特的技術…

centos9安裝k8s集群

以下是基于CentOS Stream 9的Kubernetes 1.28.2完整安裝流程(containerd版): 一、系統初始化(所有節點執行) # 關閉防火墻 systemctl disable --now firewalld# 關閉SELinux sed -i "s/SELINUXenforcing/SELINU…

CIG容器重量級監控系統

1.介紹 CAdvisorinfluxDBGranfana docker 原生命令 監控docker容器狀態 docker stats 2.CAdvicsor 3.InfluxDB 4.Granafana 5.搭建 volumes:grafana_data: services:influxdb:image: tutum/influxdbrestart: alwaysenvironment:- PRE_CREATE_DBcadvisorports:- "8083…

REACT學習DAY02(恨連接不上服務器)

受控表單綁定 概念&#xff1a;使用React組件的狀態&#xff08;useState&#xff09;控制表單的狀態 1. 準備一個React狀態值 const [value,setValue] useState() 2. 通過value屬性綁定狀態&#xff0c;通過onChange屬性綁定狀態同步的函數 <input type"text&quo…

python——GUI圖形用戶界面編程

GUI簡介 我們前面實現的都是基于控制臺的程序&#xff0c;程序和用戶的交互通過控制臺來完成 本章&#xff0c;我們來學習GUI圖形用戶界面編程&#xff0c;我們可以通過python提供的豐富的組件&#xff0c;快速的視線使用圖形界面和用戶交互 GUI變成類似于“搭積木”&#x…

DeepSeek 助力 Vue 開發:打造絲滑的單選按鈕(Radio Button)

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄 Deep…

美顏相機1.0

項目開發步驟 1 界面開發 美顏相機界面構成&#xff1a; 標題 尺寸 關閉方式 位置 可視化 2 創建主函數調用界面方法 3 添加兩個面板 一個是按鈕面板一個是圖片面板 用JPanel 4 添加按鈕到按鈕面吧【注意&#xff1a;此時要用初始化按鈕面板的方法initBtnPanel 并且將按鈕添…

openharmony中hdf框架的驅動消息機制的實現原理

openharmony中hdf框架的驅動消息機制的實現原理 在分析hdf框架時發現繞來繞去的&#xff0c;整體梳理畫了一遍流程圖&#xff0c;發現還是有點模糊甚至不清楚如何使用的&#xff0c;詳細的每個點都去剖析細節又過于消耗時間&#xff0c;所以有時間便從功能應用的角度一塊塊的去…

leaflet實現歷史軌跡播放效果

效果圖如下&#xff1a; 效果實現&#xff1a; 1、添加完整軌跡線&#xff0c;藍色的 this.echoLine L.polyline(points, { weight: 8 }).addTo(this.map) 2、添加實時軌跡線&#xff0c;初始狀態置空 this.realEchoLine L.polyline([], { weight: 12, color: "#FF9…

JAVAEE一>Spring IoC和DI詳解

目錄 Spring容器說明&#xff1a;Ioc容器優勢&#xff1a;DI介紹&#xff1a;從Spring獲取對象&#xff1a;獲取對象的方法&#xff1a;關于上下文的概念&#xff1a; Controller注解&#xff08;控制層&#xff1a;接收參數并響應&#xff09;&#xff1a;Service注解&#xf…

(四)趣學設計模式 之 原型模式!

目錄 一、 啥是原型模式&#xff1f;二、 為什么要用原型模式&#xff1f;三、 原型模式怎么實現&#xff1f;四、 原型模式的應用場景五、 原型模式的優點和缺點六、 總結 &#x1f31f;我的其他文章也講解的比較有趣&#x1f601;&#xff0c;如果喜歡博主的講解方式&#xf…

完美解決:.vmx 配置文件是由 VMware 產品創建,但該產品與此版 VMware Workstation 不兼容

參考文章&#xff1a;該產品與此版 VMware Workstation 不兼容&#xff0c;因此無法使用 問題描述 當嘗試使用 VMware Workstation 打開別人的虛擬機時&#xff0c;可能會遇到以下報錯&#xff1a; 此問題常見于以下場景&#xff1a; 從其他 VMware 版本&#xff08;如 ESX…

Linux——安裝Git的方法

安裝Git的命令&#xff1a; yum -y install git查看Git的版本&#xff1a; git --version

編程小白沖Kaggle每日打卡(13)--kaggle學堂:<機器學習簡介>基礎數據探索

Kaggle官方課程鏈接&#xff1a;Basic Data Exploration 本專欄旨在Kaggle官方課程的漢化&#xff0c;讓大家更方便地看懂。 Basic Data Exploration 加載并理解您的數據。 使用Pandas熟悉您的數據 任何機器學習項目的第一步都是熟悉數據。您將使用Pandas庫進行此操作。Pand…

從零開始的網站搭建(以照片/文本/視頻信息通信網站為例)

本文面向已經有一些編程基礎&#xff08;會至少一門編程語言&#xff0c;比如python&#xff09;&#xff0c;但是沒有搭建過web應用的人群&#xff0c;會寫得盡量細致。重點介紹流程和部署云端的步驟&#xff0c;具體javascript代碼怎么寫之類的&#xff0c;這里不會涉及。 搭…

【Java項目】基于SpringBoot的【高校校園點餐系統】

【Java項目】基于SpringBoot的【高校校園點餐系統】 技術簡介&#xff1a;采用Java技術、MySQL數據庫、B/S結構實現。 系統簡介&#xff1a;高校校園點餐系統是一個面向高校師生的在線點餐平臺&#xff0c;主要分為前臺和后臺兩大模塊。前臺功能模塊包括&#xff08;1&#xff…

Django check_password原理

check_password 是 Django 提供的一個用于密碼校驗的函數&#xff0c;它的工作原理是基于密碼哈希算法的特性。 Django 的 make_password 函數在生成密碼哈希時&#xff0c;會使用一個隨機的 salt&#xff08;鹽值&#xff09;。這個 salt 會與密碼一起進行哈希運算&#xff0…

Vulnhun靶機-kioptix level 4-sql注入萬能密碼拿到權限ssh連接利用mysql-udf漏洞提權

目錄 一、環境搭建信息收集掃描ip掃描開放端口掃描版本服務信息指紋探測目錄掃描 二、Web滲透sql注入 三、提權UDF提權修改權限 一、環境搭建 然后選擇靶機所在文件夾 信息收集 本靶機ip和攻擊機ip 攻擊機&#xff1a;192.168.108.130 靶機&#xff1a;192.168.108.141 掃描…