Linux驅動開發--uboot(1)

0.前言

? ? ? ? 先推薦一部電影《美國派》三部曲,成長題材系列的電影,也反映了對某避諱話題的理性看待,理所當然。

????????再推薦一個開發套件,NVIDIA Jetson系列開發套件,目前我在用的是Xavier NX和Orin Nano。為什么推薦呢?對于初入Linux的來說,其實大可不必,但是最近意識到什么?對在校學生,購買一套此套件,畢設優秀不得非你莫屬。首先是足夠的資源,其次是強大的功能,再者也是你大學期間好好學習的(能讓你感興趣)又吸引的東西。前兩天看一片文章有外國工程師用Orin Nano做出來了鋼鐵俠的頭盔賈維斯,太酷了伙計。。。So。。。

? ? ? ? 之前就表達過Linux驅動是跑不掉的,剛好我也有此意,職業向此發展?大概吧。


1. uboot

1.1 介紹

? ? ? ? 不過多廢話,首先要知道啟動Linux的三大件吧——內核鏡像Image,設備樹dtb,文件系統rootfs。那么總要有東西來引導這三個玩意啟動起來,所謂的引導程序BootLoader,這個分很多,常用的就是uboot。不過多講。其實uboot之前還有東西(TF-A),簡單理解就是引導uboot?差不多這個意思。

1.2自編uboot

? ? ? ? 為什么要自己編譯uboot,對于我們學習階段,這個是沒什么用的,編譯一次能使用,引導起來內核,設備樹就行,那為什么要學編譯呢?對于工作或者說產品要用到。比如,我現在使用的是TI的AM625X這款MPU,那么我在實際做產品的時候不可能說直接買來這個小芯片就來用,一般都是先購買或者申請TI官方的評估板(這里插一句,上學的時候不知道,很多資源可以申請到,比如TI的SK-AM62這款套件就可以向高校開放,希望在校的學生看到可以嘗試申請玩一玩)。拿到手里的評估板,我們會根據自己產品的需求做開發,一切先在評估板做,OK,做完后沒有問題,滿足我們的要求,采購芯片,自己設計硬件。

????????這大概是一個產品出來的過程。這里就牽扯到三個uboot,首先是最初的uboot,也就是uboot官方的,其次是半導體廠商,比如這里TI會根據評估板修改官方uboot做出來屬于此款評估板的uboot,俗稱是半導體廠商的uboot。最后,自己的產品,自己的硬件,這里我們一般硬件設計是參考評估板做開發,于是uboot參考半導體廠商的uboot修改,添加自己的某些信息。綜上,大家大致了解一下。


2.編譯

? ? ? ? 以下總結與《正點原子——stm32mp157驅動開發指南》。

Ubuntu安裝庫

sudo apt-get install libncurses5-dev bison flex

交叉編譯等等。

步驟:

  1. ? ? ? ? 獲取ST官方uboot。
  2. ? ? ? ? 解壓,打補丁。
  3. ? ? ? ? 編譯官方uboot。

? ? ? ? 編譯好后燒錄,會出現問題。什么問題?啟動可以,但是會運行出錯,因為這是ST官方的uboot,是對應他們的評估板,我們使用的是正點原子的,是參考評估板進行了改動,比如ST 官方開發板使用了電源管理芯片 STPMIC1A,所以 uboot 運行的時候會初始化這個 PMIC 芯片,但是正點原子開發板并沒有使用這個 PMIC 芯片,所以無法正常運行。要修改uboot。

????????接下來就是一步步的修改 uboot,至到其正常工作,也就是所謂的 uboot 移植

? ? ? ? 后續更新。。。


3.總結

? ? ? ? 怎么能學好這種Linux,我認為要和那種單片機對比這來。比如這個設備樹,是描述硬件信息的,如果一層一層往下扒,發現最初的東西也是寄存器,不過這些東西出廠已經給好了或者說已經模塊化了,我們所要掌握的是設備樹的語法,引用,添加,修改等等。

? ? ? ? 學習ing。

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

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

相關文章

大數據面試題:Hadoop中的幾個進程和作用

面試題來源: 《大數據面試題 V4.0》 大數據面試題V3.0,523道題,679頁,46w字 可回答:1)啟動Hadoop,都會有什么進程 參考答案: 1)NameNode:Master&#xf…

