<sup id="mausa"><tr id="mausa"></tr></sup>
<object id="mausa"></object>
<sup id="mausa"><noscript id="mausa"></noscript></sup>
<sup id="mausa"><noscript id="mausa"></noscript></sup><object id="mausa"></object><sup id="mausa"><wbr id="mausa"></wbr></sup>
<sup id="mausa"><wbr id="mausa"></wbr></sup>

簡(jiǎn)述DSP的工程文件與內(nèi)部啟動(dòng)過(guò)程

本文將公司常用的DSP系列芯片作為主要描述對(duì)象,內(nèi)容涉及其工程文件的簡(jiǎn)介和啟動(dòng)過(guò)程的簡(jiǎn)單梳理,文中的內(nèi)容多來(lái)自工作實(shí)踐和自己的理解,以具體的工程應(yīng)用為主,意在與大家進(jìn)行技術(shù)交流,同時(shí)作為簡(jiǎn)單的技術(shù)積累,由于內(nèi)容主觀,不免有錯(cuò)誤的理解和描述,誤導(dǎo)之處還請(qǐng)諒解!并期待大家的提點(diǎn)!首先本文是基于DSP芯片—TMS320F2812進(jìn)行的相關(guān)技術(shù)整理,下文將要提及的地址信息全部是DSP2812默認(rèn)的片內(nèi)地址,可根據(jù)手冊(cè)查詢,對(duì)于其他系列的芯片而言,文中相關(guān)內(nèi)容僅具備對(duì)比和參考價(jià)值,特此說(shuō)明。

對(duì)于DSP2812與其他主控芯片相似,其運(yùn)行模式主要分為分為帶有仿真器的調(diào)試仿真模式和脫離仿真器的獨(dú)立運(yùn)行模式,對(duì)于DSP來(lái)說(shuō)兩者的區(qū)別在于程序是分配在RAM中還是分配在FLASH中運(yùn)行。以下主要討論的是實(shí)現(xiàn)脫離仿真器上電自動(dòng)運(yùn)行的模式,即將程序和數(shù)據(jù)分配到片內(nèi)FLASH中完成獨(dú)立運(yùn)行,仿真調(diào)試模式下文作為對(duì)比也簡(jiǎn)單說(shuō)明僅作參考。

要建立一個(gè)完整的DSP程序工程包含需要幾種必要的文件類型,其中涉及DSP啟動(dòng)過(guò)程的主要是CMD文件和asm文件,他們分別用于片內(nèi)地址分配和地址跳轉(zhuǎn),共同引導(dǎo)了DSP從啟動(dòng)到運(yùn)行的過(guò)程。

由于目前本人所應(yīng)用的DSP都未涉及連接片外存儲(chǔ)設(shè)備,因此本文中僅介紹DSP2812從片內(nèi)flash啟動(dòng)的引導(dǎo)過(guò)程。首先在芯片上電后,默認(rèn)狀態(tài)下會(huì)到固定片內(nèi)地址提取已經(jīng)固化好的中斷向量表,然后根據(jù)已固化好的地址指針,再提取程序中可能用到的函數(shù)信息,隨即進(jìn)入片內(nèi)flash的啟動(dòng)模式,該啟動(dòng)模式下默認(rèn)跳轉(zhuǎn)到0x3F7FF6(DSP2812),該地址是片內(nèi)flash的一部分,根據(jù)以上信息,就需要在CMD文件中分配flash模式啟動(dòng)區(qū)域如下:

MEMORY

{

……

BEGIN       : origin = 0x3F7FF6, length = 0x000002

PASSWDS    : origin = 0x3F7FF8, length = 0x000008

……

}

該區(qū)域命暫時(shí)名為BEGIN,截止到目前DSP默認(rèn)的啟動(dòng)流程進(jìn)入并停止在該區(qū)域中,用戶需要繼續(xù)添加程序代碼,其目的是將啟動(dòng)引入自己編寫(xiě)的C環(huán)境程序中,最終實(shí)現(xiàn)在主程序中運(yùn)行,此處的程序代碼需要寫(xiě)在asm文件中,同時(shí)在asm文件中用戶自定義的代碼名稱也要在CMD文件中映射到BEGIN的地址上,使代碼在該地址中運(yùn)行,完成啟動(dòng)引導(dǎo)。需要注意的是根據(jù)DSP2812的片內(nèi)信息,BEGIN區(qū)域距離默認(rèn)的密碼區(qū)僅有2個(gè)字的距離,只能放一個(gè)跳轉(zhuǎn)指令,實(shí)現(xiàn)跳轉(zhuǎn)。

