<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 學(xué)習(xí)方法與實踐 > DSP入門導(dǎo)讀(4)

          DSP入門導(dǎo)讀(4)

          ——
          作者: 時間:2007-10-29 來源:嵌入式技術(shù)網(wǎng) 收藏
          什么是boot loader? 

          的速度快,EPROM或flash的速度較慢,而片內(nèi)的RAM很快,片外的RAM也較快。為了使充分發(fā)揮它的能力,必須將程序代碼放在RAM中運行。為了方便的將代碼從ROM中搬到RAM中,在不帶flash的DSP中,TI在出廠時固化了一段程序,在上電后完成從ROM或外設(shè)將代碼搬到用戶指定的RAM中。此段程序稱為“boot loader”。   



          TMS320C3x如何boot? 

          在MC/MP管腳為高時,C3x進(jìn)入boot狀態(tài)。C3x的boot loader在reset時,判斷外部中斷管腳的電平。根據(jù)中斷配置決定boot的方式為存儲器加載還是串口加載,其中ROM的地址可以為三個中的一個,ROM可以為8位。   



          Boot有問題如何解決? 
          1)仔細(xì)檢查boot的控制字是否正確。 
          2)仔細(xì)檢查外部管腳設(shè)置是否正確。 
          3)仔細(xì)檢查hex文件是否轉(zhuǎn)換正確。 
          4)用仿真器跟蹤boot過程,分析錯誤原因。   



          DSP為什么要初始化? 

          DSP在RESET后,許多的寄存器的初值一般同用戶的要求不一致,例如:等待寄存器,SP,中斷定位寄存器等,需要通過初始化程序設(shè)置為用戶要求的數(shù)值。 初始化程序的主要作用: 
          1)設(shè)置寄存器初值。 
          2)建立中斷向量表。 
          3)外圍部件初始化。   



          DSP有哪些數(shù)學(xué)庫及其它應(yīng)用軟件? 

          TI公司為了方便客戶開發(fā)DSP,在它的網(wǎng)站上提供了許多程序的示例和應(yīng)用程序,如MATH庫,F(xiàn)FT,F(xiàn)IR/IIR等,可以在TI的網(wǎng)頁免費下載。   



          如何獲得DSP專用算法? 

          TI有許多的Third Party可以通過DSP上的多種算法軟件。可以通過TI的網(wǎng)頁搜索你所需的算法,找到通過算法的公司,同相應(yīng)的公司聯(lián)系。注意這些算法都是要付費的。   



          eXpressDSP是什么? 

          eXpressDSP是一種實時DSP軟件技術(shù),它是一種DSP編程的標(biāo)準(zhǔn),利用它可以加快你開發(fā)DSP軟件的速度。以往DSP軟件的開發(fā)沒有任何標(biāo)準(zhǔn),不同的人寫的程序一般無法連接在一起。DSP軟件的調(diào)試工具也非常不方便。使得DSP軟件的開發(fā)往往滯后于硬件的開發(fā)。 eXpressDSP集成了CCS(Code Composer Studio)開發(fā)平臺,DSP BIOS實時軟件平臺,DSP算法標(biāo)準(zhǔn)和第三方支持四部分。利用該技術(shù),可以使你的軟件調(diào)試,軟件進(jìn)程管理,軟件的互通及算法的獲得,都便的容易。這樣就可以加快你的軟件開發(fā)進(jìn)程。 
          1)CCS是eXpressDSP的基礎(chǔ),因此你必須首先擁有CCS軟件。 
          2)DSP BIOS是eXpressDSP的基本平臺,你必須學(xué)會所有DSP BIOS。 
          3)DSP算法標(biāo)準(zhǔn)可以保證你的程序可以方便的同其它利用eXpressDSP技術(shù)的程序連接在一起。同時也保證你的程序的延續(xù)性。   



          為什么要用DSP? 

          3G技術(shù)和internate的發(fā)展,要求處理器的速度越來越高,體積越來越小,DSP的發(fā)展正好能滿足這一發(fā)展的要求。因為,傳統(tǒng)的其它處理器都有不同的缺陷。MCU的速度較慢;CPU體積較大,功耗較高;嵌入CPU的成本較高。 DSP的發(fā)展,使得在許多速度要求較高,算法較復(fù)雜的場合,取代MCU或其它處理器,而成本有可能更低。   



          如何選擇DSP? 

          選擇DSP可以根據(jù)以下幾方面決定: 
          1)速度: DSP速度一般用MIPS或FLOPS表示,即百萬次/秒鐘。根據(jù)您對處理速度的要求選擇適合的器件。一般選擇處理速度不要過高,速度高的DSP,系統(tǒng)實現(xiàn)也較困難。 
          2)精度: DSP芯片分為定點、浮點處理器,對于運算精度要求很高的處理,可選擇浮點處理器。定點處理器也可完成浮點運算,但精度和速度會有影響。 
          3)尋址空間: 不同系列DSP程序、數(shù)據(jù)、I/O空間大小不一,與普通MCU不同,DSP在一個指令周期內(nèi)能完成多個操作,所以DSP的指令效率很高,程序空間一般不會有問題,關(guān)鍵是數(shù)據(jù)空間是否滿足。數(shù)據(jù)空間的大小可以通過DMA的幫助,借助程序空間擴(kuò)大。 
          4)成本: 一般定點DSP的成本會比浮點DSP的要低,速度也較快。要獲得低成本的DSP系統(tǒng),盡量用定點算法,用定點DSP。 
          5)實現(xiàn)方便: 浮點DSP的結(jié)構(gòu)實現(xiàn)DSP系統(tǒng)較容易,不用考慮尋址空間的問題,指令對C語言支持的效率也較高。 
          6)內(nèi)部部件:根據(jù)應(yīng)用要求,選擇具有特殊部件的DSP。如:C2000適合于電機控制;OMAP適合于多媒體等。 
          要了解DSP芯片的性能,本網(wǎng)中的"DSP及相關(guān)器件"中有介紹。   



          DSP同MCU相比的特點? 

          1)DSP的速度比MCU快,主頻較高。 
          2)DSP適合于數(shù)據(jù)處理,數(shù)據(jù)處理的指令效率較高。 
          3)DSP均為16位以上的處理器,不適合于低檔的場合。 
          4)DSP可以同時處理的事件較多,系統(tǒng)級成本有可能較低。 
          5)DSP的靈活性較好,大多數(shù)算法都可以軟件實現(xiàn)。 
          6)DSP的集成度較高,可靠性較好。   



          DSP同嵌入CPU相比的特點? 

          1) DSP是單片機,構(gòu)成系統(tǒng)簡單。 
          2)DSP的速度快。 
          3)DSP的成本較低。 
          4)DSP的性能高,可以處理較多的任務(wù)。   



          如何編寫C2000片內(nèi)Flash? 

          DSP中的Flash的編寫方法有三中: 
          1.通過仿真器編寫:在我們的網(wǎng)頁上有相關(guān)的軟件,在銷售仿真器時我們也提供相關(guān)軟件。其中 LF240x的編寫可以在CCS中加入一個插件,F(xiàn)24x的編寫需要在windows98下的DOS窗中進(jìn)行。具體步驟見軟件中的readme。有幾點需要注意: a.必須為MC方式; b.F206的工作頻率必須為20MHz; c.F240需要根據(jù)PLL修改C240_CFG.I文件。建議外部時鐘為20MHz。 d.LF240x也需要根據(jù)PLL修改文件。 d.如果編寫有問題,可以用BFLWx.BAT修復(fù)。 
          2.提供串口編寫:TI的網(wǎng)頁上有相關(guān)軟件。注意只能編寫一次,因為編寫程序會破壞串口通信程序。 
          3.在你的程序中編寫:TI的網(wǎng)頁上有相關(guān)資料。   


          如何編寫DSP外部的Flash? 

          DSP的外部Flash編寫方法: 
          1.通過編程器編寫:將OUT文件通過HEX轉(zhuǎn)換程序轉(zhuǎn)換為編程器可以接受的格式,再由編程器編寫。 
          2.通過DSP軟件編寫:您需要根據(jù)Flash的說明,編寫Flash的編寫程序,將應(yīng)用程序和編寫Flash的程序分別load到RAM中,運行編寫程序編寫。   


          對于C5000,大于48K的程序如何BOOT? 

          對于C5000,片內(nèi)的BOOT程序在上電后將數(shù)據(jù)區(qū)的內(nèi)容,搬移到程序區(qū)的RAM中,因此FLASH必須在RESET后放在數(shù)據(jù)區(qū)。由于C5000,數(shù)據(jù)區(qū)的空間有限,一次BOOT的程序不能對于48K。解決的方法如下: 
          1.在RESET后,將FLASH譯碼在數(shù)據(jù)區(qū),RAM放在程序區(qū),片內(nèi)BOOT程序?qū)⒊绦駼OOT到RAM中。 
          2.用戶初試化程序發(fā)出一個I/O命令(如XF),將FLASH譯碼到程序區(qū)的高地址。開放數(shù)據(jù)區(qū)用于其它的RAM。 
          3.用戶初試化程序中包括第二次BOOT程序(此程序必須用戶自己編寫),將FLASH中沒有BOOT的其它代碼搬移到RAM中。 
          4.開始運行用戶處理程序。   



          DSP外接存儲器的控制方式?

          對于一般的存儲器具有RD、WR和CS等控制信號,許多DSP(C3x、C5000)都沒有控制信號直接連接存儲器,一般采用的方式如下: 
          1.CS有地址線和PS、DS或STRB譯碼產(chǎn)生; 
          2./RD=/STRB+/R/W; 
          3./WR=/STRB+R/W。   



          GEL文件的功能? 

          GEL文件的功能同emuinit.cmd的功能基本相同,用于初始化DSP。但它的功能比emuinit的功能有所增強,GEL在CCS下有一個菜單,可以根據(jù)DSP的對象不同,設(shè)置不同的初始化程序。以TMS320LF2407為例: 
          #define SCSR1 0x7018 ;定義scsr1寄存器 
          #define SCSR2 0X7019 ;定義scsr2寄存器 
          #define WDKEY 0x7025 ;定義wdkey寄存器 
          #define WDNTR 0x7029 ;定義wdntr寄存器 
          StartUp() ; 開始函數(shù) 

          GEL_MapReset(); ; 存儲空間復(fù)位 GEL_MapAdd(0x0000,0,0x7fff,1,1); 定義程序空間從0000-7fff 可讀寫 
          GEL_MapAdd(0x8000,0,0x7000,1,1); 定義程序空間從8000-f000 可讀寫 
          GEL_MapAdd(0x0000,1,0x10000,1,1); 定義數(shù)據(jù)空間從0000-10000可讀寫 
          GEL_MapAdd(0xffff,2,1,1,1); 定義i/o 空間0xffff可讀寫 
          GEL_MapOn(); 存儲空間打開 
          GEL_MemoryFill(0xffff,2,1,0x40); 在i/o空間添入數(shù)值40h 
          *(int *)SCSR1=0x0200; 給scsr1寄存器賦值 
          *(int *)SCSR2=0x000C; 給scsr2寄存器賦值,在這里可以進(jìn)行mp/mc方式的轉(zhuǎn)換 
          *(int *)WDNTR=0x006f; 給wdntr寄存器賦值 
          *(int *)WDKEY=0x055; 給wdkey寄存器賦值 
          *(int *)WDKEY=0x0AA; 給wdkey寄存器賦值 
          }   



          使用TI公司模擬器件與DSP結(jié)合使用的好處。 

          1)在使用TI公司的DSP的同時,使用TI公司的模擬可以和DSP進(jìn)行無縫連接。器件與器件之間不需要任何的連接或轉(zhuǎn)接器件。這樣即減少了板卡的尺寸,也降低了開發(fā)難度。 
          2)同為TI公司的產(chǎn)品,很多器件可以固定搭配使用。少了器件選型的煩惱 
          3)TI在CCS中提供插件,可以用于DSP和模擬器件的開發(fā),非常方便。   



          C語言中可以嵌套匯編語言? 

          可以。在ANSI C標(biāo)準(zhǔn)中的標(biāo)準(zhǔn)用法就是用C語言編寫主程序,用匯編語言編寫子程序,中斷服務(wù)程序,一些算法,然后用C語言調(diào)用這些匯編程序,這樣效率會相對比較高。



          在定點DSP系統(tǒng)中可否實現(xiàn)浮點運算?

          當(dāng)然可以,因為DSP都可以用C,只要是可以使用c語言的場合都可以實現(xiàn)浮點運算。   



          JTAG頭的使用會遇到哪些情況? 

          1)DSP的CLKOUT沒有輸出,工作不正常。 
          2)Emu0,Emu1需要上拉。 
          3)TCK的頻率應(yīng)該為10M。 
          4)在3.3V DSP中,PD腳為3.3V 供電,但是仿真器上需要5V電壓供電,所以PP仿真器盒上需要單獨供電。 
          5)仿真多片DSP。在使用菊花鏈的時候,第一片DSP的TDO接到第二片DSP的TDI即可。注意當(dāng)串聯(lián)DSP比較多的時候,信號線要適當(dāng)?shù)脑黾域?qū)動。



          include頭文件(.h)的主要作用?

          頭文件,一般用于定義程序中的函數(shù)、參數(shù)、變量和一些宏單元,同庫函數(shù)配合使用。因此,在使用庫時,必須用相應(yīng)的頭文件說明。   



          DSP中斷向量的位置?

          1)2000系列dsp的中斷向量只能從0000H處開始。所以在我們調(diào)試程序的時候,要把DSP選擇為MP(微處理器方式),把片內(nèi)的Flash屏蔽掉,免去每次更改程序都要重新燒寫Flash工作。 
          2)3x系列dsp的中斷向量也只能在固定的地址。 
          3)5000,6000系列dsp的中斷向量可以重新定位。但是它只能被重新定位到Page0范圍內(nèi)的任何空間。   


          有源晶振與晶體的區(qū)別,應(yīng)用范圍及用法?

          1)晶體需要用DSP片內(nèi)的振蕩器,在datasheet上有建議的連接方法。晶體沒有電壓的問題,可以適應(yīng)于任何DSP,建議用晶體。 
          2)有源晶振不需要DSP的內(nèi)部振蕩器,信號比較穩(wěn)定。有源晶振用法:一腳懸空,二腳接地,三腳接輸出,四腳接電壓。   


          程序經(jīng)常跑飛的原因?

          1)程序沒有結(jié)尾或不是循環(huán)的程序。 
          2)nmi管腳沒有上拉。 
          3)在看門狗動作的時候程序會經(jīng)常跑飛。 
          4)程序編制不當(dāng)也會引起程序跑飛。 
          5)硬件系統(tǒng)有問題。   
          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          關(guān)鍵詞: DSP 嵌入式

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();