【ARM 嵌入式 編譯系列 10.2 -- 符號表與可執行程序分離詳細講解】

文章目錄 符號表與可執行程序分離方法一 使用eu-strip方法二 使用 objcopy上篇文章:ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執行文件 elf 文件大小 下篇文章:ARM 嵌入式 編譯系列 10.3 – GNU elfutils 工具小結 符號表與可執行程序分離 接著上篇文章 ARM 嵌入式 編譯…

解決Idea 多模塊,maven項目是多層級文件夾的子項時無法加入git管理的問題

問題 多模塊項目,引入模塊無法做git管理,第一個項目沒有git分支標志,也不能像其他項目一樣右鍵出git選項。 解決方法 發現該模塊是多層級的文件夾結構,也就是項目本身在一個文件夾下。應該是要管理該文件夾。 Settings-Versi…

el-select控制單選還是多選

multiple表示多選&#xff0c;:multiple-limit“1” 限制多選的條數為1&#xff0c;2就是選兩個&#xff0c;依此類推。為0 就是不限制選幾個 使用 allow-create 屬性即可通過在輸入框中輸入文字來創建新的條目。注意此時 filterable 必須為真。 <el-form :inline"true…

【劍指 Offer 40】最小的k個數

題目&#xff1a; 輸入整數數組 arr &#xff0c;找出其中最小的 k 個數。例如&#xff0c;輸入 4、5、1、6、2、7、3、8 這 8 個數字&#xff0c;則最小的 4 個數字是 1、2、3、4。 示例&#xff1a; 輸入&#xff1a;arr [3,2,1], k 2 輸出&#xff1a;[1,2] 或者 [2,1] …

阿里云云主機_ECS云服務器_輕量_GPU_虛擬主機詳解

阿里云云主機分為云虛擬主機、云服務器ECS、輕量應用服務器、GPU云服務器、彈性裸金屬服務器、專有宿主機、FPGA云服務器、高性能計算E-HPC、無影云電腦等&#xff0c;阿里云百科來詳細說下阿里云云主機詳解&#xff1a; 目錄 阿里云云主機 云服務器ECS 輕量應用服務器 云…

我學會這些車載技術,是不是就可以進【小米】車企?

作者&#xff1a;阿刁 隨著智能化和電動化的發展&#xff0c;車載開發領域的前景非常廣闊。許多手機廠商也紛紛加入進來&#xff0c;華為、小米等手機巨頭也相繼推出新能源汽車。所以在未來&#xff0c;車載系統將成為汽車的核心部分&#xff0c;涵蓋車輛的控制、信息娛樂、智能…

安裝paddleSeq2.7.0版本模塊-筆記

安裝paddleSeq2.7.0版本模塊-筆記 先安裝conda和python版本 本機安裝的conda 22.9.0 python2.9.12 paddle2.4.2 paddlepaddle-gpu2.4.2 cuda10.2 安裝matplotlib3.5.0版本 opencv_python-4.5.4.60-cp39-cp39-win_amd64.whl 測試采用分割模型名稱&#xff1a;BiSeNetv2 #BiSe…

Oracle 開發篇+Java調用OJDBC訪問Oracle數據庫

標簽&#xff1a;JAVA語言、Oracle數據庫、Java訪問Oracle數據庫釋義&#xff1a;OJDBC是Oracle公司提供的Java數據庫連接驅動程序 ★ 實驗環境 ※ Oracle 19c ※ OJDBC8 ※ JDK 8 ★ Java代碼案例 package PAC_001; import java.sql.Connection; import java.sql.ResultSet…

背上花里胡哨的書包準備面試之webpack篇(+一些常問的面試題)

目錄 webpack理解&#xff1f; webpack構建流程&#xff1f; loader解決什么問題&#xff1f; plugin解決什么問題&#xff1f; 編寫loader和plugin的思路&#xff1f; webpack熱更新&#xff1f; 如何提高webpack的構建速度&#xff1f; 問git常用命令&#xff1f; ht…

【TensorFlow】P0 Windows GPU 安裝 TensorFlow、CUDA Toolkit、cuDNN

