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
交叉編譯等等。
步驟:
- ? ? ? ? 獲取ST官方uboot。
- ? ? ? ? 解壓,打補丁。
- ? ? ? ? 編譯官方uboot。
? ? ? ? 編譯好后燒錄,會出現問題。什么問題?啟動可以,但是會運行出錯,因為這是ST官方的uboot,是對應他們的評估板,我們使用的是正點原子的,是參考評估板進行了改動,比如ST 官方開發板使用了電源管理芯片 STPMIC1A,所以 uboot 運行的時候會初始化這個 PMIC 芯片,但是正點原子開發板并沒有使用這個 PMIC 芯片,所以無法正常運行。要修改uboot。
????????接下來就是一步步的修改 uboot,至到其正常工作,也就是所謂的 uboot 移植。
? ? ? ? 后續更新。。。
3.總結
? ? ? ? 怎么能學好這種Linux,我認為要和那種單片機對比這來。比如這個設備樹,是描述硬件信息的,如果一層一層往下扒,發現最初的東西也是寄存器,不過這些東西出廠已經給好了或者說已經模塊化了,我們所要掌握的是設備樹的語法,引用,添加,修改等等。
? ? ? ? 學習ing。