<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • C6202 ROM引導裝載方式的研究

    時間:2024-07-25 17:34:52 理工畢業論文 我要投稿
    • 相關推薦

    C6202 ROM引導裝載方式的研究

    摘要:通過使用DMA方式訪問程序存儲區并實現程序的搬移,克服C6000指令系統的缺陷;并對C6000的C語言運行環境和仿真器變量初始化過程進行研究,采用自編程自初始化的方法,確保程序加載后能正常運行。

    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.asm模塊可以實現此功能。在連接器命令中使用-c或-cr選項,且將rts6200.lib作為其中一個連接文件,連接器自動調用boot.asm模塊產生c_int00函數。在硬件復位中斷產生以及系統工作時,先執行此函數。

    函數c_int00完成下面三個初始化任務:

    (1)建立堆棧并初始化堆棧指針;

    (2)初始化全局變量;

    (3)運行主函數。

    3.2 初始化變量

    在程序運行前,全局變量必須初始化。編譯器建立了.cinit段用來初始化全局變量和靜態變量。

    3.2.1 .cinit段

    在.cinit段內有不同長度的初始化記錄,每一個必須初始化的變量在.cinit段內都有一個對應的記錄。如圖3。

    每個記錄包含三部分:需要被初始化的變量的長度、變量的地址和變量初始值。

    3.2.2 運行時初始化變量

    若在連接器中使用-c選項,則在程序開始運行時,函數c_int00初始化變量。具體過程如下:仿真器加載程序時,根據.cmd文件的定位,將.cinit段拷貝到C6202的程序存儲區或數據存儲區,并且用指針指向加載后的初始

    C6202 ROM引導裝載方式的研究

    【C6202 ROM引導裝載方式的研究】相關文章:

    DSP56362的雙引導裝載方法研究與實現03-18

    “問題引導式”培訓方式的探索和應用03-10

    侵害物權的責任方式研究03-24

    口語交際教學方式研究開題報告12-10

    新課標下音樂教學德育方式研究05-07

    關于信息傳播方式對預期的影響研究11-21

    小學數學問題引導法研究教學論文12-08

    企業品牌在電影營銷中的傳播方式研究03-22

    基于個性化的檔案檢索方式研究12-02

    主站蜘蛛池模板: 久久这里只精品国产99热| 国产精品久久久久一区二区三区 | 国产精品福利网站导航| 亚洲AV永久无码精品成人| 亚洲精品tv久久久久久久久久| 亚洲欧美日韩精品永久在线| 国内精品伊人久久久久av一坑 | 久久久亚洲精品蜜桃臀| 国产精品夜色一区二区三区| 久久精品国产亚洲精品2020 | 久久精品国产72国产精福利| 92国产精品午夜福利免费| 国产精品免费观看| 精品少妇无码AV无码专区| 亚洲国产精品碰碰| 日本精品夜色视频一区二区| 精品99久久aaa一级毛片| 亚洲精品成人av在线| 欧美精品免费观看二区| 国产精品91在线| 福利姬在线精品观看| 3D动漫精品一区二区三区| 精品9E精品视频在线观看 | 影音先锋国产精品国语对白| 欧美精品亚洲精品日韩| 国产成人精品免费视| 91视频国产精品| 国产夫妇精品自在线| 99久久精品国产麻豆| 国产成人精品精品欧美| 国产精品欧美亚洲韩国日本不卡| 99re久久精品国产首页2020| 国产短视频精品一区二区三区| 国产精品久久一区二区三区| 亚洲精品性视频| 成人一区二区三区精品| 国产69精品久久久久99| 国产精品无码无卡无需播放器| 国产午夜亚洲精品理论片不卡| 久久久久久久久久免免费精品| 91精品日韩人妻无码久久不卡|