Windows 安裝 TensorFlow、CUDA Toolkit、cuDNN 整體流程概述TensorFlow 與 CUDA ToolkitTensorFlow 是一個基于數據流圖的深度學習框架CUDA 充分利用 NIVIDIA GPU 的計算能力CUDA Toolkit cuDNN 安裝詳細流程整理流程一&#xff1a;安裝 CUDA Toolkit步驟一&#xff1a;獲取CU…

XML 數據傳輸格式

目錄 XML簡介 一、初識XML 1.什么是 XML&#xff1f; 2.XML 和 HTML 之間的差異 3.XML 不會做任何事情 4.通過 XML 您可以發明自己的標簽 5.XML 不是對 HTML 的替代 二、XML 用途 1.XML 把數據從 HTML 分離 2.XML 簡化數據共享 3.XML 簡化數據傳輸 三、XML 樹結構 1.一個 XML 文…

QML HTTP 請求

作者: 一去、二三里 個人微信號: iwaleon 微信公眾號: 高效程序員 在 Web 開發中,實現與服務器的通信至關重要,其中 HTTP 便是最常用的方式之一。它是一種客戶端 - 服務器協議,客戶端向服務器發送請求,服務器則返回響應。常被用于在瀏覽器/客戶端和 Web 服務器之間傳輸消…

mysql執行計劃—— explain

使用explain關鍵字可以直觀的查看一條SQL語句的執行計劃&#xff0c;可以幫助我們選擇合適的索引和優化SQL語句&#xff0c;查詢結構總共有12列。下面列舉幾種需要重點掌握的&#xff1a; 1.id select的標識符&#xff0c;id越大&#xff0c;表示優先級越高&#xff0c;越先執…

VB+SQL酒店客房管理設計與實現

摘要 二十一世紀是信息技術的時代,計算機已經應用到了各行各業中。采用計算機信息管理技術,可以有效的降低企業的管理成本,提高企業內部的工作效率。 本文從天天賓館客房客房管理的一般流程出發,設計了一套天天賓館客房管理信息系統,它可以管理天天賓館客房中所有的客房的…

1. 如何爬取自己的CSDN博客文章列表(獲取列表)(博客列表)(手動+python代碼方式)

文章目錄 寫在最前步驟打開chrome瀏覽器&#xff0c;登錄網頁按pagedown一直往下刷呀刷呀刷&#xff0c;直到把自己所有的博文刷出來然后我們按F12&#xff0c;點擊選取元素按鈕然后隨便點一篇博文&#xff0c;產生如下所示代碼然后往上翻&#xff0c;找到頭&#xff0c;復制然…

1.2 操作系統原理和常見命令

操作系統原理和常見命令 文章目錄 操作系統原理和常見命令操作系統原理操作系統的概述進程管理內存管理文件系統設備管理安全性操作系統的角色 操作系統中的常見命令和操作 操作系統原理 操作系統的概述&#xff1a; 定義&#xff1a;操作系統是控制和管理計算機硬件與軟件資源…

Java-類型和變量(基于C語言的補充)

一個簡單的Java程序 args){ System.out.println("Hello,world"); } }通過上述代碼&#xff0c;我們可以看到一個完整的Java程序的結構&#xff0c;Java程序的結構由如下三個部分組成&#xff1a; 1.源文件&#xff08;擴展名為*.java)&#xff1a;源文件帶有類的定義…

ios消息推送例子

通過Apple推送服務&#xff0c;將消息發送給特定的ios客戶端&#xff0c;這是服務器端實例代碼。需要客戶端的voip key值&#xff0c;以及相應的客戶端回調接口&#xff0c;支持ios9.0以上版本。 下載地址&#xff1a;https://download.csdn.net/download/m0_37567738/8821559…

[保研/考研機試] KY7 質因數的個數 清華大學復試上機題 C++實現

描述 求正整數N(N>1)的質因數的個數。 相同的質因數需要重復計算。如1202*2*2*3*5&#xff0c;共有5個質因數。 輸入描述&#xff1a; 可能有多組測試數據&#xff0c;每組測試數據的輸入是一個正整數N&#xff0c;(1<N<10^9)。 輸出描述&#xff1a; 對于每組數…