以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- DSP6000系統開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=29) ---- DSP/BIOS在TMS32OC6000編程中自舉引導方法 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=29&id=1632) |
-- 作者:wangxinxin -- 發布時間:2010-11-22 14:26:20 -- DSP/BIOS在TMS32OC6000編程中自舉引導方法 1 DSP/BIOS的優點
(1)全局設置(system)— 包括內存配置、芯片支持庫設置、endian模式設置等; (2)操作系統調度工具(scheduling)— 包括定時器、周期器、硬件中斷管理、軟件中斷管理、任務調度、系統空載任務函數等; (3)同步機制(synchronization)一一提供一般操作系統都具有的信號燈、郵箱、隊列、鎖4個工具; (4)芯片支持庫(chip support library)— 針對不同的DSP芯片幫助配置DSP的外設資源,最常用的有DMA,MCBSPEMIF,TIMER等的配置; (5)主機交互接口(input/output)— 提供DSP實時運行時與主機通過仿真口和CCS(集成開發系統)交互數據的機制; (6)調試工具(instrumentation)— 記錄器(LOG)可以提供調試信息,但是特別針對實時操作優化;統計工具(STS)可以統計調試過程中的各種事件。
(1)使用多線程技術高效地管理DSP的運行,以提高運行效率; (2)使用標準接口的I/O和中斷; (3)高效地定義和配置系統資源,如系統內存和中斷向量表; (4)通過實時分析工具對用戶應用程序的運行狀況實時查看; (5)向用戶的目標應用程序添加數據結構并圍繞一組相關線程來加以組織: (6)幾乎所有的初始化都可以通過圖形化配置來完成,而不必詳細了解各個寄存器的每一位所代表的意義;
2 DSP/BIOS的資源優化
3 程序的自舉引導方法
對于 TMS320C6x1x,EDMA使用默認的ROM時序從CE1空間(C64x從EMIFB CE1空間)拷貝1KB數據到地址0處。
其中,用得最多的是ROM加載。為了生成可以從ROM中自舉的代碼,就要注意DSP/BIOS中的存儲器設置。對于TMS320C6x0x,一般而言,64KB的代碼就足夠了,那樣就只需選擇好各個代碼段的Load Address和Run Address就可以了。DSP/BIOS將自動生成cmd文件,而不需用戶自己編寫。如果64KB不夠,則需自己編寫boot程序。而對于TMS320C6x1x ,1KB的程序一般是不夠用的,所以要自己編寫boot程序。下面以TMS320C6711為例介紹DSP/BIOS中程序空間的配置以及boot程序的編寫方法。 TMS320C6711內部含有64KB的RAM,既可以配置為L2Cache,也可以配置成SRAM。一般而言,在系統上電復位時配置為SRAM,將1KB的引導程序從ROM中拷貝到SRAM中,而在引導程序中將用戶的程序從ROM中拷貝到SBSRAM中或SDRAM中去執行。在主程序的初始化部分將內部RAM配置為高速緩存,這樣可以提高程序的運行速度。當然,也可以把內部RAM用作SRAM,把全部的用戶程序都引導到其中來執行, 首先在 DSP/BIOS的存儲器段管理器(Memory Section Manager)中指定如下幾段:
在 BOOT 程序中,首先要初始化EMIF的相關寄存器,特別是有外接存儲器時(如SDRAM或SBSRAM),一定要先初始化相關寄存器,主要是EMIF全局控制寄存器和CE空間控制寄存器。然后將加載地址位于ROM中而運行地址位于RAM中的段從ROM中復制到RAM中。具體的加載地址和運行地址可以在map文件中查到。最后,將程序指針跳轉到主程序入口(c_int00)開始執行。BOOT程序如下: .sect " .myBootCode "
;*************** ;Configure EMIF
...... ...... ;***************
...... ...... ;*************** ;StartProgram
編寫完 boot程序后,在cmd文件中加上一句:.my_boot_code: {} load=FLASH_BOOT,run=IRAM |