1. 程式人生 > >2017.1.7 _u-boot的初步認識

2017.1.7 _u-boot的初步認識

今天結束了C語言部分和裸機部分,現在開始學習UBOOT,學習完畢UBOOT後以後就是在作業系統的基礎上來進行操作裸機了。
  • UBOOT是用來啟動作業系統的。
  • 當我們學習前面的簡單的知識的時候可能覺得學不清楚,這是因為沒有在具體的場景中使用它,學了後覺得難的東西再回來看之前這些知識,就能比較深刻的理解了,也覺得不那麼難了,所以不要畏懼後面看起來難的東西,不要畏懼繼續學習的路。

  • Fastboot是uboot的一塊功能。
    1.啟動作業系統核心。
    2.負責部署整個作業系統。
    3.操作板子上FLASH等硬體的驅動;
    4.提供一個命令列來給使用者操作。

  • 核心中的連結串列的使用方法和平時使用的方法不同,平時我們使用的時候是將資料放在連結串列節點中,而linux核心的方法是將連結串列節點放在資料結構體成員中。我們在我們的資料中包含linux核心連結串列,就相當於我們的資料有了連結串列的功能。

  • 裸機教程中刷機就是利用uboot中的FASTBOOT功能來講映象燒錄到inand中,然後從inand中啟動系統。
  • Uboot的主要目的就是為了啟動核心。

Uboot的工作方式

  • 1.uboot的本質就是一個裸機程式,和我們裸機全集寫的裸機程式沒有本質區別。Uboot一般的大小在180k-400K之間。
  • 2.Uboot本身是一個開源專案,由若干個.c和.h組成,配置編譯之後會生成一個uboot.bin,這就是uboot裸機程式的映象。
  • 3.Shell就是人機互動的一個介面。Uboot就實現了一個shell。Shell並不是作業系統,和作業系統一點關係都沒有。Uboot中的shell和linux裡的終端shell非常像,只是指令集不一樣。
  • 4.學習使用uboot命令和環境變數,學習linux系統就是學習shell命令。Uboot的所有工作都是通過命令來實現的。
  • 5.Uboot的環境變數和作業系統的環境變數工作原理和方式幾乎完全相同,uboot是linux的衍生品。Uboot的驅動管理幾乎完全照抄了linux的驅動框架。
  • 6.系統或者我們自己的程式在執行時可以通過讀取環境變數來指導程式的執行,這樣設計的好處就是靈活。通過修改環境變數可以讓我們不重新編譯而修改程式的行為。前面學習的簡單的就是現在學習的困難的基礎,現在學習的困難的就是後面學習的更困難的基礎。
  • 7.及時複習ARM裸機中和現在講到的相關知識點,在複習中鞏固ARM裸機中學到的。
  • 8.及時對照原來ARM裸機中講到的相關部分,可以幫助理解當前學習到的知識點。
  • 9.結合ARM裸機中和現在學習的內容,對比分析思考會得到更多。