<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式存儲器以及BootLoader的一些總結

嵌入式存儲器以及BootLoader的一些總結

作者: 時(shí)間:2012-08-13 來(lái)源:網(wǎng)絡(luò ) 收藏

我在大學(xué)的時(shí)候很少關(guān)心單片機內部的結構及應用,只是大概的知道RAM和ROM的區別,甚至只是知道程序下載到ROM中就能運行了。其他的如何工作程序如何啟動(dòng)的就不了了知了。因此在接觸的時(shí)候就會(huì )出現很多盲區。在此本人將工作三個(gè)多月以來(lái)接觸到的一些關(guān)于新的理解分享給大家,有什么錯誤的地方在所難免,希望大家給予指正。

RAM和ROM在單片機中的相關(guān)應用

ROM和RAM指的都是半導體,ROM是Read Only Memory的縮寫(xiě),RAM是Random Access Memory的縮寫(xiě)。ROM在系統停止供電的時(shí)候仍然可以保持數據,而RAM通常都是在掉電之后就丟失數據,典型的RAM就是計算機的內存。

RAM有兩大類(lèi),一種稱(chēng)為靜態(tài)RAM(Static RAM/SRAM),SRAM速度非???,是目前讀寫(xiě)最快的存儲設備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖。另一種稱(chēng)為動(dòng)態(tài)RAM(Dynamic RAM/DRAM),DRAM保留數據的時(shí)間很短,速度也比SRAM慢,不過(guò)它還是比任何的ROM都要快,但從價(jià)格上來(lái)說(shuō)DRAM相比SRAM要便宜很多,計算機內存就是DRAM的。

DRAM分為很多種,常見(jiàn)的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等。所謂內存就是用來(lái)存放當前正在使用的(即執行中)的數據和程序,我們平常所提到的計算機的內存指的是動(dòng)態(tài)內存(即DRAM),動(dòng)態(tài)內存中所謂的"動(dòng)態(tài)",指的是當我們將數據寫(xiě)入DRAM后,經(jīng)過(guò)一段時(shí)間,數據會(huì )丟失,因此需要一個(gè)額外設電路進(jìn)行內存刷新操作。

ROM也有很多種,PROM是可編程的ROM,PROM和EPROM(可擦除可編程ROM)兩者區別是,PROM是一次性的,也就是軟件灌入后,就無(wú)法修改了,這種是早期的產(chǎn)品,現在已經(jīng)不可能使用了,而EPROM是通過(guò)紫外光的照射擦出原先的程序,是一種通用的。另外一種EEPROM是通過(guò)電子擦出,價(jià)格很高,寫(xiě)入時(shí)間很長(cháng),寫(xiě)入很慢。

簡(jiǎn)單來(lái)說(shuō),最原始的單片機比如at89c51,內部集成了ROM,RAM。ROM用來(lái)存儲編好的程序、常數、表格等,當單片機掉電ROM中的數據不會(huì )丟失,因此單片機掉電再上電還會(huì )繼續運行;RAM可以存放用戶(hù)的臨時(shí)變量、還有單片機內部的特殊寄存器等,單片機掉電后數據會(huì )丟失,當在上電后程序執行,重新初始化寄存器和變量的值。

在這里簡(jiǎn)單說(shuō)一下MCS-51的程序執行流程,MCS-51單片機的存儲器組織結構,采用典型的哈佛結構,即程序存儲器和數據存儲器完全獨立,擁有各自的尋址系統,包括片內數據存儲器與片外數據存儲器都擁有自己獨立的尋址系統。所以,在地址空間上允許重疊。如:程序存儲器的地址空間中有0000H這個(gè)單元,片內數據存儲器也有0000H這個(gè)單元,片外數據存儲器中還有0000H這個(gè)單元。

89S51片內有4kB的程序存儲單元,其地址為0000H—0FFFH,單片機啟動(dòng)復位后,程序計數器的內容為0000H,所以系統將從0000H單元開(kāi)始執行程序。在這里會(huì )跳轉到main函數,但是據說(shuō)在跳轉到main函數之前,還會(huì )做一些判斷的處理,具體沒(méi)有研究過(guò)。


