<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現在位置:范文先生網>理工論文>電子通信論文>C6202 ROM引導裝載方式的研究

      C6202 ROM引導裝載方式的研究

      時間:2023-02-20 23:43:25 電子通信論文 我要投稿
      • 相關推薦

      C6202 ROM引導裝載方式的研究

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

          關鍵詞:引導裝載 DMA DSP

      C6202 ROM引導裝載方式的研究

      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的硬件連接。
      (范文先生網www.ycxgx.cn收集整理)
          設置完芯片加載方式后,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的程序存儲區或數據存儲區,并且用指針指向加載后的初始化表的首地址。當程序開始運行時,函數c_int00中的引導程序自動識別初始化表中的數據格式,初始化.bss段中對應的變量,完成初始化過程。如圖4。

      3.2.3 加載時初始化變量

      若在連接器中使用-cr選項,連接器在.cinit段首設置STYP_COPY位。當仿真器加載程序時,加載器會判斷這一位,識別目標文件中.cinit內的初始化記錄格式并初始化.bss中的變量,而不是先將.cinit段拷貝到DSP的內存區域。如圖5。

      3.3 燒寫FLASH

      要想實現DSP ROM的正常加載,必須將程序存儲區中的指令數據正確地寫到FLASH里。圖1中可以看出,訪問片內程序存儲器只有兩個途徑:CPU訪問和DMA訪問。CPU訪問片內程序存儲器是通過程序取指單元實現的,然后完成指令分配和指令譯碼。C6000沒有提供任何對片內程序存儲器操作的指令,因此不可能直接使用指令取出程序區的內容或者將數據寫入程序區中。但是DMA可以訪問片內數據存儲區、片內程序存儲區、片內集成外設、外接存儲器等,可以在沒有CPU參與的情況下完成映射存儲空間中數據的搬移。因此,可以編寫一個燒寫FLASH的程序。在數據存儲區開辟一個緩存區,使用DMA方式將程序區的內容讀到這個緩存區,然后再使用指令將緩存區的內容燒寫到FLASH內(具體的命令字和程序與C54類似)。如圖6。

          為了保證DSP ROM加載后C運行環境正常,全局變量或者靜態變量必須初始化。這比使用仿真器加載程序要復雜。解決這個問題,最簡單的方法就是:將燒寫FALSH的程序(不能含有全局變量和靜態變量)和主程序編在一起,在連接器中選擇-cr選項,用仿真器加載編譯連接后的程序會自動初始化主程序中的變量。將DSP的PC指針直接跳轉到燒寫FALSH程序處,按照前面的方法使用DMA方式把主程序燒寫到FLASH內部,再把已經初始化的變量燒寫到FLASH的其他位置,不能覆蓋已經寫入的數據。另外,在主程序內要自己編寫一個自加載函數,完成加載器的功能,即把固化在FLASH內部的變量值讀入.cmd文件所定位的.bss中,實現脫機運行時變量的初始化。

      筆者在實驗中遇到了C6202 ROM加載的問題,通過對DSP內部功能單元的研究,發現采用DMA方式訪問程序存儲區,實現了程序塊的搬移,克服了C6000指令系統的缺陷;對C6000的C語言運行環境進行研究,發現仿真器進行變量初始化的過程,采用自編程自初始化的方法,確保程序加載后能正常運行。


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

      DSP56362的雙引導裝載方法研究與實現08-06

      TMS320VC5402外部并行引導裝載方法的研究08-06

      TMS320VC5402的并行引導裝載方案的研究與設計08-06

      TMS320C6711的FLASH引導裝載系統研究與設計08-06

      DSP+FLASH引導裝載系統的設計與實現08-06

      TMS320VC5402 DSP并行8bit EPROM引導裝載方法研究08-06

      DSP外掛Flash在系統編程及并行引導裝載方法08-06

      中職學生行為方式研究08-18

      淺析音樂教學德育方式研究08-24

      主站蜘蛛池模板: 日韩区二区三区中文字幕| 西西人体大胆444WWW| 国产精品 欧美 亚洲 制服| 久久精品av国产一区二区| 国产av黄色一区二区三区| 高清中文字幕国产精品| 日韩在线视频网| 成人av亚洲男人色丁香| 成人无码午夜在线观看| 女人高潮被爽到呻吟在线观看| 亚洲国产午夜理论片不卡| 香港日本三级亚洲三级| 亚洲色在线V中文字幕| 在线精品自拍亚洲第一区| 十八禁午夜福利免费网站| 久久99国产精品久久99小说| 91精品国产综合久蜜臀| 狠狠亚洲色一日本高清色| 男人一天堂精品国产乱码| 人妻少妇偷人精品一区| 国产亚洲人成网站在线观看| 国产精品亚洲一区二区z| 日本午夜精品一区二区三区电影| 亚洲一区二区经典在线播放| 亚洲精品三区四区成人少| 午夜高清福利在线观看| 国产亚洲精品久久久久秋霞 | 久久大香萑太香蕉av黄软件| 免费人成网站免费看视频| 国产精品福利自产拍在线观看| 天堂av成人网在线观看| 深夜释放自己在线观看| 高潮迭起av乳颜射后入| 另类专区一区二区三区| 中文字幕一区二区三区久久蜜桃 | 欧美老少配性行为| 午夜国产小视频| 国产永久免费高清在线| 无码人妻一区二区三区AV| 亚洲精品第一区二区三区| 久久综合狠狠综合久久|