當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]關(guān)注單片機(jī)的存儲(chǔ)器在此之前,GR-SAKURA電路板(搭載瑞薩電子單片機(jī)“RX63N”)的程序設(shè)計(jì)是使用Web編譯器來進(jìn)行的。將通過編譯器搭建的程序(Object Code,結(jié)果代

關(guān)注單片機(jī)的存儲(chǔ)器

在此之前,GR-SAKURA電路板(搭載瑞薩電子單片機(jī)“RX63N”)的程序設(shè)計(jì)是使用Web編譯器來進(jìn)行的。將通過編譯器搭建的程序(Object Code,結(jié)果代碼)如同寫入U(xiǎn)盤一樣將之傳送到GR-SAKURA電路板后再執(zhí)行。那么,問題來了。寫入(傳送到)單片機(jī)的程序應(yīng)該保存在哪兒呢?另外,程序又是如何被執(zhí)行的呢?在解答這些問題的同時(shí),讓我們一起來了解一下單片機(jī)與程序的關(guān)系吧。

首先來了解存儲(chǔ)器﹑主存儲(chǔ)器和外置存儲(chǔ)器的兩種作用

記憶(保存)程序和數(shù)據(jù)的地方即存儲(chǔ)器。存儲(chǔ)器有以下兩種類型。

 


外置存儲(chǔ)器中的程序需傳送到主存儲(chǔ)器后才能執(zhí)行。

關(guān)于單片機(jī)的存儲(chǔ)器,常會(huì)看到ROM(Read Only Memory:只讀存儲(chǔ)器)和RAM(Random Access Memory:可讀寫存儲(chǔ)器)等詞匯,其實(shí)ROM和RAM僅是表示存儲(chǔ)器性質(zhì),而與存儲(chǔ)器的作用無關(guān)。(請(qǐng)參考單片機(jī)入門①,了解單片機(jī)的基本結(jié)構(gòu)和操作)

地址空間(內(nèi)存空間)

CPU能夠直接進(jìn)行讀寫的所有空間被稱為“地址空間(或內(nèi)存空間)”。這個(gè)地址空間的每個(gè)字節(jié)都標(biāo)注有號(hào)碼。這個(gè)號(hào)碼稱為“地址(address)”,一般以十六進(jìn)制來表示。上面所介紹過的主存儲(chǔ)器都包含在地址空間內(nèi)。

根據(jù)不同用途,單片機(jī)的CPU已開發(fā)出了4位、8位、16位和32位。在GR-SAKURA中使用的RX63N單片機(jī)搭載了32位的CPU,因此也被稱為“32位單片機(jī)”。那么,單片機(jī)所擁有的地址空間容量到底有多少呢?以RX63N為例,由于是32位的CPU,因此最大能夠指定約40億(2的32次方)個(gè)地址。確切地說是4,294,967,296(4x1024x1024x1024)個(gè)地址。由于一個(gè)地址可以記憶一個(gè)字節(jié),這時(shí)也可以表示為具有 “4GB(千兆字節(jié))的地址空間”。地址空間的容量越大越能搭載大容量的存儲(chǔ)器,也可容納更大的程序。因此能夠?qū)崿F(xiàn)更高功能的應(yīng)用。

32位字節(jié)的CPU所擁有的4G字節(jié)的地址空間示例如圖1所示。左邊所示的是以十六進(jìn)制標(biāo)示的地址。由于一列保存有4個(gè)字節(jié)(=32位),所以左邊所標(biāo)記的地址就是每4個(gè)地址的值。

 


計(jì)算機(jī)的單位:位、字節(jié)、兆、千兆和兆兆(太)

數(shù)據(jù)的基本單位是位(b=bit),每個(gè)位的值為“0”或“1”。8位為1個(gè)字節(jié)(B=Byte)。例如,3個(gè)字節(jié)(3×8位)等同于24位。

電腦存儲(chǔ)設(shè)備的容量所使用的單位,大家耳熟能詳?shù)挠蠯B(千字節(jié))、MB(兆字節(jié))、GB(千兆字節(jié))和TB(太字節(jié))等。一般情況下會(huì)說 1GB=1000MB或者這樣寫出來,但在計(jì)算機(jī)的世界里,此單位并非為1000倍,而是1024倍(2的10次方),因此正確的表示如下:

1KB(千字節(jié))=2的10次方 = 1,024 字節(jié)

1MB(兆字節(jié))=1,024KB = 2的20次方 1,048,576 字節(jié)

