九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
【整理】BIOS、BootLoader、uboot對(duì)比

bios

BIOS是英文'Basic Input Output System'的縮略語(yǔ),直譯過(guò)來(lái)后中文名稱就是'基本輸入輸出系統(tǒng)'。其實(shí),它是一組固化到計(jì)算機(jī)內(nèi)主板上一個(gè)ROM芯片上的程序,它保存著計(jì)算機(jī)最重要的基本輸入輸出的程序、系統(tǒng)設(shè)置信息、開機(jī)后自檢程序和系統(tǒng)自啟動(dòng)程序。 其主要功能是為計(jì)算機(jī)提供最底層的、最直接的硬件設(shè)置和控制。


BootLoader

BootLoader是一段小程序,可以把它想象成PC機(jī)linux上的GRUB/LILO引導(dǎo)程序,只不過(guò)在嵌入式linux中,沒有BIOS,而是直接從flash中運(yùn)行,來(lái)裝載內(nèi)核。它可以初始化硬件設(shè)備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備。

一個(gè)嵌入式系統(tǒng)從軟件角度來(lái)看分為三個(gè)層次:
1.引導(dǎo)加載程序
包括固化在固化中的boot程序(可選),和BootLoader兩大部分
2.linux內(nèi)核
特定于嵌入式平臺(tái)的定制內(nèi)核
3.文件系統(tǒng)
包括了系統(tǒng)命令和應(yīng)用程序
--------------------------------------------------------------------------------
 BootLoader-->Boot Parameters-->Kernel-->Root Filesystem
--------------------------------------------------------------------------------
為什么需要進(jìn)行bootloader移植?
答:1.因?yàn)槊糠N不同的CPU體系結(jié)構(gòu)都有不同的BootLoader
2.BootLoader依賴于具體的嵌入式板級(jí)設(shè)備的配置
--------------------------------------------------------------------------------
BootLoader啟動(dòng)過(guò)程可分為單階段和多階段(stage1、stage2),其中stage1完成初始化硬件,如CPU寄存器、內(nèi)存控制器,為stage2準(zhǔn)備內(nèi)存空間。一般stage1是可以直接在nor flash中運(yùn)行的,并將stage2復(fù)制到內(nèi)存RAM中,設(shè)置堆棧,然后跳轉(zhuǎn)到stage2(從這也可以看出stage2是在RAM中運(yùn)行的,與stage1不同)

BootLoader的stage1通常包括以下步驟:
1.硬件設(shè)備初始化  如CPU寄存器、內(nèi)存控制器
2.為加載BootLoader的stage2準(zhǔn)備RAM空間
3.拷貝BootLoader的stage2到RAM空間中
4.設(shè)置好堆棧    為什么?為了跳轉(zhuǎn)到stage2的入口,因?yàn)閟tage2大多數(shù)是用C語(yǔ)言寫的
5.跳轉(zhuǎn)到stage2的C入口點(diǎn)

BootLoader的stage2通常包括以下步驟:
1.初始化本階段要使用到的硬件設(shè)備    各種設(shè)備,如網(wǎng)卡
2.將內(nèi)核映像和根文件系統(tǒng)映像從flash上讀到RAM中去
3.調(diào)用內(nèi)核
--------------------------------------------------------------------------------


uboot 

Uboot用于多種嵌入式CPU的BootLoader程序
支持多種嵌入式操作系統(tǒng)的引導(dǎo)
UBOOT目錄結(jié)構(gòu)
1.Borad        與開發(fā)板有關(guān)的文件。第一個(gè)開發(fā)板都以一個(gè)子目錄出現(xiàn)在當(dāng)前目錄中
2.Common    實(shí)現(xiàn)Uboot支持的命令
3.Cpu        與特定CPU架構(gòu)相關(guān)的代碼,支持的CPU對(duì)應(yīng)一個(gè)子目錄(注意CPU與開發(fā)板的區(qū)別)
3.Disk        對(duì)磁盤的支持
4.Doc        文檔目錄
5.Drivers    Uboot支持的設(shè)備驅(qū)動(dòng)程序  如各種網(wǎng)卡、串品、USB、支持CFI的Flash
6.Fs         文件系統(tǒng)的支持
7.Iclude    Uboot使用的頭文件。該目錄下configs目錄有與開發(fā)板相關(guān)的配置頭文件        該目錄下的asm目錄有與CPU體系結(jié)構(gòu)相關(guān)的頭文件
8.Net        與網(wǎng)絡(luò)協(xié)議相關(guān)的代碼    各路協(xié)議的實(shí)現(xiàn)
9.Tools        生成Uboot的工具,如:mkimage,crc等等

