當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]在大學(xué)的時候很少關(guān)心單片機(jī)內(nèi)部存儲器的結(jié)構(gòu)及應(yīng)用,只是大概的知道RAM和ROM的區(qū)別,甚至只是知道程序下載到ROM中就能運(yùn)行了。其他的如何工作程序如何啟動的就不了了知了。

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

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

ROM和RAM指的都是半導(dǎo)體存儲器,ROM是Read Only Memory的縮寫,RAM是Random Access Memory的縮寫。ROM在系統(tǒng)停止供電的時候仍然可以保持?jǐn)?shù)據(jù),而RAM通常都是在掉電之后就丟失數(shù)據(jù),典型的RAM就是計算機(jī)的內(nèi)存。

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

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

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

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

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

89S51片內(nèi)有4kB的程序存儲單元,其地址為0000H— 0FFFH,單片機(jī)啟動復(fù)位后,程序計數(shù)器的內(nèi)容為0000H,所以系統(tǒng)將從0000H單元開始執(zhí)行程序。在這里會跳轉(zhuǎn)到main函數(shù),但是據(jù)說在跳轉(zhuǎn)到 main函數(shù)之前,還會做一些判斷的處理,具體沒有研究過。

Flash在嵌入式系統(tǒng)中的應(yīng)用

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

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

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

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

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

嵌入式Boot Loader

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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