工控網(wǎng)首頁
>

應用設計

>

基于DSP TMS320F206的仿真調試

基于DSP TMS320F206的仿真調試

2014/7/3 10:54:43

TMS320F206(以下簡稱F206)是C2XX系列DSP中的一個產(chǎn)品,其獨有的片內(nèi)32KB的閃速存儲器FLASH使其仿真調試與眾不同。F206帶有程序、數(shù)據(jù)和I/O三個相互獨立的存儲空間,每個存儲空間均為64K?16位,其中片內(nèi)雙訪問RAM為544字(288字用于數(shù)據(jù),另256字可用于程序/數(shù)據(jù)),片內(nèi)FLASH為32K字,片內(nèi)單訪問RAM為4.5K字,其具體分布如表1所示。 F206的仿真調試 ● F206仿真調試的特點     F206的仿真調試器沒有采用傳統(tǒng)的插入仿真的方法,而是通過仿真器與DSP芯片上的幾個仿真引腳間通信實現(xiàn),F(xiàn)206具有符合IEEE1149.1標準的JTAG邏輯掃描電路,掃描仿真不僅克服了因仿真電纜過長而引起的信號失真,而且克服了傳統(tǒng)單片機“插入式”仿真方式脫機運行時就出錯的缺點。利用聞亭公司生產(chǎn)的EPP_XDS510仿真器進行系統(tǒng)的在線仿真調試,其一端與計算機的并口相連,另一端通過一雙列14腳的仿真插頭與F206通信。 ● 問題的提出     如果所要進行仿真的硬件裝置沒有外部存儲器,此種情況下如何實現(xiàn)仿真呢?若將程序完全定位至8000H開始的片上SARAM內(nèi),則與F206中斷向量表應該定位至0000H相矛盾,從而中斷進一步程序將不可能正確運行;若將程序完全定位至0000H開始的FLASH內(nèi),雖保證了中斷進一步程序可以正確運行,但是由于在FLASH內(nèi)無法設置斷點,所以此種情況下不能順利進行仿真調試;若將中斷向量表定位至0000H的FLASH內(nèi),將程序的其他部分定位至8000H內(nèi),可以保證中斷進一步程序的正確執(zhí)行,也可以在SARAM內(nèi)設置斷點,似乎是一種可行的方法,但是程序每改動一點,也就意味著中斷向量表也要做相應的修改,即要再次將中斷向量表燒寫到FLASH內(nèi),不僅麻煩而且對FLASH也有損傷。 ● 問題的解決     針對以上種種方案存在的弊端,筆者提出了一種行之有效的解決辦法,那就是將中斷向量表和程序都定位至8000H開始的SARAM內(nèi),而在0000H燒寫進一定的跳轉語句,這樣既保證了中斷的正確執(zhí)行,程序斷點的調試,同時對FLASH也只要進行一次燒寫即可。     首先完成跳轉語句的燒寫。F206的FLASH燒寫必須具備如下幾個前提:FLASH燒寫工作只能在WIN98操作系統(tǒng)下完成,在WIN2000操作系統(tǒng)下將會顯示窗口初始化失敗,被強行關閉;時鐘頻率必須為20MHz。     相應的CMD文件為:     MEMORY     { PAGE 0: VECB rg= 0000h,length=40h     ......     PAGE 1:     ......     }     SECTIONS     { vectorb : {} > VECB PAGE 0     ......     }     相應的vectorb的程序為如下。     *File: vectorb.h *     *File defines Interrupt vector labels *     .global _c_int0     .global _c_int1     .global _c_int2     .global _c_int3     .sect "vectorb"     b 8000h ;硬件復位c_int0     b 8002h ;外部中斷1 /INT1     b 8004h ;外部中斷2 INT2/INT3     b 8006h ;定時器中斷     nop     nop     b 8000h     b 8000h ;保留     b 8000h ;保留     b 8000h ;保留     nop     nop     b 8000h     b 8000h     b 8000h     b 8000h     假設燒寫程序在EOADEPP目錄下,則將上述工程編譯并建立形成的TZ.OUT文件也復制到同樣的EOADEPP目錄下,然后執(zhí)行如下燒寫語句。 EOADEPP>RG2XXPP -P 280 -M 0X0006 -S 0X4007 -W 6 -E SRCC2XX_SPX.OUT TZ.OUT即可。     在跳轉語句的燒寫完成后,即可將中斷向量表和程序都定位至8000H開始的SARAM內(nèi),這樣在SARAM內(nèi)既可很方便設置斷點,同時已經(jīng)燒寫進FLASH的跳轉語句又能保證中斷的正確執(zhí)行,且每次對程序修改后無需再次對FLASH燒寫,只要重新生成.OUT文件,然后執(zhí)行CCS的FILE菜單下的LOAD PROGRAM即可。   相應的CMD文件如下。    MEMORY    { PAGE 0:    VEC rg=8000h,length=40h     PROG rg=8050h,length=0600h     PAGE 1:     RAM_B2 rg=60h,length=20h     RAM_B0 rg=0200h,length=0100h     RAM_B1 rg=0300h,length=0100h     DATAS rg=11ffh,length=0600h     }     SECTIONS     { .data : {} > RAM_B0 PAGE 1     .stack: {}> DATAS PAGE 1     .bss : {}>DATAS PAGE 1     /******************************************/     vectors : {} > VEC PAGE 0     .text : load > PROG, PAGE 0     .mirro : {} > PROG PAGE 0     .cinit : {} > PROG PAGE 0     }     相應的vectors中斷向量表的程序如下。     * File: vector.h *     * File defines Interrupt vector labels *     .global _c_int0     .global _c_int1     .global _c_int2     .global _c_int3     .sect "vectors"     b _c_int0 ;硬件復位c_int0     b _c_int1 ;外部中斷1 /INT1     b _c_int2 ;外部中斷2 INT2/INT3     b _c_int3 ;定時器中斷     nop     nop     b _c_int0     b _c_int0 ;保留     b _c_int0 ;保留     b _c_int0 ;保留     nop     nop     b _c_int0     b _c_int0     b _c_int0     b _c_int0 結語     針對具有片內(nèi)FLASH的DSP芯片TMS320F206,在沒有片外RAM的情況下如何方便有效的進行仿真調試,本文提出了一種行之有效的解決辦法,以期對各位致力于DSP研究開發(fā)的同仁有所幫助。

投訴建議

提交

查看更多評論
其他資訊

查看更多

2025中歐綠色建筑工業(yè)化論壇9月北京啟幕 全球智慧共推建筑產(chǎn)業(yè)“雙碳”轉型

喜訊!華強電子網(wǎng)榮獲“2025年中國產(chǎn)業(yè)互聯(lián)網(wǎng)創(chuàng)新企業(yè)”

深入實施“人工智能+”行動 浪潮軟件集團看好人工智能+工業(yè)質檢廣闊前景,持續(xù)布局線纜行業(yè)智能質檢

海爾新增2家卓越級智能工廠,總數(shù)品類行業(yè)雙第一

深度剖析格力打破磁懸浮壓縮機國外壟斷,底氣來自對自主創(chuàng)新的堅守!