經(jīng)過(guò)上文的簡(jiǎn)單說(shuō)明,不難看出含有跳轉(zhuǎn)代碼的asm文件是實(shí)現(xiàn)DSP啟動(dòng)引導(dǎo)的重要組成部分,將啟動(dòng)引入了C程序的入口,實(shí)現(xiàn)了DSP從啟動(dòng)到運(yùn)行C程序的過(guò)程。如果工程文件下沒(méi)有加載正確的asm文件或者類似的跳轉(zhuǎn)指令,DSP將進(jìn)入默認(rèn)啟動(dòng)區(qū) 0x3F7FF6,失去后續(xù)指令而跳不出來(lái),可能的現(xiàn)象是程序能夠正確編譯和燒寫(xiě),但是上電后DSP無(wú)法運(yùn)行編寫(xiě)的程序,使用戶陷入誤區(qū),找不到程序不運(yùn)行的真正原因。

因此對(duì)于一個(gè)正確的能夠燒寫(xiě)的DSP工程文件來(lái)說(shuō),文中的CMD文件和asm文件都是必不可少的,在以上條件下如果工程編譯無(wú)誤,將生成正確的.out燒寫(xiě)文件,該文件將分別記錄CMD的地址信息和asm中的跳轉(zhuǎn)信息,正確燒寫(xiě)后才能夠確保DSP獨(dú)立運(yùn)行。

到此基本能夠?qū)崿F(xiàn)做一個(gè)項(xiàng)目的最終目的,核心芯片DSP能夠脫離仿真器獨(dú)立運(yùn)行,而帶有仿真器的調(diào)試模式作為程序測(cè)試中的一項(xiàng)重要手段,其運(yùn)行模式與上文中的獨(dú)立運(yùn)行模式相比有相似之處也有明顯的區(qū)別,此處淺談兩者的異同,以更好的理解獨(dú)立模式下程序的啟動(dòng)與運(yùn)行。

首先兩者都能夠?qū)崿F(xiàn)芯片上電后進(jìn)入C程序運(yùn)行的過(guò)程,區(qū)別在于兩者CMD文件的地址空間分配不同,仿真模式的程序段全部來(lái)自芯片內(nèi)部的RAM區(qū)域掉電消失,同時(shí)需要仿真器,其程序RAM地址分配如下(DSP2812RAM)

MEMORY

{

……

PRAMH0     : origin = 0x3f8000, length = 0x002000

……

}

所以調(diào)試狀態(tài)下CMD文件中的映射也全部來(lái)自芯片的RAM區(qū)域,因此該模式下無(wú)需地址跳轉(zhuǎn)即能夠進(jìn)入C程序中,從而該模式下不需要asm文件指引啟動(dòng)過(guò)程,調(diào)試時(shí)需要將該文件移除,只分配正確的RAM空間即可實(shí)現(xiàn)調(diào)試。

以上僅僅是個(gè)人在實(shí)踐過(guò)程中對(duì)于DSP啟動(dòng)過(guò)程的籠統(tǒng)理解,難免偏頗,同時(shí)敘述也比較簡(jiǎn)單、粗糙,但仍然希望能與大家分享和討論,以增進(jìn)彼此對(duì)于軟硬件方面理解。當(dāng)然其中的錯(cuò)誤也期待大家的善意批評(píng)和指點(diǎn),最后希望以上的內(nèi)容能夠帶給大家些許幫助或啟發(fā),以達(dá)到技術(shù)交流的目的,彼此都能夠有所收獲,不勝感激!

Copyright © 2015 黑龍江特通電氣股份有限公司. 保留所有權(quán)利。 黑ICP備10003763號(hào)-1 黑公安網(wǎng)備23010902000227隱私政策 使用條款 銷售政策 網(wǎng)站地圖
技術(shù)支持: 龍采科技
女人30如狼40如虎是真的么,久久香蕉国产线熟妇人妻,男人的又粗又长又硬有办法吗,精品人妻无码一区二区三区4
永城市| 秀山| 原阳县| 抚州市| 苏尼特左旗| 萨嘎县| 武川县| 和平县| 台湾省| 公主岭市| 定安县| 平罗县| 白河县| 浪卡子县| 井陉县| 墨竹工卡县| 吉首市| 望江县| 庆阳市| 信宜市| 泽库县| 湖州市| 荔波县| 怀来县| 鲁山县| 会东县| 大理市| 永嘉县| 高青县| 涟源市| 新龙县| 旬阳县| 北辰区| 沈阳市| 农安县| 图们市| 信宜市| 南宁市| 大渡口区| 临夏市| 庆城县| http://www.300my.com http://www.9lcz.com http://www.2458pc.com http://www.c4454.com http://www.12345tt.com http://www.nw7s.com