1GB(千兆字節(jié))=1,024MB = 2的30次方 = 1,073,741,824 字節(jié)

1TB(太字節(jié))=1,024GB = 2的40次方 = 1,099,511,627,776字節(jié)

表示地址的十六進(jìn)制指的是什么?

地址空間內(nèi)的地址以16進(jìn)制來表示。例如,擁有16位(2的16次方)大小的地址空間中,如果以10進(jìn)制來表示,就是“從地址0到地址65535”,如果以16進(jìn)制來表示,則是從“地址0h到地址FFFFh”。在10進(jìn)制中,每一位所取的值都在0到9之間,而在16進(jìn)制中,則是0到F(相當(dāng)于10進(jìn)制的15)。以16進(jìn)制表示的數(shù),最后都有一個(gè)“h”,標(biāo)明是以16進(jìn)制來表示的。

 

 


 

程序保存在哪兒呢?(向量表)

那么,程序被保存在地址空間的什么地方,又是怎么樣開始工作的呢?單片機(jī)復(fù)位后便開始執(zhí)行最優(yōu)先程序。復(fù)位是在接通電源或接收到復(fù)位信號(hào)時(shí)發(fā)生。實(shí)際上,這種“開始執(zhí)行最優(yōu)先程序”處理中,有如下所示的兩種方法。

即開始執(zhí)行程序時(shí),有將執(zhí)行程序的起始地址設(shè)為固定的CPU及將之設(shè)為可變地址的CPU。

在將起始地址設(shè)為固定的CPU中,大多是從地址0(地址空間中最小的地址)開始執(zhí)行。這就是程序開始的地點(diǎn)。而且,有時(shí)要事先在地址0中實(shí)現(xiàn)寫入“下一個(gè)要執(zhí)行的是地址○○”的跳轉(zhuǎn)(Jump)指令,并將程序預(yù)先放置在“地址○○”中。如果改寫“地址○○”,將可獲得與將起始地址設(shè)為可變地址同樣的效果。

將起始地址設(shè)為可變地址的CPU將起始地址寫入被稱為“向量表”的部分中(圖2)。向量表是只存放地址空間中各種起始地址的特定區(qū)域的名稱。一般來說是它放置在地址空間中最大地址的部分。

 


以RX63N為例,由于地址是以32位來顯示的,為了保存它就需要4個(gè)字節(jié)。這就意味著圖3中的“復(fù)位”部分表示從地址FFFFFFFCh到地址 FFFFFFFFh的4個(gè)字節(jié)中保存了程序的起始地址。CPU復(fù)位后將讀取保存于此的地址,并從作了標(biāo)記的地址開始執(zhí)行。被寫入向量表的不僅是復(fù)位后的起始地址,向量表中還保存發(fā)生中斷時(shí)程序的起始地址和異常處理(Exception Handling)的起始地址。也正因?yàn)楸4媪税l(fā)生中斷及異常處理等因多種事由的起始地址,所以才被稱為“表(Table)”。

我們來設(shè)想一下使用了向量表的程序處理的情況。圖3表示出了發(fā)生非屏蔽中斷(NMI) (*1) 時(shí)的處理流程例。

(1)產(chǎn)生NMI,

(2)讀取寫在向量表的NMI的起始地址(此例中為10000000h),

(3)執(zhí)行所讀取地址(10000000h)中的NMI程序。

 

[!--empirenews.page--]

(*1)非屏蔽中斷(NMI):所謂非屏蔽指的是無法禁止的意思。如有中斷請(qǐng)求,CPU將無條件地執(zhí)行中斷處理??捎糜谕ㄟ^看門狗定時(shí)器進(jìn)行的中斷處理等。關(guān)于看門狗定時(shí)器,在連載的“定時(shí)器”中已為大家作了介紹。

如上所述,在將程序的起始地址設(shè)為可變的CPU中,由于能夠通過寫入向量表來指定中斷處理的起始地址,因此具有在地址空間中自由配置中斷處理程序的特征。

本期我們介紹了CPU的地址空間與外設(shè)功能的關(guān)系、以及程序是從哪里開始執(zhí)行的等內(nèi)容。如果單片機(jī)為32位,就有非常巨大的地址空間可以使用。內(nèi)存是非常寶貴的資源,所以將保存在內(nèi)存中的程序設(shè)計(jì)得小巧非常重要,但32位單片機(jī)的地址空間已比16位的大了很多。為了縮小程序,沒有必要進(jìn)行復(fù)雜的編程,我們的程序都是在更易于讀取的目標(biāo)下來編寫的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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