機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
TMS320VC5410 DSP的DSP/BIOS擴(kuò)展尋址的實(shí)現(xiàn)
TMS320VC5410 DSP的DSP/BIOS擴(kuò)展尋址的實(shí)現(xiàn)
 更新時(shí)間:2008-8-3 15:54:19  點(diǎn)擊數(shù):42
【字體: 字體顏色

(9) 保存配置文件為testfar.cdb, 然后將testfar.cdb、testfar.cmd、testfar.c 文件加入工程中。

(10) 配置編譯器和匯編器支持遠(yuǎn)模式代碼打開(kāi)菜單Project 中的Build Options 窗體, 選擇Compiler 屬性頁(yè), 點(diǎn)擊Category 中的Advanced 選項(xiàng), 勾選Use Far Calls(-mf)(C548 and higher)。此選項(xiàng)指定產(chǎn)生遠(yuǎn)調(diào)用代碼模式。

(11) 在調(diào)試器內(nèi)描述并激活擴(kuò)展尋址功能。仿真器的調(diào)試軟件需要激活擴(kuò)展尋址功能才能支持長(zhǎng)指令的執(zhí)行和擴(kuò)展存儲(chǔ)區(qū)的讀/ 寫(xiě)方便地對(duì)使用擴(kuò)展尋址的程序進(jìn)行調(diào)試。所以使用通用擴(kuò)展函數(shù)GEL_XMDef() 來(lái)定義映射寄存器(如XPC)和映射擴(kuò)展空間的首地址。如當(dāng)OVLY=1時(shí), 擴(kuò)展程序區(qū)從0x8000開(kāi)始, 7 XPC 放置在數(shù)據(jù)空間的0x1E 單元中, 并把下面兩條語(yǔ)句加入到C5410.gel 文件的C5410_Init() 函數(shù)中。

GEL_XMDef(0,0x1e,1,0x8000,0x7f);

//0:映射程序空間;0x1e:XPC 的地址;XPC 在數(shù)據(jù)空間中;

//0x8000:映射首地址;0x7f:XPC 的大小,128頁(yè);

GEL_XMOn();// 使能擴(kuò)展地址映射

6 DSP/BIOS 函數(shù)調(diào)用和中斷觸發(fā)過(guò)程

6.1 DSP/BIOS 函數(shù)調(diào)用過(guò)程

DSP/BIOS API 調(diào)用過(guò)程如圖3 中的實(shí)線所示。具體過(guò)程如下

(1) 產(chǎn)生PRD_F_swi, 短調(diào)用C 語(yǔ)言封裝器的PRD_F_swi(), XPC=0。

(2)C 語(yǔ)言封裝器觸發(fā)PRD_POST_SWI 時(shí)鐘軟中斷, 然后檢測(cè)SWI_PAGE1, 產(chǎn)生執(zhí)行DSP/BIOS調(diào)度表的分支。

(3)DSP/BIOS 調(diào)度表保存當(dāng)前PRD_POST_SWI上下文信息調(diào)用函數(shù)鏈接器以觸發(fā)SWI_PAGE1。

(4)函數(shù)鏈接器遠(yuǎn)調(diào)用SWI_PAGE1,執(zhí)行相應(yīng)的函數(shù)(Page1Func),XPC=1。

(5)SWI_PAGE1 執(zhí)行結(jié)束,遠(yuǎn)返回函數(shù)鏈接器。

(6)函數(shù)鏈接器又返回到DSP/BIOS 調(diào)度表。

(7)DSP/BIOS 調(diào)度表恢復(fù)PRD_POST_SWI 信息,返回到C 語(yǔ)言封裝器。

(8)執(zhí)行上述(1)(2),(3)步觸發(fā)SWI_PAGE2,函數(shù)鏈接器遠(yuǎn)調(diào)用SWI_PAGE2,執(zhí)行函數(shù)(Page2Func),XPC=2。

(9)SWI_PAGE2 執(zhí)行結(jié)束,遠(yuǎn)返回函數(shù)鏈接器,然后順序執(zhí)行上述的第(6)(7)。

6.2 中斷觸發(fā)過(guò)程

中斷觸發(fā)過(guò)程如圖3中的虛線所示。

(1)PRD_F_swi 發(fā)生,CPU 把當(dāng)前的16PC 指針壓入堆棧,在中斷向量表中取指令

(2)中斷向量程序把當(dāng)前的XPC 壓入堆棧,產(chǎn)生一個(gè)配置中斷服務(wù)程序的分支指令,執(zhí)行中斷服務(wù)程序,XPC=0。

(3)中斷服務(wù)程序調(diào)用HWI_enter, 觸發(fā)PRD_POST_SWI 軟中斷,接著調(diào)用HWI_exit 檢測(cè)到SWI_PAGE1準(zhǔn)備好, 開(kāi)始調(diào)用DSP/BIOS 調(diào)度表

(4)DSP/BIOS 調(diào)度表保存當(dāng)前的上下文信息,調(diào)用函數(shù)鏈接器以觸發(fā)SWI_PAGE1。

