<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è) > 嵌入式系統 > 設計應用 > 單片機與程序設計(上)

單片機與程序設計(上)

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

關(guān)注

本文引用地址:http://dyxdggzs.com/article/201808/385983.htm

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

首先來(lái)了解p主和外置存儲器的兩種作用

記憶(保存)程序和數據的地方即存儲器。存儲器有以下兩種類(lèi)型。


外置存儲器中的程序需傳送到主存儲器后才能執行。

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

地址空間(內存空間)

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

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

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


計算機的單位:位、字節、兆、千兆和兆兆(太)

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

電腦存儲設備的容量所使用的單位,大家耳熟能詳的有KB(千字節)、MB(兆字節)、GB(千兆字節)和TB(太字節)等。一般情況下會(huì )說(shuō) 1GB=1000MB或者這樣寫(xiě)出來(lái),但在計算機的世界里,此單位并非為1000倍,而是1024倍(2的10次方),因此正確的表示如下:

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

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

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

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

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

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


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

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

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

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

將起始地址設為可變地址的CPU將起始地址寫(xiě)入被稱(chēng)為“向量表”的部分中(圖2)。向量表是只存放地址空間中各種起始地址的特定區域的名稱(chēng)。一般來(lái)說(shuō)是它放置在地址空間中最大地址的部分。


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

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 程序設計 存儲器 單片機

評論


相關(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>