新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DSP應(yīng)用基礎(chǔ)知識

        DSP應(yīng)用基礎(chǔ)知識

        作者: 時間:2008-06-21 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/258063.htm
        Link的cmd文件的作用是什么?

          Link的cmd文件用于代碼的定位。由于的編譯器的編譯結(jié)果是未定位的,沒有操作系統(tǒng)來定位執(zhí)行代碼,每個客戶設(shè)計的DSP系統(tǒng)的配置也不盡相同,因此需要用戶自己定義代碼的安裝位置。以C5000為例,基本格式為:
        -o sample.out
        -m sample.map
        -stack 100
        sample.obj meminit.obj
        -l rts.lib
        MEMORY {
        PAGE 0: VECT: origin = 0xff80, length 0x80
        PAGE 0: PROG: origin = 0x2000, length 0x400
        PAGE 1: DATA: origin = 0x800, length 0x400
        }
        SECTIONS {
        .vectors : {} >PROG PAGE 0
        .text : {} >PROG PAGE 0
        .data : {} >PROG PAGE 0
        .cinit : {} >PROG PAGE 0
        .bss : {} >DATA PAGE 1
        }

        如何將OUT文件轉(zhuǎn)換為16進(jìn)制的文件格式?

          DSP的開發(fā)軟件集成了一個程序,可以從執(zhí)行文件OUT轉(zhuǎn)換到編程器可以接受的格式,使得編程器可以用次文件燒寫EPROM或Flash。對于C2000 的程序為DSPHEX;對于C3x程序為HEX30;對于C54x程序為HEX500;對于C55x程序為HEX55;對于C6x程序為Hex6x。以 C32為例,基本格式為:
        sample.out
        -x
        -memwidth 8
        -bootorg 900000h
        -iostrb 0h
        -strb0 03f0000h
        -strb1 01f0000h
        -o sample.hex
        ROMS {
        EPROM: org = 0x900000,len=0x02000,romwidth=8
        }
        SECTIONS {
        .text: paddr=boot
        .data: paddr=boot
        }


        DSP的C語言同主機(jī)C語言的主要區(qū)別?

        1) DSP的C語言是標(biāo)準(zhǔn)的ANSI C,它不包括同外設(shè)聯(lián)系的擴(kuò)展部分,如屏幕繪圖等。但在CCS中,為了方便調(diào)試,可以將數(shù)據(jù)通過prinf命令虛擬輸出到主機(jī)的屏幕上。
        2)DSP的C語言的編譯過程為,C編譯為ASM,再由ASM編譯為OBJ。因此C和ASM的對應(yīng)關(guān)系非常明確,非常便于人工優(yōu)化。
        3)DSP的代碼需要絕對定位;主機(jī)的C的代碼有操作系統(tǒng)定位。
        4)DSP的C的效率較高,非常適合于嵌入系統(tǒng)。

        為什么在CCS下編譯工具工作不正常?

        在CCS下有部分客戶會碰到編譯工具工作不正常,常見錯誤為:

        1)autoexec.bat的路徑“out of memory”。修改autoexec.bat,清除無用的PATH路徑。
        2)編譯的輸出文件(OUT文件)寫保護(hù),無法覆蓋。刪除或修改輸出文件的屬性。
        3)Windows有問題。重新安裝windows。
        4)Windows下有程序?qū)CS有影響。建議用一“干凈”的計算機(jī)。

        在CCS下,如何選擇有效的存儲器空間?

          CCS下的存儲器空間最好設(shè)置同你的硬件,沒有的存儲器不要有效。這樣便于調(diào)試,CCS會發(fā)現(xiàn)你調(diào)入程序時或程序運行時,是否訪問了無效地址。

        1)在GEL文件中設(shè)置。參見CCS中的示例。
        2)在Option菜單下,選擇Memory Map選項,根據(jù)你的硬件設(shè)置。注意一定要將Enable Memory Mapping置為使能。

        在CCS下,OUT文件加載時提示“Data verification failed...”的原因?
        Link的CMD文件分配的地址同GEL或設(shè)置的有效地址空間不符。中斷向量定位處或其它代碼、數(shù)據(jù)段定位處,沒有RAM,無法加載OUT文件。解決方法: 1)調(diào)整Link的CMD文件,使得定位段處有RAM。 2)調(diào)整存儲器設(shè)置,使得RAM區(qū)有效。

        為什么要使用BIOS?

        1)BIOS是Basic I/O System的簡稱,是基本的輸入、輸出管理。
        2)用于管理任務(wù)的調(diào)度,程序?qū)崟r分析,中斷管理,跟蹤管理和實時數(shù)據(jù)交換。
        3)BIOS是基本的實時系統(tǒng),使用BIOS可以方便地實現(xiàn)多任務(wù)、多進(jìn)程的時間管理。
        4)BIOS是eXpress DSP的標(biāo)準(zhǔn)平臺,要使用eXpress DSP技術(shù),必須使用BIOS。


        3. DSP芯片有多大的驅(qū)動能力?
        DSP的驅(qū)動能力較強(qiáng),可以不加驅(qū)動,連接8個以上標(biāo)準(zhǔn)TTL門。

        調(diào)試TMS320C2000系列的常見問題?

        1)單步可以運行,連續(xù)運行時總回0地址: Watchdog沒有關(guān),連續(xù)運行復(fù)位DSP回到0地址。
        2)OUT文件不能load到片內(nèi)flash中: Flash不是RAM,不能用簡單的寫指令寫入,需要專門的程序?qū)懭搿CS和C Source Debugger中的load命令,不能對flash寫入。 OUT文件只能load到片內(nèi)RAM,或片外RAM中。
        3)在flash中如何加入斷點: 在flash中可以用單步調(diào)試,也可以用硬件斷點的方法在flash中加入斷點,軟件斷點是不能加在ROM中的。硬件斷點,設(shè)置存儲器的地址,當(dāng)訪問該地址時產(chǎn)生中斷。
        4)中斷向量: C2000的中斷向量不可重定位,因此中斷向量必須放在0地址開始的flash內(nèi)。在調(diào)試系統(tǒng)時,代碼放在RAM中,中斷向量也必須放在flash內(nèi)。

        調(diào)試TMS320C3x系列的常見問題?

        1) TMS320C32的存儲器配置: TMS320C32的程序存儲器可以配置為16位或32位;數(shù)據(jù)存儲器可以配置為8位、16位或32位。
        2)TMS320VC33的PLL控制: TMS320VC33的PLL控制端只能接1.8V,不能接3.3V或5V。



        4.如何調(diào)試多片DSP?

          對于有MPSD仿真口的DSP(TMS320C30/C31/C32),不能用一套仿真器同時調(diào)試,每次只能調(diào)試其中的一個DSP;對于有JTAG仿真口的DSP,可以將JTAG串接在一起,用一套仿真器同時調(diào)試多個DSP,每個DSP可以用不同的名字,在不同的窗口中調(diào)試。注意:如果在JTAG和DSP間加入驅(qū)動,一定要用快速的門電路,不能使用如LS的慢速門電路。

        在DSP系統(tǒng)中為什么要使用CPLD?

          DSP的速度較快,要求譯碼的速度也必須較快。利用小規(guī)模邏輯器件譯碼的方式,已不能滿足DSP系統(tǒng)的要求。同時,DSP系統(tǒng)中也經(jīng)常需要外部快速部件的配合,這些部件往往是專門的電路,有可編程器件實現(xiàn)。 CPLD的時序嚴(yán)格,速度較快,可編程性好,非常適合于實現(xiàn)譯碼和專門電路。

        DSP系統(tǒng)構(gòu)成的常用芯片有哪些?

        1) 電源: TPS73HD3xx,TPS7333,TPS56100,PT64xx...
        2)Flash: AM29F400,AM29LV400,SST39VF400...
        3)SRAM: CY7C1021,CY7C1009,CY7C1049...
        4)FIFO: CY7C425,CY7C42x5...
        5)Dual port: CY7C136,CY7C133,CY7C1342...
        6)SBSRAM: CY7C1329,CY7C1339...
        7)SDRAM: HY57V651620BTC...
        8)CPLD: CY37000系列,CY38000系列,CY39000系列...
        9)PCI: PCI2040,CY7C09449...
        10)USB: AN21xx,CY7C68xxx...
        11)Codec:TLV320AIC23,TLV320AIC10...
        12)A/D,D/A:ADS7805,TLV2543...


        什么是boot loader?

          DSP的速度盡快,EPROM或flash的速度較慢,而DSP片內(nèi)的RAM很快,片外的RAM也較快。為了使DSP充分發(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)系。注意這些算法都是要付費的。



        關(guān)鍵詞: DSP 內(nèi)部指令

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 五华县| 贵阳市| 常熟市| 罗城| 临漳县| 鹰潭市| 女性| 宜城市| 麻江县| 东台市| 大足县| 鄂州市| 万州区| 行唐县| 沾化县| 兴义市| 林周县| 伊宁县| 枣强县| 太仓市| 松阳县| 滁州市| 偏关县| 深泽县| 呼图壁县| 永和县| 海南省| 陆川县| 芜湖县| 壶关县| 金阳县| 马鞍山市| 高碑店市| 昌都县| 本溪市| 碌曲县| 松原市| 静安区| 贵定县| 六盘水市| 丰原市|