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

打開APP
userphoto
未登錄

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

開通VIP
關(guān)于EBoot和NBoot的區(qū)別(轉(zhuǎn)):

關(guān)于EBoot和NBoot的區(qū)別(轉(zhuǎn)):  

2010-07-18 21:30:27|  分類: WinCE |  標(biāo)簽: |字號 訂閱

        S3C2410處理器支持將啟動(dòng)代碼存儲(chǔ)在NAND Flash中。為了實(shí)現(xiàn)這一功能,2410配備了一個(gè)名為“Steppingstone”的內(nèi)部SRAM。在啟動(dòng)時(shí),NAND Flash中第一個(gè)4K字節(jié)的內(nèi)容將被加載到Steppingstone中并執(zhí)行。這個(gè)工作由MCU主動(dòng)完成,而我們只需將NAND Flash配置為Auto Boot模式即可。

       一般來說,啟動(dòng)代碼會(huì)拷貝存儲(chǔ)在NAND Flash中的內(nèi)容至SDRAM中。在使用ECC校驗(yàn)時(shí),NAND Flash中數(shù)據(jù)的有效性將被確認(rèn)。在完成拷貝的工作后,啟動(dòng)代碼將跳轉(zhuǎn)到已加載到SDRAM中的主程序中,這時(shí)啟動(dòng)代碼的使命完成,MCU由主程序來控制。

       WinCE操作系統(tǒng)從文件的組成來看一般分為兩部分:BOOTLOADERNK.bin。在WinCE中,BOOTLOADER一般為EBOOT。它的主要功能是初始化硬件設(shè)備,主要包括CPU內(nèi)部的相關(guān)控制器、內(nèi)存、網(wǎng)絡(luò)、串口甚至USB口和LCD。在初始化完成后,它將通過網(wǎng)絡(luò)或USB從外部下載NK.bin,或從本地Flash中加載NK.bin并執(zhí)行,從而啟動(dòng)WinCE操作系統(tǒng)??梢钥吹?/span>Eboot雖然是啟動(dòng)代碼,但它得完成相當(dāng)多的工作,最終的映像文件也將超過4K。所以,我們不能直接將Eboot存放在NAND Flash的第一個(gè)4K字節(jié)中。我們需要一個(gè)更小的啟動(dòng)代碼,這就是通常所說的NBOOT(NAND BOOT)。

       通過上面的介紹,我們知道了NBOOT在整個(gè)系統(tǒng)中扮演的角色,它負(fù)責(zé)將EBOOT加載到內(nèi)存并運(yùn)行。在EBOOT開始執(zhí)行后,NBOOT就退出了歷史的舞臺(tái),事實(shí)上也不再有上場的機(jī)會(huì)。

       NBOOT的代碼實(shí)現(xiàn)中,我們必須完成以下幾個(gè)部分。

1.       初始化CPU內(nèi)部相關(guān)控制器,如設(shè)置GPIO,關(guān)閉Watch Dog,關(guān)閉中斷,設(shè)置系統(tǒng)時(shí)鐘。

2.       初始化內(nèi)存。

3.       初始化串口,主要用來輸出調(diào)試信息。

4.       初始化NAND Flash,因?yàn)樵?/span>MCU啟動(dòng)時(shí)默認(rèn)是Auto Boot模式,為了從NAND Flash中讀取EBOOT,需要將其配置成 NAND Flash Mode

5.       讀取NAND Flash中的EBOOT映像文件,并放在內(nèi)存指定的位置,這個(gè)地址是跟EBOOT有關(guān),介紹EBOOT時(shí)再詳細(xì)說明。

6.       完成讀取之后,跳轉(zhuǎn)到EBOOT的起始位置,執(zhí)行EBOOT代碼。

一般來說,前面兩個(gè)功能在startup.s中實(shí)現(xiàn),WinCE6.0下可以參考文件C:"WINCE600"PLATFORM"DEVICEEMULATOR"SRC"BOOTLOADER"EBOOT"startup.s的相關(guān)代碼。后面四個(gè)功能可在main.c中實(shí)現(xiàn)??傊?,在實(shí)現(xiàn)必備功能的情況下,盡可能減少代碼量,以將最后的NBOOT映像文件控制在4K以內(nèi)。

NBOOT的編譯環(huán)境一般有兩種,ADS1.2(或RVDS)、Platform Builder。用ADS1.2編譯NBOOT是比較方便的,需要注意的就是RO BaseRW Base的設(shè)置,RO Base必須設(shè)置為0x0。否則,系統(tǒng)啟動(dòng)時(shí)NBOOT將不被運(yùn)行。在Post-Linker中選擇ARM from ELF,在Linker——ARM fromELF——Output Format中選擇Plain Binary,這樣,編譯完成后最終生成NBoot.bin。該文件就可以固化在NAND Flash的第0個(gè)BLOCK中。Platform Builder 6.0是作為VS2005的插件來用的,所以,我們現(xiàn)在也可以用VS2005來編譯NBOOT,這樣就免得再安裝ADSRVDS等軟件。用VS2005來編譯NBOOT也有兩種方法,第一種跟編譯EBOOT映像文件類似,第二種是自己寫makefile文件,然后用命令行的方式調(diào)用ARM編譯器來編譯。兩種方法各有優(yōu)點(diǎn),第一種方法在編譯OS時(shí),會(huì)自動(dòng)編譯生成映像,而第二種方法可由ADS下的程序直接移植過來,不過,要寫好makefile文件是相當(dāng)困難的事情。一般還是少用為好。

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

.bin文件和.nb0文件的差別

eboot.nb0
eboot.bin
nk.nb0
nk.bin

.bin文件和.nb0文件的差別:

.nb0是可以直接燒到FLASH/ROM中的,是代碼鏡像,可以直接跳轉(zhuǎn)到其入口執(zhí)行。
.bin是Microsoft binary image格式的文件,必須按其格式定義解開到其指定的地址空間的位置才能執(zhí)行。

兩個(gè)都是CE的鏡像,通過串口直接下載用nb0,pb下載用bin,nb0文件要大一些。

nb0是非壓縮的數(shù)據(jù),里面的數(shù)據(jù)是實(shí)際的NK展開以后在內(nèi)存里面的數(shù)
bin是有壓縮的數(shù)據(jù),里面的數(shù)據(jù)是壓縮以后類似于成塊形的數(shù)據(jù),被loader拷貝到內(nèi)存以后沒有區(qū)別。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
uboot 替代 eboot 燒寫、啟動(dòng) wince
Bootloader_App_DownloadTools
S3C2410下WinCE6.0的啟動(dòng)過程詳解
WinCE6.0的EBOOT概要 Windows Mobile 德仔工作室 腳踏實(shí)地 用心...
WinCE中命令行工具Viewbin簡介
FS2410 nandflash重新分區(qū)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服