亚洲成人伦理_成人午夜视频在线观看_日本免费网站_黄网站色大毛片_超碰97人人人人人蜜桃_久久在线视频

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

曙海教育集團論壇
共2 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標題:DSP/BIOS在TMS32OC6000編程中自舉引導方法

1樓
wangxinxin 發(fā)表于:2010-11-22 14:26:20

1 DSP/BIOS的優(yōu)點


DSP/BIOS 是一個用戶可剪裁的實時操作系統(tǒng),主要由3部分組成:多線程實時內(nèi)核;實時分析工具;芯片支持庫。利用實時操作系統(tǒng)開發(fā)程序,可以方便快速地開發(fā)復雜的DSP程序。操作系統(tǒng)維護調(diào)度多線程的運行,只需將定制的數(shù)字信號處理算法作為一個線程嵌入系統(tǒng)即可;芯片支持庫幫助管理外設資源,復雜的外設寄存器初始化可以利用直接圖形工具配置;實時分析工具可以幫助分析算法實時運行情況。


DSP/BIOS實時操作系統(tǒng)的圖形配置界面包括:

(1)全局設置(system)— 包括內(nèi)存配置、芯片支持庫設置、endian模式設置等;

(2)操作系統(tǒng)調(diào)度工具(scheduling)— 包括定時器、周期器、硬件中斷管理、軟件中斷管理、任務調(diào)度、系統(tǒng)空載任務函數(shù)等;

(3)同步機制(synchronization)一一提供一般操作系統(tǒng)都具有的信號燈、郵箱、隊列、鎖4個工具;

(4)芯片支持庫(chip support library)— 針對不同的DSP芯片幫助配置DSP的外設資源,最常用的有DMA,MCBSPEMIF,TIMER等的配置;

(5)主機交互接口(input/output)— 提供DSP實時運行時與主機通過仿真口和CCS(集成開發(fā)系統(tǒng))交互數(shù)據(jù)的機制;

(6)調(diào)試工具(instrumentation)— 記錄器(LOG)可以提供調(diào)試信息,但是特別針對實時操作優(yōu)化;統(tǒng)計工具(STS)可以統(tǒng)計調(diào)試過程中的各種事件。


通過使用 DSP/BIOS,我們可以:

(1)使用多線程技術高效地管理DSP的運行,以提高運行效率;

(2)使用標準接口的I/O和中斷;

(3)高效地定義和配置系統(tǒng)資源,如系統(tǒng)內(nèi)存和中斷向量表;

(4)通過實時分析工具對用戶應用程序的運行狀況實時查看;

(5)向用戶的目標應用程序添加數(shù)據(jù)結構并圍繞一組相關線程來加以組織:

(6)幾乎所有的初始化都可以通過圖形化配置來完成,而不必詳細了解各個寄存器的每一位所代表的意義;


(7)通過調(diào)用DSP/BIOS或CSL(芯片支持庫)的API庫函數(shù),使代碼效率更高、程序可讀性和可移植性更強,從而使得向新的TMS320DSP移植更加容易。例如:開全局中斷可以用HWI_enable(),啟動DMA可以用DMA_start(hDMA0),這樣比直接通過寄存器配置來完成具有更強的可讀性和可移植性,而且不會出錯,也不必查閱相應的寄存器信息。

2 DSP/BIOS的資源優(yōu)化


由于 DSP/BIOS的很多功能只有在調(diào)試時使用或者根本不用,如果不需要用到的部分都使用默認的配置將會占用較大的內(nèi)存資源,如果用戶程序較大就會造成DSP內(nèi)存資源緊張或不足。由于DSP/BIOS是一個可剪裁的操作系統(tǒng),可以很方便地將不需要用到的功能關閉,以節(jié)省空間。表1列出了減少DSP/BIOS所占資源的幾種措施以及在C62x中可以減少的存儲空間大小。


表中減少的空間大小只作為參考,隨著CCS的版本不一樣可能會有一定差別。筆者在CCS2.20.18上編寫了一個簡單的程序,DSP采用的是TMS320C6203,主程序采用C語言編寫。優(yōu)化前的.out文件大小為78.6KB,轉(zhuǎn)化成二進制文件為28.3KB;優(yōu)化后的.out文件為29.4KB,轉(zhuǎn)化成二進制文件為4.4KB。

3 程序的自舉引導方法


TMS320C6000器件可以設置成3種自舉方式,其加載過程分別敘述如下:


①不加載 。CPU直接從存儲器的0地址處開始執(zhí)行指令。如果系統(tǒng)中使用的是SDRAM,那么CPU 會先掛起,直到SDRAM的初始化完成。TMS320C6x1x 不具有這類方式。


②ROM 加載。位于外部存儲空間的ROM中的程序首先通過DMA/EDMA搬入地址。處。盡管加載過程是在芯片外部被復位信號釋放以后才開始的,但是當芯片仍處于內(nèi)部復位保持時,就開始了上述的傳輸過程了。用戶可以指定外部ROM 的存儲寬度,EMIF會自動將相鄰的8bit或16bit數(shù)據(jù)合并成32bit。ROM中的程序必須以little endian的格式存儲。用DMA/EDMA進行的這一加載過程是一個單幀的數(shù)據(jù).tk傳輸。傳輸過程完成
之后,CPU退出復位狀態(tài),開始執(zhí)行地址0處的指令。對于 TMS320C6x0x,DMA使用默認的ROM時序從CEl空間中拷貝64KB數(shù)據(jù)到地址0處。

