1.前言
通常了解一款芯片,我們最開始從它的電特性描述出發,隨后看其外設、存儲、時鐘等系統基本框架。我相信大家拿到一款芯片之后第一件事就是去查閱其數據手冊,對芯片特性有個初步了解。
很多芯片開發者在了解芯片特性之后,會直接拷貝官方提供的例程進行調試,之后慢慢熟悉芯片,變成開發者模式。在這過程中,很多開發者往往忽略了一個重要的步驟,那就是熟悉芯片啟動原理,所以我們今天將DSP28335這款芯片的啟動原理與大家分享。
2.上電復位
顛覆我們感性認識的是,芯片上電過程不是一個瞬時過程,而是 爬坡過程 ,也就是說芯片上電也是需要時間的。
在了解芯片基本特性之后,我們清晰的知道一般芯片都有上電復位模塊(POR),也可以稱為上電延時復位,其作用是通過延時器件在上電電壓爬坡過程中把芯片鎖定在復位狀態,保證芯片模擬模塊和數字模塊初始化至已知狀態再啟動芯片。
當電壓逐漸增大,直到達到閾值電壓時,上電復位電路會釋放內部復位信號。在其他必要條件充足的情況下,芯片開始啟動。
3.BOOT ROM
BOOT ROM是芯片內部存儲器中固化好的一塊只讀存儲區,用來存放引導程序。
BOOT ROM在芯片內部存儲器中地址0x3FE000-x3FFFFF如上圖所示。
上圖是BOOT ROM中按功能分類的段地址存儲區。
CPU Vector Table,此功能區在VMAP = 1 ,ENPIE = 0的情況下使用。
再完成芯片引導程序后,此功能區其他部分被用來存放中斷向量表。
4.啟動過程
芯片上電完成后,開始運行程序。首先PC指針指向CPU Vector Table中的RESET(地址:0xFFFC0)。
通過觀察CMD文件中的RESET地址,我們發現此地址存放著.reset,通過訪問存儲區中翻譯成匯編語言的代碼,這里存放著一條跳轉指令。芯片復位后第二步,跳轉到InitBoot函數入口地址,執行InitBoot函數。
在InitBoot函數中,對器件模式、地址進行選擇,還對某些功能進行初始化。最關鍵的是調用了SelectBootMode這個函數,這個函數通過BOOT引腳狀態來決定通過哪種方式引導程序,接下來我們一起走進SelectBootMode。
DSP28335InitBoot中的SelectBootMode是通過讀取4個IO引腳的狀態決定程序引導方式。
如上圖所示定義16種狀態。
在引導方式上可以分為兩大類,一類是進行ADC校準,一類是不進行ADC校準。
SelectBootMode首先依據讀取到的引腳狀態判斷是否是不進行ADC校準,不校準直接跳過后續程序,將讀取到的引導模式的引導函數入口地址返回。
若需要ADC校準,則往下執行ADC校準。
校準后再判斷以哪種方式引導,并將引導函數入口地址返回。
返回后在InitBoot中將引導函數入口地址存入ACC,再將ACC賦予PC退出InitBoot,開始運行用戶程序。
一般我們將程序引導至FLASH(地址:0x33FFF6)。
通過工程下的CMD文件可發現0x33FFF6中存放著codestart函數,所以緊接著運行codestart函數。
codestart函數中禁止看門狗,再調用RTS中的c_int00函數。
c_int00函數中為C語言的運行搭建運行環境,然后跳轉至main函數,來到C語言的世界。
5.總結
以上是DSP28335芯片上電到運行至main函數的基本過程,其基本流程可查閱芯片技術參考手冊第二章,流程圖如下圖所示。
以上是本期全部內容,那么現在芯片就可以正常運行、萬事大吉了嗎?
當然不是,芯片啟動后還需對芯片進行一系列初始化配置,那么這又是怎樣一個過程呢?
-
芯片
+關注
關注
456文章
51170瀏覽量
427241 -
存儲器
+關注
關注
38文章
7528瀏覽量
164342 -
函數
+關注
關注
3文章
4346瀏覽量
62969 -
Boot
+關注
關注
0文章
150瀏覽量
35944 -
DSP28335
+關注
關注
22文章
59瀏覽量
40769
發布評論請先 登錄
相關推薦
dsp28335 SPI啟動方式不啟動
dsp28335如何入門:程序設計步驟
dsp28335開發板中文資料匯總(dsp28335最小系統_引腳圖_封裝_初始化程序)
![<b class='flag-5'>dsp28335</b>開發板中文資料匯總(<b class='flag-5'>dsp28335</b>最小系統_引腳圖_封裝_初始化程序)](https://file.elecfans.com/web1/M00/51/72/pIYBAFsGicKAK9UyAACKFy5XtpA011.jpg)
使用DSP28335控制電機的資料合集免費下載
![使用<b class='flag-5'>DSP28335</b>控制電機的資料合集免費下載](https://file.elecfans.com/web1/M00/BC/72/o4YBAF7CN5aADihWAACrPtAm9nQ846.png)
DSP28335學習——系統初始化
![<b class='flag-5'>DSP28335</b><b class='flag-5'>學習</b>——系統初始化](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論