單片機(jī)與程序設(shè)計(jì)(上)-設(shè)計(jì)應(yīng)用_第1頁
單片機(jī)與程序設(shè)計(jì)(上)-設(shè)計(jì)應(yīng)用_第2頁
單片機(jī)與程序設(shè)計(jì)(上)-設(shè)計(jì)應(yīng)用_第3頁
單片機(jī)與程序設(shè)計(jì)(上)-設(shè)計(jì)應(yīng)用_第4頁
單片機(jī)與程序設(shè)計(jì)(上)-設(shè)計(jì)應(yīng)用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔-下載后可編輯單片機(jī)與程序設(shè)計(jì)(上)-設(shè)計(jì)應(yīng)用在《單片機(jī)必須了解的外設(shè)功能——GPIO/串行通信》和《單片機(jī)必須了解的外設(shè)功能——定時(shí)器/中斷功能》中對(duì)利用單片機(jī)的功能進(jìn)行程序設(shè)計(jì)進(jìn)行了說明。單片機(jī)內(nèi)置了非常便于使用的外設(shè)功能,大家一定也能感受到單片機(jī)可應(yīng)對(duì)各種要求的能力。但是,如果要有效地運(yùn)行單片機(jī),程序是不可或缺的,那么程序到底是如何運(yùn)行的呢?從本期開始,我們將分上下兩篇向大家介紹單片機(jī)與程序的關(guān)系。

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

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

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

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

地址空間(內(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ī)復(fù)位后便開始執(zhí)行先程序。復(fù)位是在接通電源或接收到復(fù)位信號(hào)時(shí)發(fā)生。實(shí)際上,這種“開始執(zhí)行先程序”處理中,有如下所示的兩種方法。

即開始執(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í)程序的起始地址和異常處理(ExceptionHandling)的起始地址。也正因?yàn)楸4媪税l(fā)生中斷及異常處理等因多種事由的起始地址,所以才被稱為“表(Table)”。

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

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

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

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

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

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

本期我們介紹了CPU的地址空間與外設(shè)功能的關(guān)系、以及程序是從哪里開始執(zhí)行的等內(nèi)容。如果單片機(jī)為32位,就有非常巨

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論