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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

norflsh nandflash之类的存储设备启动bootloader概述

發(fā)布時間:2023/12/15 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 norflsh nandflash之类的存储设备启动bootloader概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、NOR的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP,eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。優(yōu)點(diǎn)是可以直接從FLASH中運(yùn)行程序,但是工藝復(fù)雜,價格比較貴,NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
  NAND結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲密度,并且寫入和擦除的速度也很快。應(yīng)用NAND的困難在于flash的管理和需要特殊的系統(tǒng)接口。優(yōu)點(diǎn):大存儲容量,而且便宜。缺點(diǎn),就是無法尋址直接運(yùn)行程序,只能存儲數(shù)據(jù)。另外NAND FLASH 非常容易出現(xiàn)壞區(qū),所以需要有校驗(yàn)的算法。
??? 任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行
(1)NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為1。
(2)擦除NOR器件時是以64~128KB的塊進(jìn)行的,執(zhí)行一個寫入/擦除操作的時間為
5s,NORFLASHSECTOR擦除時間視品牌、大小不同而不同,比如,4MFLASH,有的SECTOR擦除時間為60ms,而有的需要最大6S。與此相反,擦除NAND器件是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms
(3)當(dāng)選擇存儲解決方案時,設(shè)計(jì)師必須權(quán)衡以下的各項(xiàng)因素。
  ●NOR的讀速度比NAND稍快一些。
  ●NAND的寫入速度比NOR快很多。
  ●NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。
  ●大多數(shù)寫入操作需要先進(jìn)行擦除操作。
  ●NAND的擦除單元更小,相應(yīng)的擦除電路更少。
(4)接口差別
  NORflash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個字節(jié)。
  NAND器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),各個產(chǎn)品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數(shù)據(jù)信息。NAND讀和寫操作采用512字節(jié)的塊,這一點(diǎn)有點(diǎn)像硬盤管理此類操作,因此,基于NAND的存儲器就可以取代硬盤或其他塊設(shè)備。

(5)容量差別:
??? NORflash占據(jù)了容量為1~16MB閃存市場的大部分,而NANDflash只是用在8~128MB的產(chǎn)品當(dāng)中,這也說明NOR主要應(yīng)用在代碼存儲介質(zhì)中,NAND適合于數(shù)據(jù)存儲。
(6)可靠性和耐用性
-壽命(耐用性)
  在NAND閃存中每個塊的最大擦寫次數(shù)是一百萬次,而NOR的擦寫次數(shù)是十萬次。NAND存儲器除了具有10比1的塊擦除周期優(yōu)勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內(nèi)的刪除次數(shù)要少一些。
-位交換
  所有flash器件都受位交換現(xiàn)象的困擾。位真的改變了,就必須采用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉(zhuǎn)的問題更多見于NAND閃存,在使用NAND閃存的時候,應(yīng)使用EDC/ECC算法。用NAND存儲多媒體信息時倒不是致命的。當(dāng)然,如果用本地存儲設(shè)備來存儲操作系統(tǒng)、配置文件或其他敏感信息時,必須使用EDC/ECC系統(tǒng)以確保可靠性。
-壞塊處理
  NAND器件中的壞塊是隨機(jī)分布的,NAND器件需要對介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。在已制成的器件中,如果通過可靠的方法不能進(jìn)行這項(xiàng)處理,將導(dǎo)致高故障率。
(7)易于使用
  可以非常直接地使用基于NOR的閃存。在使用NAND器件時,必須先寫入驅(qū)動程序,才能繼續(xù)執(zhí)行其他操作。向NAND器件寫入信息需要相當(dāng)?shù)募记?因?yàn)樵O(shè)計(jì)師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進(jìn)行虛擬映射。
