1.前言
在上一節(jié)中,我們進行了系統(tǒng)初始化,對時鐘源進行分頻倍頻得到所需的系統(tǒng)時鐘。但我漏了重點,在配置前需要包含系統(tǒng)級頭文件#include "DSP28x_Project.h",可以把它理解成芯片數(shù)據(jù)包,封裝好了外設及系統(tǒng)的寄存器。
這一節(jié)我們進行系統(tǒng)配置的最后一個環(huán)節(jié),GPIO及中斷初始化配置。
2.Initialize GPIO
通常我們的DSP28335是作為一個電子電路系統(tǒng)的主控芯片,其外圍掛載了很多器件或電路。在用戶程序開始工作前,通常我們需要將IO口初始化成已知電位,且可根據(jù)電路情況進行調(diào)整。
上圖是TI官方的例程示范,根據(jù)需要調(diào)整GPIO初始化函數(shù)中的相關配置,達到初始化的目的。
這一環(huán)節(jié)的作用是為了避免我們后續(xù)初始化中斷向量表后直接有中斷產(chǎn)生的情況(意思就是我們的用戶程序還沒運行就有未知的中斷發(fā)生,顯然不是我們預期的結果)。
首先關閉所有中斷。
然后初始化中斷控制寄存器。
28335有12組中斷控制寄存器,一一對應著IE的12個中斷。
禁止CPU中斷,清除CPU中斷標志位。
在這里很多人可能會有疑問,這個PIE與IE到底是什么,怎么都要初始化?其實,CPU一次只能執(zhí)行一個中斷,當我們同時打開多個中斷并都產(chǎn)生中斷標志時,我們就需要對其進行管理,而PIE是中斷的控制器,能夠依據(jù)用戶設置對中斷進行管理。
上圖非常清晰地體現(xiàn)了PIE與IE的關系。
4.初始化PIE向量表
PIE可管理96個中斷,那么這96個中斷的中斷服務函數(shù)的入口地址我們需要進行指定,PIE中斷向量表存儲相對應中斷服務函數(shù)的入口地址。在某個中斷服務函數(shù)需要運行時PIE將查詢中斷向量表,并將表中入口地址賦予CPU中斷執(zhí)行。
上圖是PIE管理的中斷類型及其向量表偏移地址。
上圖是PIE部分組的中斷向量地址。
一般調(diào)用InitPieVectTable()函數(shù)將中斷服務函數(shù)入口地址存入中斷向量表中對應位置。在后續(xù)的用戶程序中,我們可以靈活的修改默認的中斷服務函數(shù),但是要重新刷新入口地址(后續(xù)用到時詳細說明)。
5.用戶代碼
系統(tǒng)初始化在這里已經(jīng)全部完成,接下來就是用戶代碼。
我們根據(jù)工程需要初始化相關外設,編寫用戶程序?qū)崿F(xiàn)相關功能。然后就到了自由發(fā)揮的大舞臺嘍!
截止到目前為止,DSP28335的工程創(chuàng)建、系統(tǒng)初始化配置都已經(jīng)完成了,接下來我們將開始系統(tǒng)模塊和常用外設的學習。
-
寄存器
+關注
關注
31文章
5434瀏覽量
124528 -
中斷
+關注
關注
5文章
905瀏覽量
42809 -
GPIO
+關注
關注
16文章
1280瀏覽量
54120 -
DSP28335
+關注
關注
22文章
59瀏覽量
41535 -
時鐘源
+關注
關注
0文章
98瀏覽量
16328
發(fā)布評論請先 登錄
DSP28335的_程序設計步驟
一個新手對stm32啟動和中斷向量表的理解
中斷向量表里有什么
設置中斷向量表的過程
DSP28335的應用是什么
dsp28335開發(fā)板中文資料匯總(dsp28335最小系統(tǒng)_引腳圖_封裝_初始化程序)

ARM中斷向量表與響應流程的系列資料詳細說明

如何智能設置中斷向量表?| 簡單實用技能

DSP28335學習——系統(tǒng)初始化

評論