Flash在系統中的應用

現在很多的芯片內部都是用flash,或者是外掛Flash來(lái)存儲程序。目前的Flash主要有兩種NOR Flash和NADN Flash。

NOR Flash的讀取和我們常見(jiàn)的SDRAM的讀取是一樣,用戶(hù)可以直接運行裝載在NOR FLASH里面的代碼,這樣可以減少SRAM的容量從而節約了成本。

NAND Flash沒(méi)有采取內存的隨機讀取技術(shù),它的讀取是以一次讀取一塊的形式來(lái)進(jìn)行的,通常是一次讀取512個(gè)字節,采用這種技術(shù)的Flash比較廉價(jià)。用戶(hù)不能直接運行NAND Flash上的代碼,因此好多使用NAND Flash的開(kāi)發(fā)板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來(lái)運行啟動(dòng)代碼。

一般小容量的用NOR Flash,因為其讀取速度快,多用來(lái)存儲操作系統等重要信息,而大容量的用NAND FLASH。NOR Flash可以擁有 SDRAM的接口,擁有更多的地址線(xiàn)來(lái)方便讀取內存中的每一個(gè)字節;NAND flash AND結構能提供極高的單元密度,可以達到高存儲密度,并且寫(xiě)入和擦除的速度也很快。應用NAND的困難在于flash的管理和需要特殊的系統接口。

Serial Flash 擁有spi的接口可以頁(yè)讀、任意地址讀。并且它可以有四線(xiàn)SPI,雙線(xiàn)SPI的DDR接口。它可以利用spi的外部地址總線(xiàn)的方式來(lái)直接在外部flash中運行程序,不過(guò)運行速度是個(gè)有待考慮的問(wèn)題。

嵌入式Boot Loader

在嵌入式中一些產(chǎn)品中,采用的啟動(dòng)方式中,根據不同的芯片結構而不同。拿計算機的啟動(dòng)來(lái)說(shuō),計算機引導加載程序由BIOS和位于硬盤(pán)MBR中的OS Boot Loader組成,其實(shí)BIOS就是一段固化程序,現在很多嵌入式的芯片內部都會(huì )有一段類(lèi)似的程序來(lái),這段程序的用途通俗的講就是來(lái)加載Boot Loader的。計算機也一樣,BIOS在完成系統硬件檢測和資源分配后,將硬盤(pán)MBR中的Boot Loader讀到系統的RAM中,然后將控制權交給OS Boot Loader,Boot Loader的主要任務(wù)就是將內核映像從硬盤(pán)讀到RAM中,然后跳轉到內核的入口點(diǎn)運行,即開(kāi)啟操作系統。

我們常說(shuō)的嵌入式的Boot Loader其實(shí)就是和上面提到的OS Boot Loader差不多,只不過(guò)很多嵌入式的CPU沒(méi)有BIOS那樣的固化程序,他們上電復位到0x0000000地址后一般是Boot Loader的開(kāi)始地址。有些嵌入式的CPU會(huì )有片內的ROM,會(huì )有一段固化的程序,去加載Boot Loader。

簡(jiǎn)單來(lái)說(shuō)Boot Loader有兩種模式,一種叫做Down Loader,一種叫做loader;DownLoader這種模式中主要是程序員開(kāi)發(fā)階段需要一種模式,這種模式主要是通過(guò)調試器將程序代碼下載到內部RAM中去,然后通過(guò)Boot Loader 寫(xiě)到目標機的Flash或者其他存儲設備中去。這種模式只是在開(kāi)發(fā)人員在項目開(kāi)發(fā)階段使用的一種模式。在項目完成后的成品中,Boot Loader會(huì )一直工作在loader 模式中。其大概做的事情就是硬件設備初始化,為Boot Loader以后的工作設定先決條件;設置堆棧、檢測系統內存映射,將系統映像或者程序代碼段從Flash上讀取到內部RAM中,有的系統會(huì )加載到SDRAM中,還有的會(huì )直接在外部FLASH上運行。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: BootLoader 嵌入式 存儲器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>