C6202 ROM引導裝載方式的研究
發布時間:2008/5/26 0:00:00 訪問次數:926
    
    
    來源:電子技術應用 作者:哈爾濱工程大學信息與通信工程學院 王麗敏 王工藝 趙 宏 寧學侃
    
    摘要:通過使用dma方式訪問程序存儲區并實現程序的搬移,克服c6000指令系統的缺陷;并對c6000的c語言運行環境和仿真器變量初始化過程進行研究,采用自編程自初始化的方法,確保程序加載后能正常運行。
    關鍵詞:引導裝載 dma dsp
    
    dsp系統的引導裝載(bootload)是指系統加電時,dsp將一段存儲在外部的非易失性存儲器的代碼搬移到內部的高速存儲器單元中執行。這樣既利用了外部的存儲單元擴展dsp本身有限的rom資源,又充分發揮了dsp內部資源的效能。盡管用戶代碼可直接掩膜到內部rom中,但一方面受容量和價格的限制,另一方面則不具有擴展性和不易升級。flash是一種高密度、非易失性的電可擦寫存儲器,十分適合低功耗、小尺寸和高性能的便攜式系統。除了可以采用專用的硬件編程器把代碼灌入flash中,也可以利用現成的dsp通過軟件編程實現同樣的功能,因此對整個系統的軟件升級很方便。
    
    
    
    圖1 c62x方框圖
    
    tms320c6000系列是tms320系列產品中的新一代高性能dsps芯片。由于其結構上(如圖1)的特殊性,與c54系列的引導方式有很大差別。本文以c6202為例,介紹如何實現dsp正常的rom引導。
    
    1 c6202的rom引導模式
    
    c6202有兩種存儲器映射方式map0和map1。通過擴展總線的xd[4:0]利用上拉/下拉電阻進行復位時的芯片啟動模式設置。本文將存儲器映射方式設置為map1,即地址0處的存儲器在內部,芯片自加載方式為8bit rom方式,如圖2的硬件連接。
    
    
    
    設置完芯片加載方式后,rom加載的具體過程是:位于外部ce1空間的rom(即圖2中的flash)中的程序首先通過dma搬入地址0處,盡管加載過程是在芯片復位信號被釋放后才開始的,但是當芯片開始復位時,就開始準備上述傳輸了。用dma進行的這一加載過程是一個單幀的數據塊傳輸,數據塊的大小為64kb。emif會根據芯片自加載方式的設置將相鄰的8bit或16bit數據合為32bit指令。傳輸完成后,cpu退出復位狀態,開始執行地址0處的指令。
    
    2 硬件設計
    
    本文僅給出dsp(tms320c6202)與一片flash(amd29vf040)的連接圖,如圖2。由dsp的相關輸出管腳控制flash的擦除和讀寫。c6202的emif含有四個ce空間寄存器,由于rom加載程序是從ce1空間搬入的,因此dsp的/ce1與flash的片選/ce相連。圖2中只用到dsp的低8位數據線,如果自加載方式設置為16位或32位,可以通過dsp最低兩位ea1和ea0的譯碼be[3:0]片選,或者選用16bit或32bit的flash。
    
    3 軟件設計
    
    由于c6000的特殊結構,可以實現8條并行指令同時執行,除非對硬件結構非常了解的專業人員,才能充分利用硬件資源,將匯編語言的高效率發揮出來。若對實時性要求不是很高,采用c語言編程完全可以滿足需要,且c6000的優化器優化效率很高。這樣可以降低編程工作量,縮短開發周期,可移植性好。本文以通用的c語言編程為例,介紹dsp對flash編程以實現正常的rom引導。
    
    3.1 系統初始化
    
    在運行c語言前,必須建立c運行時間環境(c runtime environment),確保c程序的正常運行。運行時間支持源程序庫(runtime-support source library)rts.src包含一個boot.
    
    
    來源:電子技術應用 作者:哈爾濱工程大學信息與通信工程學院 王麗敏 王工藝 趙 宏 寧學侃
    
    摘要:通過使用dma方式訪問程序存儲區并實現程序的搬移,克服c6000指令系統的缺陷;并對c6000的c語言運行環境和仿真器變量初始化過程進行研究,采用自編程自初始化的方法,確保程序加載后能正常運行。
    關鍵詞:引導裝載 dma dsp
    
    dsp系統的引導裝載(bootload)是指系統加電時,dsp將一段存儲在外部的非易失性存儲器的代碼搬移到內部的高速存儲器單元中執行。這樣既利用了外部的存儲單元擴展dsp本身有限的rom資源,又充分發揮了dsp內部資源的效能。盡管用戶代碼可直接掩膜到內部rom中,但一方面受容量和價格的限制,另一方面則不具有擴展性和不易升級。flash是一種高密度、非易失性的電可擦寫存儲器,十分適合低功耗、小尺寸和高性能的便攜式系統。除了可以采用專用的硬件編程器把代碼灌入flash中,也可以利用現成的dsp通過軟件編程實現同樣的功能,因此對整個系統的軟件升級很方便。
    
    
    
    圖1 c62x方框圖
    
    tms320c6000系列是tms320系列產品中的新一代高性能dsps芯片。由于其結構上(如圖1)的特殊性,與c54系列的引導方式有很大差別。本文以c6202為例,介紹如何實現dsp正常的rom引導。
    
    1 c6202的rom引導模式
    
    c6202有兩種存儲器映射方式map0和map1。通過擴展總線的xd[4:0]利用上拉/下拉電阻進行復位時的芯片啟動模式設置。本文將存儲器映射方式設置為map1,即地址0處的存儲器在內部,芯片自加載方式為8bit rom方式,如圖2的硬件連接。
    
    
    
    設置完芯片加載方式后,rom加載的具體過程是:位于外部ce1空間的rom(即圖2中的flash)中的程序首先通過dma搬入地址0處,盡管加載過程是在芯片復位信號被釋放后才開始的,但是當芯片開始復位時,就開始準備上述傳輸了。用dma進行的這一加載過程是一個單幀的數據塊傳輸,數據塊的大小為64kb。emif會根據芯片自加載方式的設置將相鄰的8bit或16bit數據合為32bit指令。傳輸完成后,cpu退出復位狀態,開始執行地址0處的指令。
    
    2 硬件設計
    
    本文僅給出dsp(tms320c6202)與一片flash(amd29vf040)的連接圖,如圖2。由dsp的相關輸出管腳控制flash的擦除和讀寫。c6202的emif含有四個ce空間寄存器,由于rom加載程序是從ce1空間搬入的,因此dsp的/ce1與flash的片選/ce相連。圖2中只用到dsp的低8位數據線,如果自加載方式設置為16位或32位,可以通過dsp最低兩位ea1和ea0的譯碼be[3:0]片選,或者選用16bit或32bit的flash。
    
    3 軟件設計
    
    由于c6000的特殊結構,可以實現8條并行指令同時執行,除非對硬件結構非常了解的專業人員,才能充分利用硬件資源,將匯編語言的高效率發揮出來。若對實時性要求不是很高,采用c語言編程完全可以滿足需要,且c6000的優化器優化效率很高。這樣可以降低編程工作量,縮短開發周期,可移植性好。本文以通用的c語言編程為例,介紹dsp對flash編程以實現正常的rom引導。
    
    3.1 系統初始化
    
    在運行c語言前,必須建立c運行時間環境(c runtime environment),確保c程序的正常運行。運行時間支持源程序庫(runtime-support source library)rts.src包含一個boot.
上一篇:芯片縫進衣服里
上一篇:一種折疊共源共柵運算放大器的設計