(8)軟件支持
在NOR器件上運(yùn)行代碼不需要任何的軟件支持,在NAND器件上進(jìn)行同樣操作時,通常需要驅(qū)動程序,也就是內(nèi)存技術(shù)驅(qū)動程序(MTD),NAND和NOR器件在進(jìn)行寫入和擦除操作時都需要MTD。
??? 使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用于NOR器件的更高級軟件,這其中包括M-System的TrueFFS驅(qū)動,該驅(qū)動被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等廠商所采用。驅(qū)動還用于對DiskOnChip產(chǎn)品進(jìn)行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗平衡。
(9)在掌上電腦里要使用NAND FLASH 存儲數(shù)據(jù)和程序,但是必須有NOR FLASH來啟動。除了SAMSUNG處理器,其他用在掌上電腦的主流處理器還不支持直接由NAND FLASH 啟動程序。因此,必須先用一片小的NOR FLASH 啟動機(jī)器,在把OS等軟件從NAND FLASH 載入SDRAM中運(yùn)行才行
2、Bootloader的概念就是一個用于引導(dǎo)的loader,在系統(tǒng)上電的時候最先被運(yùn)行,然后對硬件平臺做最基本的初始化,最后把操作系統(tǒng)加載起來。不同的嵌入式操作系統(tǒng)都有自己的Bootloader,但是本質(zhì)功能都是一樣的。

  在WinCE中用的最多的就是EBOOT,是一個基于網(wǎng)絡(luò)的Bootloader,而且可以根據(jù)需要帶有命令行菜單功能,網(wǎng)絡(luò)調(diào)試功能以及文件系統(tǒng)的相關(guān)功能。在這里我只談ARM平臺的引導(dǎo),因?yàn)槠渌軜?gòu)的CPU我沒用過,就不吹牛了。一般基于不同的硬件設(shè)計(jì),會有不同的引導(dǎo)方式:

  NORFlash Boot:

  一般ARM處理器的片選0都會接有NORFlash,這樣在ARM上電以后,會從0地址開始執(zhí)行程序,也就是從NORFlash的0地址開始執(zhí)行。所以把EBOOT燒到NORFlash的0地址開始的地方,這樣在上電以后,EBOOT開始執(zhí)行,可以在NORFlash里面執(zhí)行,也可以自拷貝到SDRAM中執(zhí)行。最后加載WinCE image并運(yùn)行。

  NANDFlash Boot with EBOOT:

  由于NORFlash容量小,價格貴,現(xiàn)在很多ARM處理器支持NandFlash引導(dǎo)。不同廠家的處理器對Nandflash的引導(dǎo)略有區(qū)別,具體要看datasheet。但是本質(zhì)就是先從Nandflash中讀出一個小的Loader來運(yùn)行,這個Loader再從Nandflash中加載EBOOT到SDRAM中運(yùn)行,最后EBOOT加載WinCE image,就是NK.bin。

  NANDFlash Boot without EBOOT:

  如果在NandFlash引導(dǎo)的時候不需要EBOOT,也可以不用EBOOT。這樣就是系統(tǒng)啟動后從Nandflash中加載一個小的Loader,小的Loader對硬件系統(tǒng)作基本的初始化,然后直接加載WinCE image,一般應(yīng)該是NK.nb0,然后運(yùn)行。

  這里來說一下NK.bin與NK.nb0,兩個不同的WinCE image。

  NK.nb0:就是一個可以直接運(yùn)行的WinCE映像文件,直接拷貝到SDRAM中就可以運(yùn)行。

  NK.bin:被稱為Windows CE binary image data format文件格式,是一種包含了多個獨(dú)立紀(jì)錄(Section)的二進(jìn)制文件。在加載的時候,需要分別加載,不同的Section加載到不同的地方。所以NK.bin需要Bootloader進(jìn)行解釋性加載。但是他的Size會比NK.nb0小。可以使用viewbin命令查詢NK.bin中的紀(jì)錄信息。

  viewbin –rec nk.bin 

  前面已經(jīng)講過了一般系統(tǒng)會使用到的引導(dǎo)方式,下面介紹一下EBOOT。在WinCE中EBOOT一個作用可以加載WinCE image,還可以通過網(wǎng)絡(luò)配合Platform Builder下載WinCE image進(jìn)行調(diào)試。在開發(fā)一個新的BSP的時候,首先會基于一個相似的平臺的BSP進(jìn)行克隆,然后要做的就是要開發(fā)和調(diào)試EBOOT了,EBOOT的架構(gòu)如圖:

  BLCOMMON:相當(dāng)于EBOOT的一個基本框架,主要完成bootloader相關(guān)內(nèi)存的分配,解析NK.bin文件并進(jìn)行效驗(yàn),初始化平臺,通過網(wǎng)絡(luò)下載image等功能。

  OEM Code:主要是基于硬件平臺,為BLCOMMON提供相應(yīng)的接口函數(shù),幫助完成相應(yīng)的功能。

  Eboot:一個小的網(wǎng)絡(luò)協(xié)議棧,為網(wǎng)絡(luò)下載image提供DHCP,TFTP,UDP等網(wǎng)絡(luò)服務(wù)功能。

  Network Driver:硬件平臺的網(wǎng)絡(luò)驅(qū)動部分,支持上層的網(wǎng)絡(luò)功能。

  Bootpart:為Flash設(shè)備提供分區(qū)功能,bootloader可以創(chuàng)建一個BinFS分區(qū)和一個文件系統(tǒng)分區(qū)。還可以用它來創(chuàng)建一個引導(dǎo)分區(qū)用來存放引導(dǎo)參數(shù)。

  Flash Memory:硬件平臺的Flash驅(qū)動。

3、其他啟動方式

? ? eeprom也是可以的,跟norflash啟動方式一樣。而rom就不行了,,因?yàn)樗侵蛔x的,不能對bootloader進(jìn)行燒寫。像norflash之類的存儲設(shè)備不需要MTD支持,是因?yàn)樗齻冇凶銐虻牡刂芬_來尋址。而norflash則是地址、數(shù)據(jù)復(fù)用的。

轉(zhuǎn)載于:https://www.cnblogs.com/gmh915/archive/2009/03/27/1945434.html

總結(jié)

以上是生活随笔為你收集整理的norflsh nandflash之类的存储设备启动bootloader概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。