日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UBoot讲解和实践-------------讲解(二)

發布時間:2024/4/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UBoot讲解和实践-------------讲解(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UBoot ?ARM移植之階段二 ? 理論篇

?stage2:

? ? ? ? ? ?1.初始化本階段要使用的硬件設備:

? ? ? ? ? ? ?通常包括兩方面:

? ? ? ? ? ? ??1)初始化至少一個串口,以便和終端用戶進行I/O輸出信息。
? ? ? ? ? ? ? 2)初始化計時器等

? ? ? ? ??2.檢測系統的內存映射

? ? ? ? ? ? ?內存映射就是指在整個4GB物理地址空間中有哪些地址被分配用來尋址系統的RAM單元。必須知道CPU預留的全部RAM地址空間中的哪些被真正映射到RAM地址單元,哪些處于"unused狀態。

? ? ? ? ? ??使用數據結構體memory_area_struct來描述RAM地址空間中的一段連續的地址范圍

? ? ? ? ? ?處有一個可用來檢測整個RAM地址空間內存映射情況的簡單而有效的算法。(具體研究此算法需要另看別的書)

? ? ? ? ?3.加載內核映像和根文件系統映像

? ? ? ? ? ? ??有兩個工作要做:

? ? ? ? ? ? ? ?1)規劃內存占用的布局。包括兩個方面:內核映像所占用的內存范圍、根文件系統所占用的內存范圍。在規劃內存占用的布局時,主要考慮基地址和映像的大小兩個方面。

? ? ? ? ? ? ??2)從flash上復制。由于像ARM這樣的嵌入式CPU通常都在統一的內存空間地址中尋址flash等固態存儲設備的,因此從flash上讀取數據與從RAM單元中讀取數據并沒有什么不同。用一個簡單的循環就可以完成從flash設備上復制映像的工作

? ? ? ? ? ? ? ? ?while(count)

? ? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? ? ? ? ? *dest++=*src++;
? ? ? ? ? ? ? ? ? ? ? ? ?count -= 4;//arm 是4字節的,由總線決定的。
? ? ? ? ? ? ? ? ? }

? ? ? ? ? ?4.設置內核的動參數

? ? ? ? ? ? ? ?即設置linux內核的啟動參數。

? ? ? ? ? ? ? ?數據結構tag和tag_header定義在linux內核源碼的include/asm/setup.h頭文件中。(這里面大有文章)

? ? ? ? ? ?5.調用內核

? ? ? ? ? ? ? ?Boot Loader調用Linux內核的方法是直接跳轉到內核的第一條指令處,跳轉需要滿足的條件:

? ? ? ? ? ? ???1)CPU寄存器的設置:R0=0;

? ? ? ? ? ? ? ?(具體參看內核代碼文件:linux/arch/arm/tools/mach --types)
? ? ? ? ? ? ? ?2)CPU模式:必須禁止中斷(IRQs和FIQs),同時必須應該是SVC模式(特權模式,可以訪問更多的硬件資源)。
? ? ? ? ? ? ? ?3)Cache和MMU的設置:MMU必須關閉;指令Cache可以打開也可以關閉;數據cache必須關閉。

? ? ? ? ? ? ? ??

? ? ? ? ? ? ?

The future's not set,there is no fate but what we make for ourselves.

總結

以上是生活随笔為你收集整理的UBoot讲解和实践-------------讲解(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。