Uboot編譯分為兩步
1.執(zhí)行每種board相關(guān)的配置    如:make amdk_2420
2.編譯生成uboot.bin文件        如:make CROSS_COMPILE=arm-linux-(指定正確路徑)
--------------------------------------------------------------------------------

UBOOT基于單板機(jī)提供了豐富的命令集操作
UBOOT命令
printenv查看環(huán)境變量(相當(dāng)全局變量?)
setenv 添加、修改、刪除環(huán)境變量
1.setenv name value
set environment variable 'name' to 'value...'
2.setenv name
delete environment variable 'name'
saveenv保存環(huán)境變量
將當(dāng)前定義的所有變量及其值存入flash中
--------------------------------------------------------------------------------
---------------------文件下載------------------------------------
tftp 通過(guò)網(wǎng)絡(luò)下載文件     使用前,配置好網(wǎng)絡(luò)
配置網(wǎng)絡(luò):1.setenv ethaddr 12:34:56:78:8A:BC
2.setenv ipaddr 192.168.1.1
3.setenv serverip 192.168.1.254  (tftp服務(wù)器的地址)
連接下載:tftp 32000000 uImage
把server(IP=環(huán)境變量中設(shè)置的serverip)服務(wù)目錄下的uImage通過(guò)tftp讀入到0x32000000處

md 顯示內(nèi)存區(qū)的內(nèi)容
md[.b,.w,.l]address    如:md.w 1000000

mm[.b,.w,.l]address    如:mm.w 100000
mm 修改內(nèi)存,地址自動(dòng)遞增    提供了一種互動(dòng)修改存儲(chǔ)器內(nèi)容的方法,如果沒有輸入任何值,按回車內(nèi)容保持不變,輸入空格然后按下回車,結(jié)束輸入

flinfo    查看Flash扇區(qū)信息
--------------------------------------------------------------------------------
protect Flash寫保護(hù)  打開或關(guān)閉扇區(qū)寫保護(hù)
用法:
protect off all        關(guān)閉所有扇區(qū)的寫保護(hù)
protect on all         打開所有扇區(qū)的寫保護(hù)
protect off start end     關(guān)閉從start到end扇區(qū)的寫保護(hù)-----》protect off 0 1ffff(前一扇區(qū)減去1?)
protect on start end     打開從start到end扇區(qū)的寫保護(hù)

--------------------------------------------------------------------------------

erase 擦除flash扇區(qū)
用法: erase start end    如: erase 30000 1efff
在使用cp命令向Nor型Flash寫入數(shù)據(jù)之前必須先使用erase命令擦除flash

cp 數(shù)據(jù)拷貝
cp [.b,.w,.l]saddress daddress len
cp提供了一種內(nèi)存與內(nèi)存,內(nèi)存與Flash之間數(shù)據(jù)拷貝的方法
如:cp.b 31000000 50000 d0000 即是將內(nèi)存地址0x31000000處的數(shù)據(jù)(長(zhǎng)度為0xd0000)拷貝到地址0x50000處(Flash中)

--------------------------------------------------------------------------------
執(zhí)行程序
go 執(zhí)行內(nèi)存中的二進(jìn)制代碼,一個(gè)簡(jiǎn)單的跳轉(zhuǎn)到指定地址
go addr[arg...]
start application at address 'addr',
passing 'arg' as arguments

bootm 執(zhí)行內(nèi)存中的二進(jìn)制代碼
bootm [addr[arg...]]       要求二進(jìn)制代碼有固定格式的文件頭
boot application image stored in memory passing arguments 'arg...';
when booting a Linux kernel,'arg' can be the address of an initrd image
bdinfo    顯示開發(fā)板信息  (可用于啟動(dòng)linux內(nèi)核)
bdinfo命令將在終端顯示諸如內(nèi)存地址和大小、時(shí)鐘頻率、MAC地址等信息
這些信息在傳遞給LIUNX內(nèi)核一些參數(shù)時(shí)可能會(huì)用到

設(shè)置自動(dòng)啟動(dòng)
setenv bootcmd tftp 31000000 uImage \;bootm 31000000
saveenv

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
國(guó)嵌視頻學(xué)習(xí)第九天——UBOOT基礎(chǔ)
Linux啟動(dòng)過(guò)程詳解
UBOOT命令總結(jié)(轉(zhuǎn))_八度空間
電腦故障維修判斷大全
U-BOOT介紹以及常用U-bot命令介紹
【路由改造】閑來(lái)無(wú)事,寫一篇折騰無(wú)線路由器的心得吧,不對(duì)的地方請(qǐng)指正(新手值得看看)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服