基于TMS320C6000 DSP及DSP/BIOS系統(tǒng)的Flash引導(dǎo)自啟動(dòng)設(shè)計(jì)
摘要:隨著信息技術(shù)的發(fā)展,DSP在現(xiàn)代電子系統(tǒng)設(shè)計(jì)中得到了廣泛的應(yīng)用,并且DSP的FLASH自啟動(dòng)在DSP的系統(tǒng)設(shè)計(jì)中也占有重要的地位,DSP/BIOS是TI推出的嵌入式實(shí)時(shí)操作系統(tǒng)。
關(guān)鍵詞:TMS320C6713;引導(dǎo)啟動(dòng);DSP/BIOS實(shí)時(shí)操作系統(tǒng)
FLASH是非易失的重復(fù)可讀寫(xiě)存儲(chǔ)器,其讀寫(xiě)速度較慢,常用來(lái)存儲(chǔ)系統(tǒng)設(shè)計(jì)的程序,微處理器通過(guò)一定的方式將FLASH中的程序讀取到處器內(nèi)部運(yùn)行,而TI公司的C6000系列的DSP內(nèi)部沒(méi)有FLASH,故DSP的程序需要燒到外部的FLASH中,在上電后,DSP會(huì)通過(guò)二次引導(dǎo)將程序從外部的FLASH讀取到DSP內(nèi)部RAM或SDRAM中,高速執(zhí)行。TI的C6000 DSP支持3種引導(dǎo)模式:主機(jī)引導(dǎo)、仿真引導(dǎo)及EMIF引導(dǎo),其中最常用的是EMIF引導(dǎo)(即片上BootLoader引導(dǎo))。在此引導(dǎo)模式下,位于外部存儲(chǔ)空間CE1的FLASH中的1kB代碼通過(guò)EDMA被拷貝到片內(nèi)RAM地址0處。然而,大多數(shù)的DSP程序并不僅限于1 kB代碼,因此需要開(kāi)發(fā)用戶(hù)引導(dǎo)程序?qū)⑵螧ootLoader沒(méi)有拷貝的代碼拷貝到DSP的片內(nèi)RAM。此用戶(hù)引導(dǎo)程序即稱(chēng)為二級(jí)BootLoader。由于DSP/BIOS操作系統(tǒng)的廣泛應(yīng)用,當(dāng)使用DSP/BIOS時(shí),需要將系統(tǒng)和BootLoader很好的結(jié)合起來(lái),實(shí)現(xiàn)DSP/ BIOS系統(tǒng)的自啟動(dòng)。
1 DSP自啟動(dòng)系統(tǒng)的設(shè)計(jì)
在TMS320C6713上電之后,系統(tǒng)會(huì)自動(dòng)根據(jù)外部配置,從EMIF的CE1的存儲(chǔ)空間搬取1 kB代碼,這些代碼別搬到DSP的內(nèi)部RAM地址0處執(zhí)行,這1KB的代碼就應(yīng)該存放DSP的BootLoader啟動(dòng)代碼。它只是一個(gè)拷貝程序,只負(fù)責(zé)將FLASH中的應(yīng)用程序代碼復(fù)制到DSP內(nèi)部RAM或者SDR AM中,以便執(zhí)行。BootLoader代碼應(yīng)該存放在DSP內(nèi)部RAM的開(kāi)始1 kB中,應(yīng)用程序代碼緊跟這1 kB的啟動(dòng)代碼之后,而且BootLoader代碼應(yīng)該和應(yīng)用程序代碼一起燒寫(xiě)到FLASH中,BootLoader代碼應(yīng)該同樣處于FIASH的前1 kB空問(wèn)中。DSP上電復(fù)位之后,首先以默認(rèn)時(shí)序從FLASH中讀取前1 kB的BootLoader代碼到DSP內(nèi)部RAM中,然后從地址0處執(zhí)行BootLoader代碼,將應(yīng)用程序代碼從FLASH中讀取到內(nèi)部RAM或SDRAM中,當(dāng)拷貝完應(yīng)用程序代碼后,DSP跳到c_int00()復(fù)位中斷去執(zhí)行,執(zhí)行應(yīng)用程序,從而完成了整個(gè)DSP的FLASH引導(dǎo)自啟動(dòng)。
對(duì)程序代碼的FLASH燒寫(xiě)用一另外的燒寫(xiě)工程進(jìn)行,該燒寫(xiě)工程要根據(jù)芯片手冊(cè)編寫(xiě)對(duì)FLASH的擦除和編程函數(shù),將程序代碼燒寫(xiě)到FIASH中。由于同時(shí)要將兩個(gè)工程通過(guò)硬件仿真器Load至DSP內(nèi)部或SDRAM,故需要修改燒寫(xiě)工程的CMD文件,使其各種段不和含有BootLoader代碼的用戶(hù)工程相互沖突,否則無(wú)法實(shí)現(xiàn)FLASH的自啟動(dòng)。
2 DSP/BIOS嵌入式實(shí)時(shí)操作系統(tǒng)介紹及其引導(dǎo)設(shè)計(jì)
TI推出的一系列的DSP,其性能不斷提高,C6000系列的最高運(yùn)行時(shí)鐘和運(yùn)算能力可以達(dá)到8800MIPS。如何充分發(fā)揮DSP的這種性能優(yōu)勢(shì),對(duì)軟件就提出了很高的要求。首先為了降低系統(tǒng)成本,提高系統(tǒng)性能,就要求DSP硬件實(shí)現(xiàn)的功能軟件化,其次為了產(chǎn)品的維護(hù)和升級(jí),要求軟件盡可能地模塊化,使用高語(yǔ)言如C來(lái)編程,有統(tǒng)一的接口API。所有這些新的要求,都需要使用實(shí)時(shí)操作系統(tǒng)。實(shí)時(shí)操作系統(tǒng)與一般意義上的操作系統(tǒng)(如Windows,Unix等)的主要差別就在于實(shí)時(shí)操作系統(tǒng)提供了一種機(jī)制,使得運(yùn)行于其上的應(yīng)用程序都能夠滿(mǎn)足實(shí)時(shí)性的要求。
引導(dǎo)一個(gè)DSP/BIOS應(yīng)用系統(tǒng)的過(guò)程可以分為以下幾步,引導(dǎo)流程如圖1:
1.引導(dǎo)時(shí)的DSP/BIOS的存儲(chǔ)器的配置
2.構(gòu)建自己的DSP/BIOS系統(tǒng)應(yīng)用
3.編寫(xiě)B(tài)ootLoader引導(dǎo)代碼
4.把應(yīng)用程序燒寫(xiě)到FLASH中
評(píng)論