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

          新聞中心

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

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

          ——
          作者: 時間:2007-10-29 來源:嵌入式技術(shù)網(wǎng) 收藏
          仿真器為什么必須連接目標(biāo)系統(tǒng)(Target)? 

          的仿真器同單片機的不同,仿真器中沒有,提供IEEE標(biāo)準的JTAG口對DSP進行仿真調(diào)試,所以仿真器必須有仿真對象,及目標(biāo)系統(tǒng)。目標(biāo)系統(tǒng)就是你的產(chǎn)品,上面必須有DSP。仿真器提供JTAG同目標(biāo)系統(tǒng)的DSP相接,通過DSP實現(xiàn)對整個目標(biāo)系統(tǒng)的調(diào)試。 



          仿真工作正常對于DSP的基本要求 
          1)DSP電源和地連接正確。 
          2)DSP時鐘正確。 
          3)DSP的主要控制信號,如RS和HOLD信號接高電平。 
          4)C2000的watchdog關(guān)掉。 
          5)不可屏蔽中斷NMI上拉高電平。   


          CCS或Emurst運行時提示“Can't Initialize Target DSP” 
          1)仿真器連接是否正常? 
          2)仿真器的I/O設(shè)置是否正確? 
          3)XDSPP仿真器的電源是否正確? 
          4)目標(biāo)系統(tǒng)是否正確? 
          5)仿真器是否正常?
          6)DSP工作的基本條件是否具備。 
          建議使用目標(biāo)板測試。   



          為什么CCS需要安裝Driver? 

          CCS是開放的軟件平臺,它可以支持不同的硬件接口,因此不同的硬件接口必須通過標(biāo)準的Driver同CCS連接。     Link的cmd文件的作用是什么? Link的cmd文件用于DSP代碼的定位。由于DSP的編譯器的編譯結(jié)果是未定位的,DSP沒有操作系統(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進制的文件格式? 

          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語言同主機C語言的主要區(qū)別? 

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



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

          在CCS下有部分客戶會碰到編譯工具工作不正常,常見錯誤為: 
          1)autoexec.bat的路徑“out of memory”。修改autoexec.bat,清除無用的PATH路徑。 
          2)編譯的輸出文件(OUT文件)寫保護,無法覆蓋。刪除或修改輸出文件的屬性。 
          3)Windows有問題。重新安裝windows。 
          4)Windows下有程序?qū)CS有影響。建議用一“干凈”的計算機。   



          在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ù)、多進程的時間管理。 
          4)BIOS是eXpress DSP的標(biāo)準平臺,要使用eXpress DSP技術(shù),必須使用BIOS。
          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); })();