對于 TMS320C6x1x,EDMA使用默認的ROM時序從CE1空間(C64x從EMIFB CE1空間)拷貝1KB數(shù)據(jù)到地址0處。

圖片點擊可在新窗口打開查看
③主機 (HPI)引導。CPU停留在保持狀態(tài),其余硬件部分均保持正常狀態(tài)。在這期間,外部主機通過主機口或PCI口(如6205或64x)初始化CPU的存儲空間。主機完成所有的初始化工作后,將主機口控制寄存器中的DSPINT位設置為1,結束引導過程。此時CPU退出復位狀態(tài),開始執(zhí)行地址0處的指令。在主機引導過程中,主機可以對DSP所有的存儲空間進行讀和寫。

其中,用得最多的是ROM加載。為了生成可以從ROM中自舉的代碼,就要注意DSP/BIOS中的存儲器設置。對于TMS320C6x0x,一般而言,64KB的代碼就足夠了,那樣就只需選擇好各個代碼段的Load Address和Run Address就可以了。DSP/BIOS將自動生成cmd文件,而不需用戶自己編寫。如果64KB不夠,則需自己編寫boot程序。而對于TMS320C6x1x ,1KB的程序一般是不夠用的,所以要自己編寫boot程序。下面以TMS320C6711為例介紹DSP/BIOS中程序空間的配置以及boot程序的編寫方法。

TMS320C6711內(nèi)部含有64KB的RAM,既可以配置為L2Cache,也可以配置成SRAM。一般而言,在系統(tǒng)上電復位時配置為SRAM,將1KB的引導程序從ROM中拷貝到SRAM中,而在引導程序中將用戶的程序從ROM中拷貝到SBSRAM中或SDRAM中去執(zhí)行。在主程序的初始化部分將內(nèi)部RAM配置為高速緩存,這樣可以提高程序的運行速度。當然,也可以把內(nèi)部RAM用作SRAM,把全部的用戶程序都引導到其中來執(zhí)行,
這樣可以不用外接SBSRAM或SDRAM 。

首先在 DSP/BIOS的存儲器段管理器(Memory Section Manager)中指定如下幾段:
FLASH_BOOT:or igin=000000000,le ngth=0x400;(存儲自舉代碼)
FLASH_REST:or igin=0x90000400,le ngth=Ox1fc00;(存儲主程序代碼等)
IRAM :or igin= 000000000,length= 0x10000;(內(nèi)部RAM)
SDRAM 或SBSRAM:origin=Ox80000000(CEO),length與外接存儲器大小有關,如果沒有則可省略。


上電復位時,F(xiàn)LASHesBOOT中的數(shù)據(jù)被復制到IRAM 中從地址0開始的一段,然后從地址0開始執(zhí)行程序。因此,在這段代碼中要把其它相應的段從加載地址復制到運行地址。在DSP/BIOS程序中,所用到的段及其相應的加載地址和運行地址建議按表2、表3安排。

圖片點擊可在新窗口打開查看

圖片點擊可在新窗口打開查看

在 BOOT 程序中,首先要初始化EMIF的相關寄存器,特別是有外接存儲器時(如SDRAM或SBSRAM),一定要先初始化相關寄存器,主要是EMIF全局控制寄存器和CE空間控制寄存器。然后將加載地址位于ROM中而運行地址位于RAM中的段從ROM中復制到RAM中。具體的加載地址和運行地址可以在map文件中查到。最后,將程序指針跳轉(zhuǎn)到主程序入口(c_int00)開始執(zhí)行。BOOT程序如下:

.sect " .myBootCode "
.global myBootCode


.ref _c_int00


;====myBootCode ===


myBootCode :

;***************

;Configure EMIF


;***************

...... ......

;***************


;CopySections


;***************

...... ......

;***************

;StartProgram


;***************


mvkl .S 2 _c_int00, B0


mvkh .S 2 _c_int00, B0


B . S2 B0


; jump to _c_int00


nop 5

編寫完 boot程序后,在cmd文件中加上一句:.my_boot_code: {} load=FLASH_BOOT,run=IRAM

共2 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .03125 s, 2 queries.
主站蜘蛛池模板: 中文字幕一区二区视频 | 亚洲欧美精品 | 亚洲欧美激情视频 | 日韩欧美在线观看 | www亚洲精品 | 九九热在线观看视频 | 欧美精品区 | 亚洲乱码一区二区三区在线观看 | 操久久 | 99热精品久久 | 国产日韩精品视频 | 日本免费在线观看视频 | 国产精品国产三级国产a | 精品久久久久久国产 | 精品国产乱码久久久久久丨区2区 | 男女视频在线观看免费 | 国产精品美女久久久久久久久久久 | www在线| 91精品国产91久久久久久三级 | 亚洲综合色自拍一区 | 亚洲一区二区久久 | 日本亚洲欧美 | 午夜爽爽爽男女免费观看影院 | 天天操综合网站 | 久久久成人精品 | 久久无毛 | 91精品久久久久久久久中文字幕 | 在线天堂免费中文字幕视频 | 中文字幕成人av | 精品国产一区二区在线 | 亚洲国产精品久久 | 国产在线一区观看 | 国产日韩一区二区三区 | 久久久亚洲一区 | 国产精品国产馆在线真实露脸 | 色婷婷久久久久swag精品 | 国产九一精品 | 男人的天堂在线视频 | 日日爱夜夜操 | 国产一区二区三区 | 亚洲精品一区国语对白 |