新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TMS320C6000 DSP及DSP/BIOS系統的Flash引導自啟動設計

        基于TMS320C6000 DSP及DSP/BIOS系統的Flash引導自啟動設計

        作者: 時間:2013-03-25 來源:網絡 收藏

        摘要:隨著信息技術的發展,DSP在現代電子系統設計中得到了廣泛的應用,并且DSP的FLASH自啟動在DSP的系統設計中也占有重要的地位,DSP/BIOS是TI推出的嵌入式實時操作系統。
        關鍵詞:

        FLASH是非易失的重復可讀寫存儲器,其讀寫速度較慢,常用來存儲系統設計的程序,微處理器通過一定的方式將FLASH中的程序讀取到處器內部運行,而TI公司的C6000系列的DSP內部沒有FLASH,故DSP的程序需要燒到外部的FLASH中,在上電后,DSP會通過二次引導將程序從外部的FLASH讀取到DSP內部RAM或SDRAM中,高速執行。TI的C6000 DSP支持3種引導模式:主機引導、仿真引導及EMIF引導,其中最常用的是EMIF引導(即片上BootLoader引導)。在此引導模式下,位于外部存儲空間CE1的FLASH中的1kB代碼通過EDMA被拷貝到片內RAM地址0處。然而,大多數的DSP程序并不僅限于1 kB代碼,因此需要開發用戶引導程序將片上BootLoader沒有拷貝的代碼拷貝到DSP的片內RAM。此用戶引導程序即稱為二級BootLoader。由于DSP/BIOS操作系統的廣泛應用,當使用DSP/BIOS時,需要將系統和BootLoader很好的結合起來,實現DSP/ BIOS系統的自啟動。

        1 DSP自啟動系統的設計
        上電之后,系統會自動根據外部配置,從EMIF的CE1的存儲空間搬取1 kB代碼,這些代碼別搬到DSP的內部RAM地址0處執行,這1KB的代碼就應該存放DSP的BootLoader啟動代碼。它只是一個拷貝程序,只負責將FLASH中的應用程序代碼復制到DSP內部RAM或者SDR AM中,以便執行。BootLoader代碼應該存放在DSP內部RAM的開始1 kB中,應用程序代碼緊跟這1 kB的啟動代碼之后,而且BootLoader代碼應該和應用程序代碼一起燒寫到FLASH中,BootLoader代碼應該同樣處于FIASH的前1 kB空問中。DSP上電復位之后,首先以默認時序從FLASH中讀取前1 kB的BootLoader代碼到DSP內部RAM中,然后從地址0處執行BootLoader代碼,將應用程序代碼從FLASH中讀取到內部RAM或SDRAM中,當拷貝完應用程序代碼后,DSP跳到c_int00()復位中斷去執行,執行應用程序,從而完成了整個DSP的FLASH引導自啟動。
        對程序代碼的FLASH燒寫用一另外的燒寫工程進行,該燒寫工程要根據芯片手冊編寫對FLASH的擦除和編程函數,將程序代碼燒寫到FIASH中。由于同時要將兩個工程通過硬件仿真器Load至DSP內部或SDRAM,故需要修改燒寫工程的CMD文件,使其各種段不和含有BootLoader代碼的用戶工程相互沖突,否則無法實現FLASH的自啟動。

        2 DSP/BIOS嵌入式實時操作系統介紹及其引導設計
        TI推出的一系列的DSP,其性能不斷提高,C6000系列的最高運行時鐘和運算能力可以達到8800MIPS。如何充分發揮DSP的這種性能優勢,對軟件就提出了很高的要求。首先為了降低系統成本,提高系統性能,就要求DSP硬件實現的功能軟件化,其次為了產品的維護和升級,要求軟件盡可能地模塊化,使用高語言如C來編程,有統一的接口API。所有這些新的要求,都需要使用實時操作系統。實時操作系統與一般意義上的操作系統(如Windows,Unix等)的主要差別就在于實時操作系統提供了一種機制,使得運行于其上的應用程序都能夠滿足實時性的要求。
        引導一個DSP/BIOS應用系統的過程可以分為以下幾步,引導流程如圖1:

        本文引用地址:http://www.104case.com/article/148077.htm

        a.JPG


        1.引導時的DSP/BIOS的存儲器的配置
        2.構建自己的DSP/BIOS系統應用
        3.編寫BootLoader引導代碼
        4.把應用程序燒寫到FLASH中


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新津县| 察隅县| 麦盖提县| 宜昌市| 新田县| 庆元县| 蒙自县| 灵石县| 梁山县| 策勒县| 饶阳县| 松滋市| 荥经县| 刚察县| 仲巴县| 洛隆县| 长宁县| 临泽县| 镇远县| 铜梁县| 金沙县| 茶陵县| 江源县| 正定县| 措美县| 华容县| 清徐县| 金平| 长宁县| 乌拉特前旗| 郎溪县| 邢台市| 九寨沟县| 常山县| 綦江县| 肃南| 四平市| 宣恩县| 永兴县| 富顺县| 眉山市|