(5)函數(shù)鏈接器遠(yuǎn)調(diào)用SWI_PAGE1,執(zhí)行相應(yīng)的函數(shù),此時(shí)XPC=1。SWI_PAGE1 執(zhí)行完,遠(yuǎn)返回調(diào)用函數(shù)鏈接器再到DSP/BIOS調(diào)度表,調(diào)度表恢復(fù)上下文信息,把程序指針交給PRD_POST_SWI 軟中斷。PRD_POST_SWI 結(jié)束。

(6)執(zhí)行上述(1)、(2)步后,第(3)步檢測(cè)到SWI_PAGE2 準(zhǔn)備好第(4)步觸發(fā)SWI_PAGE2,(5)步函數(shù)鏈接器遠(yuǎn)調(diào)用SWI_PAGE2,XPC=2,順序執(zhí)行下去,直到PRD_POST_SWI 結(jié)束。

7 并行自舉引導(dǎo)的實(shí)現(xiàn)

TMS320VC5410 上電復(fù)位后,檢查到DSP 處于MC(微計(jì)算機(jī))工作方式, 從片內(nèi)ROM 0FF80h 起執(zhí)行程序0FF80h 地址存放的是中斷向量表,它實(shí)為一條分支轉(zhuǎn)移指令(BD 0F800h),使程序跳轉(zhuǎn)至0F800h執(zhí)行

自舉引導(dǎo)程序(BootLoader)。并行自舉引導(dǎo)是DSP 自舉引導(dǎo)常用的一種方式, BootLoader 首先從地址為0FFFFh I/O 口讀取自舉表首地址的內(nèi)容, 如果此內(nèi)容不符合8位或16位的引導(dǎo)方式, 就從地址為0FFFFh的數(shù)據(jù)存儲(chǔ)器讀取, 進(jìn)行8位或16位并行自舉引導(dǎo)。若要完成自舉引導(dǎo)功能,必須建立正確的自舉表。

自舉表的內(nèi)容不僅包括欲加載的各段代碼,而且包括各段代碼的長(zhǎng)度、各代碼段存放的目標(biāo)地址、程序入口地址等信息自舉表可由hex500 格式轉(zhuǎn)換器自動(dòng)生成。hex500 是一個(gè)通用程序,它將公共目標(biāo)文件格式——COFF 文件轉(zhuǎn)換成各種FLASH(或EPROM)的編程格式因此,在使用hex500 工具之前,首先把testfar.pjt 進(jìn)行編譯鏈接,生成COFF 格式的testfar.out 文件,然后再通過(guò)設(shè)置適當(dāng)?shù)倪x項(xiàng)生成用戶所要求的自舉表,如轉(zhuǎn)換文件的格式、外部數(shù)據(jù)存儲(chǔ)器的字寬等選項(xiàng)testfar.out 轉(zhuǎn)換為testfar.hex 文件后, 再使用C 語(yǔ)言編寫(xiě)一個(gè)轉(zhuǎn)換程序, hex 文件轉(zhuǎn)換為DSP 燒寫(xiě)FLASH 程序能識(shí)別的文件格式。根據(jù)文件信息就可以完成自舉表的內(nèi)容如表1 所示。最后使用FLASH 的擦除、讀寫(xiě)等操作指令把表1 的內(nèi)容燒入FLASH 。 DSP 上電復(fù)位,便可完成并行自舉引導(dǎo)。

整個(gè)引導(dǎo)過(guò)程為上電復(fù)位后判斷MP/MC=0 處于微計(jì)算機(jī)工作方式,從片內(nèi)ROM 的0FF80h 處執(zhí)行中斷向量表的分支轉(zhuǎn)移指令(BD 0F800h), 使程序跳轉(zhuǎn)至0F800h 處執(zhí)行自舉引導(dǎo)程序。自舉引導(dǎo)程序完成初始化后讀取數(shù)據(jù)空間的OFFFFh 地址的內(nèi)容, 找到自舉表首地址8000h, 8000h 處開(kāi)始讀取內(nèi)容, 首先是16位自舉標(biāo)記(10AA), 然后分別是寄存器SWWSR BSCR的內(nèi)容程序入口地址、代碼段長(zhǎng)度存放代碼段的目標(biāo)地址等信息,根據(jù)這些信息把FLASH 中的8008H-A594H的程序搬運(yùn)到片內(nèi)RAM, 然后把Page1FuncPage2Func 的代碼搬運(yùn)到0x18000 0x28000, 最后跳轉(zhuǎn)至片內(nèi)RAM26FDH, PC 26FDH, XPC 0, 開(kāi)始執(zhí)程序這樣即完成程序的并行自舉過(guò)程。

使用DSP/BIOS 可以很好地實(shí)現(xiàn)擴(kuò)展尋址功能, 把程序燒寫(xiě)入FLASH , 復(fù)位DSP 使其處于MC 工作方式, 便可使用示波器測(cè)試XF引腳, 觀察程序運(yùn)行正確與否



  • 上一篇: 單片機(jī)系統(tǒng)加密中的動(dòng)態(tài)反跟蹤措施
  • 下一篇: 基于DSP的流星信道模擬器設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1