第7章TMS320C54 DSP最小硬件系統(tǒng)設(shè)計(jì)(上課用)_第1頁(yè)
第7章TMS320C54 DSP最小硬件系統(tǒng)設(shè)計(jì)(上課用)_第2頁(yè)
第7章TMS320C54 DSP最小硬件系統(tǒng)設(shè)計(jì)(上課用)_第3頁(yè)
第7章TMS320C54 DSP最小硬件系統(tǒng)設(shè)計(jì)(上課用)_第4頁(yè)
第7章TMS320C54 DSP最小硬件系統(tǒng)設(shè)計(jì)(上課用)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第7章章 TMS320C54x DSP最小硬件系統(tǒng)設(shè)計(jì)最小硬件系統(tǒng)設(shè)計(jì) n7.1 TMS320C54x DSP系統(tǒng)的基本硬件設(shè)計(jì)系統(tǒng)的基本硬件設(shè)計(jì) n7.2 存儲(chǔ)器接口設(shè)計(jì)存儲(chǔ)器接口設(shè)計(jì) n7.3 Flash擦寫(xiě)擦寫(xiě) n7.4 Bootloader設(shè)計(jì)設(shè)計(jì) 返回首頁(yè) 7.1.1 復(fù)位電路復(fù)位電路 7.1.2 時(shí)鐘電路時(shí)鐘電路 7.1.3 電源電路電源電路 7.1.1 復(fù)位電路復(fù)位電路 1. 上電復(fù)位 上電復(fù)位電路是利用上電復(fù)位電路是利用RCRC電路的延遲特性來(lái)產(chǎn)生復(fù)位所需電路的延遲特性來(lái)產(chǎn)生復(fù)位所需 要的低電平時(shí)間。要的低電平時(shí)間。由由RCRC電路和施密特觸發(fā)器組成電路和施密特觸發(fā)器組成。

2、-t/ CC =V(1-e C V 時(shí)間常數(shù): = RC 復(fù)位時(shí)間:t=-RC ln1-VC/VCC 設(shè)VC=1.5V為閾值電壓, 選擇R = 100k,C = 4.7F,電源電壓 VCC = 5V,可得復(fù)位時(shí)間t = 167ms, 滿足系統(tǒng)的晶體振蕩器一般需要100- 200ms的穩(wěn)定期。 簡(jiǎn)單方便,但有時(shí)不能可靠復(fù)位。 5首都師范大學(xué)信息工程學(xué)院 TMS320C54xTMS320C54x RSRS 1 11 1 C C R R V VCC CC 7474HC14HC14 1ln CC C V V RCt TMS320C54xTMS320C54x RSRS C C R R V VCC CC

3、R R1 1 MAX706TMAX706T MR WDOMR WDO VCC RESET VCC RESET GND WDIGND WDI PFI PFOPFI PFO 1 1 2 2 3 3 4 45 5 6 6 7 7 8 8 RSRS V VCC CC 3.3V 3.3V 至至DSPDSP的復(fù)位端的復(fù)位端 CLKCLK來(lái)自來(lái)自DSPDSP的輸出端的輸出端 MR:人工復(fù)位輸入。當(dāng)輸入電壓低于0.6V時(shí),復(fù)位比較器輸出有效的復(fù)位信號(hào). Vcc:電源端當(dāng)Vcc低于復(fù)位門(mén)限電壓時(shí),輸出有效的復(fù)位信號(hào),并且當(dāng)Vcc上 升至復(fù)位門(mén)限電壓后,復(fù)位脈沖維持200ms PFI:門(mén)限檢測(cè)器輸入端。當(dāng)PFI端

4、的輸入電壓低于1.25V時(shí),PFO端輸出低電平。 PFI端不用時(shí)可與GND端相連。 PFO:門(mén)限檢測(cè)器輸出端。當(dāng)PFI端電壓低于比較器門(mén)限電壓1.25V時(shí),PFO為低 電平,否則為高電平。 WDI:看門(mén)狗輸入當(dāng)WDI端信號(hào)維持高電平或低電平的時(shí)間超1.6s時(shí),看門(mén)狗定 時(shí)器溢出,WDO端輸出低電平。WDI端的任何一個(gè)跳變都使定時(shí)器清零。 RESET:低電平復(fù)位輸出受MR端和Vcc端控制, 當(dāng)MR端電壓低于0.6V或Vcc端電壓低于復(fù)位 門(mén)限電壓時(shí),RESET輸出低電平復(fù)位脈沖。 WDO:看門(mén)狗輸出當(dāng)電源低于復(fù)位門(mén)限 或看門(mén)狗定時(shí)器溢出時(shí),WDO端 輸出低電平,否則為高電平 7.1.2 時(shí)鐘電路

5、時(shí)鐘電路 采用封裝好的晶體振蕩器,將外部時(shí)鐘信號(hào)直接加到采用封裝好的晶體振蕩器,將外部時(shí)鐘信號(hào)直接加到 TMS320C54x DSPTMS320C54x DSP芯片的芯片的X2/CLKINX2/CLKIN引腳,而引腳,而X1X1引腳懸空。引腳懸空。 電路簡(jiǎn)單、體積小、頻率范圍寬電路簡(jiǎn)單、體積小、頻率范圍寬(1Hz400MHz)(1Hz400MHz)、驅(qū)動(dòng)、驅(qū)動(dòng) 能力強(qiáng)、可為多個(gè)器件使用。價(jià)格便宜,因而得到廣泛應(yīng)能力強(qiáng)、可為多個(gè)器件使用。價(jià)格便宜,因而得到廣泛應(yīng) 用。由于使用了電源,也有人稱其為用。由于使用了電源,也有人稱其為有源晶振電路有源晶振電路。 16首都師范大學(xué)信息工程學(xué)院 在芯片的在芯

6、片的X1X1和和X2/CLKINX2/CLKIN引腳之間接入一個(gè)晶體引腳之間接入一個(gè)晶體, ,用于啟動(dòng)用于啟動(dòng) 內(nèi)部振蕩器。內(nèi)部振蕩器。 這種電路結(jié)構(gòu)價(jià)格便宜、體積小、能滿足時(shí)鐘信號(hào)電平這種電路結(jié)構(gòu)價(jià)格便宜、體積小、能滿足時(shí)鐘信號(hào)電平 要求,但驅(qū)動(dòng)能力差,不可提供多個(gè)器件使用,頻率范要求,但驅(qū)動(dòng)能力差,不可提供多個(gè)器件使用,頻率范 圍小圍小(20KHz60MHz)(20KHz60MHz),由于其不需要使用外部電源,也叫,由于其不需要使用外部電源,也叫 無(wú)源晶振電路無(wú)源晶振電路。 17首都師范大學(xué)信息工程學(xué)院 (1) 硬件配置硬件配置PLL n用于用于C541、C542、C543、C545和和C

7、546芯片。芯片。 n所謂所謂硬件配置硬件配置PLL,就是通過(guò)就是通過(guò)C54x的的3個(gè)引腳個(gè)引腳CLKMD1、 CLKMD2和和CLKMD3的狀態(tài),選定時(shí)鐘方式的狀態(tài),選定時(shí)鐘方式。上電復(fù)位時(shí),。上電復(fù)位時(shí), TMS320C54x DSP根據(jù)這三個(gè)引腳的電平?jīng)Q定根據(jù)這三個(gè)引腳的電平?jīng)Q定PLL的工作的工作 狀態(tài),并啟動(dòng)狀態(tài),并啟動(dòng)PLL工作,其工作,其PLL的配置方式如表的配置方式如表7.1所示。所示。 由表由表7.1可見(jiàn),不用可見(jiàn),不用PLL時(shí),時(shí),CPU的時(shí)鐘頻率等于晶體振蕩的時(shí)鐘頻率等于晶體振蕩 器頻率或外部時(shí)鐘頻率的一半;若用器頻率或外部時(shí)鐘頻率的一半;若用PLL,CPU的時(shí)鐘頻的時(shí)鐘頻

8、 率等于晶體振蕩器頻率或外部時(shí)鐘頻率乘以系數(shù)率等于晶體振蕩器頻率或外部時(shí)鐘頻率乘以系數(shù)N (PLLN),),使用使用PLL可以使用比可以使用比CPU時(shí)鐘低的外部時(shí)鐘時(shí)鐘低的外部時(shí)鐘 信號(hào),以減少高速開(kāi)關(guān)時(shí)鐘所造成的高頻噪聲。從而降低信號(hào),以減少高速開(kāi)關(guān)時(shí)鐘所造成的高頻噪聲。從而降低 干擾的影響。干擾的影響。 表7.1 硬件PLL的配置方式 引腳狀態(tài)引腳狀態(tài) 時(shí)時(shí) 鐘鐘 方方 式式* CLKMD1 CLKMD2 CLKMD3 選擇方案 1選擇方案 2 000 用外部時(shí)鐘源, PLL3用外部時(shí)鐘源, PLL5 110 用外部時(shí)鐘源, PLL2用外部時(shí)鐘源, PLL4 100 用內(nèi)部振蕩器, PLL

9、3用內(nèi)部振蕩器, PLL5 010 用外部時(shí)鐘源, PLL1.5 用外部時(shí)鐘源, PLL4.5 001 用外部時(shí)鐘源,頻率除以 2用外部時(shí)鐘源,頻率除以 2 111 用內(nèi)部振蕩器,頻率除以 2用內(nèi)部振蕩器,頻率除以 2 101 用外部時(shí)鐘源, PLL 1用外部時(shí)鐘源, PLL 1 011 停止方式*停止方式* *根據(jù)不同器件,選擇方案 1 或者方案 2。 *停止方式:其功能等效于 IDLE3省電方式;但是,要省電還是推薦用 IDLE3指令 而不用停止方式,因?yàn)?IDLE3使 PLL 停止工作,復(fù)位或非屏蔽中斷到來(lái)時(shí)可以 恢復(fù)工作。 缺點(diǎn):進(jìn)行硬件配置時(shí),其工作頻率是固定的,不能靈活改變。 (2

10、) 軟件可編程軟件可編程PLL n軟件可編程軟件可編程PLL具具有高度的靈活性,其時(shí)鐘定標(biāo)器提供各種有高度的靈活性,其時(shí)鐘定標(biāo)器提供各種 時(shí)鐘乘法器系數(shù),并能直接接通和關(guān)斷時(shí)鐘乘法器系數(shù),并能直接接通和關(guān)斷PLL。PLL的鎖定定的鎖定定 時(shí)器可以用于延遲轉(zhuǎn)換時(shí)器可以用于延遲轉(zhuǎn)換PLL的時(shí)鐘方式,直到鎖定為止的時(shí)鐘方式,直到鎖定為止。通。通 過(guò)軟件編程,可以使過(guò)軟件編程,可以使軟件軟件PLL實(shí)現(xiàn)實(shí)現(xiàn)兩種工作方式兩種工作方式(如表(如表7.2 7.4、圖、圖7-3所示)。所示)。 nPLL方式方式,即倍頻方式。,即倍頻方式。 芯片的工作頻率芯片的工作頻率= =輸入時(shí)鐘輸入時(shí)鐘CLKIN CLKIN

11、 PLL PLL的乘系數(shù)的乘系數(shù)(N).(N).共共 有有3131個(gè)乘系數(shù),取值范圍為個(gè)乘系數(shù),取值范圍為0.25150.2515。 這是靠這是靠PLLPLL電路來(lái)完電路來(lái)完 成的。成的。 nDIV方式方式,即分頻方式。,即分頻方式。 對(duì)輸入時(shí)鐘對(duì)輸入時(shí)鐘CLKINCLKIN進(jìn)行進(jìn)行2 2分頻或分頻或4 4分頻。當(dāng)采用分頻。當(dāng)采用DIVDIV方式時(shí),方式時(shí), 所有的模擬電路,包括所有的模擬電路,包括PLLPLL電路都關(guān)斷,以使功耗最小。電路都關(guān)斷,以使功耗最小。 n上述兩種工作方式通過(guò)讀上述兩種工作方式通過(guò)讀/ /寫(xiě)時(shí)鐘方式寄存器寫(xiě)時(shí)鐘方式寄存器(CLKMD)(CLKMD)(地址:(地址: 0

12、058H0058H)來(lái)完成。)來(lái)完成。 表7.2 復(fù)位時(shí)的時(shí)鐘方式(C5402) CLKMD 1 CLKMD 2 CLKMD 3 CLKMD寄存 器 時(shí)鐘方式 000E007H乘15,內(nèi)部振蕩器工作,PLL工作 0019007H 乘10,內(nèi)部振蕩器工作,PLL工作 0104007H乘5,內(nèi)部振蕩器工作,PLL工作 1001007H乘2,內(nèi)部振蕩器工作,PLL工作 110F007H乘1,內(nèi)部振蕩器工作,PLL工作 1110000H 乘1/2,內(nèi)部振蕩器工作,PLL不工 作 101F000H 乘1/4,內(nèi)部振蕩器工作,PLL不工 作 011保留 時(shí)鐘方式寄存器(CLKMD)各位的定義 151211

13、103210 PLLMULPLLDIVPLLCOUNT PLLON/OFFPLLNDIVPLLSTATUS R/WR/WR/WR/WR/WR 表7.3 時(shí)鐘方式寄存器CLKMD各位域功能 位 位 名名 稱 稱 功功 能 能 1512PLLMULPLL 乘數(shù)。讀/寫(xiě)位。與 PLLDIV以及 PLLNDIV 一起決定頻率的乘數(shù) 11PLLDIVPLL 除數(shù)。讀/寫(xiě)位。與PLLMUL以及 PLLNDIV一道定義頻率的乘數(shù) 103PLLCOUNT PLL 減法計(jì)數(shù)器。讀/寫(xiě)位。每16個(gè)輸入時(shí)鐘CLKIN 到來(lái)后減 1。 對(duì) PLL 開(kāi)始工作之后到 PLL 成為處理器時(shí)鐘 之前的一段時(shí) 間進(jìn)行計(jì)數(shù)定時(shí)。

14、PLL 計(jì)數(shù)器能夠確保在 PLL 鎖定 之后以正確的時(shí)鐘信號(hào)加到處理器 2PLLON/OFF PLL通/斷位。讀/寫(xiě)位。與 PLLDIV 位一道決定時(shí)鐘發(fā)生器的PLL 部件的通/斷: PLLON/OFFPLLDIVPLL狀態(tài) 00 斷開(kāi) 01 工作 10 工作 11 工作 1PLLNDIV PLL時(shí)鐘發(fā)生器選擇位。讀/寫(xiě)位。決定時(shí)鐘發(fā)生器的工作方式: PLLNDIV=0采用分頻器(DIV)方式, PLLNDIV=1采用 PLL方式。 與 PLLMUL以及 PLLDIV一道定義頻率的乘數(shù) 0PLLSTATUSPLL的狀態(tài)位。 指示時(shí)鐘發(fā)生器的工作方式只讀位。: PLLSTATUS=0分頻器(DI

15、V)方式 PLLSTATUS=1 PLL方式 151211103210 PLLMULPLLDIVPLLCOUNT PLLON/OFFPLLNDIVPLLSTATUS R/WR/WR/WR/WR/WR 表7.4 PLL的系數(shù)組合 PLLNDIVPLLDPLLMULPLL乘系數(shù)乘系數(shù) 0X0140.5 0X150.25 10014PLLMUL+1 10151 110或偶數(shù)或偶數(shù)(PLLMUL+1)2 11奇數(shù)奇數(shù)PLLMUL4 n對(duì)時(shí)鐘方式寄存器(對(duì)時(shí)鐘方式寄存器(CLKMD)進(jìn)行編程,可以進(jìn)行編程,可以: n(1) 提供各種時(shí)鐘乘法器系數(shù) n(2) 控制PLL的接通和關(guān)斷 n(3) 控制時(shí)鐘發(fā)生

16、器的工作方式 n(4) 自動(dòng)延遲定時(shí),直到PLL鎖定 n在在PLL鎖定之前,它是不能用作鎖定之前,它是不能用作C54x時(shí)鐘的。時(shí)鐘的。所所 以,通過(guò)對(duì)以,通過(guò)對(duì)CLKMD寄存器中的寄存器中的PLLCOUNT位域位域 編程實(shí)現(xiàn)自動(dòng)延時(shí),直到編程實(shí)現(xiàn)自動(dòng)延時(shí),直到PLL鎖定為止。鎖定為止。PLL的的 鎖定定時(shí)器鎖定定時(shí)器是一個(gè)計(jì)數(shù)器,它從是一個(gè)計(jì)數(shù)器,它從PLLCOUNT位域位域 加載初始值(加載初始值(0255),每),每16個(gè)輸入時(shí)鐘個(gè)輸入時(shí)鐘CLKIN 到來(lái)后減到來(lái)后減1,直到減為,直到減為0為止。因此,為止。因此,鎖定時(shí)間鎖定時(shí)間設(shè)設(shè) 置范圍為置范圍為(0255)*16CLKIN周期周期。

17、 圖7-3PLL鎖定時(shí)間和CLKOUT頻率的關(guān)系 返回本節(jié) 根據(jù)鎖定時(shí)間根據(jù)鎖定時(shí)間Lockup Time可以求得可以求得PLLCOUNT的數(shù)值:的數(shù)值: PLLCOUNT(十進(jìn)制)(十進(jìn)制) Lockup Time( 16TCLKIN) 為了降低芯片功耗,為了降低芯片功耗,TMS320C54xTMS320C54x系列系列DSPDSP芯片大部分都采芯片大部分都采 用低電壓設(shè)計(jì),并且采用用低電壓設(shè)計(jì),并且采用雙電源供電雙電源供電,即,即內(nèi)核電源(內(nèi)核電源( Cvdd Cvdd )和)和 I/O I/O 電源(電源( Dvdd ) Dvdd ) ,其中,其中I/OI/O電源一般采用電源一般采用 3

18、.3V 3.3V 電壓,而內(nèi)核電源電壓分為電壓,而內(nèi)核電源電壓分為 3.3V 3.3V 或或 2.5V 2.5V 甚至更甚至更 低低,降低內(nèi)核電壓的主要目的還是降低功耗。理想情況,降低內(nèi)核電壓的主要目的還是降低功耗。理想情況 下,兩電源應(yīng)同時(shí)加電。若不能做到同時(shí)加電,應(yīng)先對(duì)下,兩電源應(yīng)同時(shí)加電。若不能做到同時(shí)加電,應(yīng)先對(duì) DvddDvdd加電,然后再對(duì)加電,然后再對(duì)CvddCvdd加電。加電。 32首都師范大學(xué)信息工程學(xué)院 7.1.3 電源電路電源電路 采用專(zhuān)門(mén)的采用專(zhuān)門(mén)的DC-DC芯片進(jìn)行電平轉(zhuǎn)換芯片進(jìn)行電平轉(zhuǎn)換 n產(chǎn)生電源的芯片:(產(chǎn)生電源的芯片:( nTMS320C54x DSP電源解決

19、方案有幾種:電源解決方案有幾種: MaximMaxim公司的公司的MAX604MAX604、MAX748MAX748。 NC 1RESETNC 1RESET NC NCNC NC 1GND NC1GND NC 1EN FB/SENSE1EN FB/SENSE 1IN 1OUT1IN 1OUT 1IN 1OUT1IN 1OUT NC 2RESETNC 2RESET NC NCNC NC 2GND NC2GND NC 2EN 2SENSE2EN 2SENSE 2IN 2OUT2IN 2OUT 2IN 2OUT2IN 2OUT NC NCNC NC NC NCNC NC C3C3 3333 F F

20、3 3.3 3V V 1 1 2 2 3 3 4 4 5 5 6 6 7 7 9 9 1010 1111 1212 1313 1717 1515 1616 8 8 1414 CVCVDD DD TMS320VC5402TMS320VC5402 DVDVDD DD GNDGND /定義臨時(shí)地址指針和數(shù)據(jù)變量 Ad_Temp=(uint*)(0 x55555+OFFSET);/第一個(gè)寫(xiě)周期 *Ad_Temp=0 x00AAH;/給地址0 x5555,寫(xiě)數(shù)據(jù)0 x00AAH Ad_Temp=(uint*)(0 x2AAA+OFFSET);/第二個(gè)寫(xiě)周期 *Ad_Temp=0 x0055H;/給地址0

21、 x2AAA,寫(xiě)數(shù)據(jù)0 x0055H Ad_Temp=(uint*)(0 x5555+OFFSET);/第三個(gè)寫(xiě)周期 *Ad_Temp=0 x00A0H;/給地址0 x5555寫(xiě)數(shù)據(jù)0 x00A0 *Ad=DA;/給編程地址寫(xiě)編程數(shù)據(jù) 46首都師范大學(xué)信息工程學(xué)院 Again; Temp1=*Ad/兩次讀D6(ToggleBit) Temp2=*Ad If(Temp1!=Temp2)/判斷是否命令執(zhí)行結(jié)束,否則繼續(xù)讀ToggleBit gotoAgain; 需要注意的是,在DSP將數(shù)據(jù)寫(xiě)入FLASH之前,只有先 刪除數(shù)據(jù)所在塊,然后才能重新寫(xiě)入。擦除和寫(xiě)操作之前 都要執(zhí)行表7.6所示的相應(yīng)命令

22、字序列。而其前提是FLASH 地址在DSP中是可見(jiàn)的。 47首都師范大學(xué)信息工程學(xué)院 見(jiàn)教材P161表7.6 TMS320C5416 DSPTMS320C5416 DSP如何實(shí)現(xiàn)如何實(shí)現(xiàn)對(duì)外部對(duì)外部FLASHFLASH進(jìn)行操作進(jìn)行操作(即地址映(即地址映 射方式)射方式) TMS320C5416TMS320C5416在加電后是在加電后是以數(shù)據(jù)空間來(lái)尋址以數(shù)據(jù)空間來(lái)尋址FLASHFLASH的,只能的,只能 尋址尋址80008000FFFFHFFFFH外部地址范圍的數(shù)據(jù)。外部地址范圍的數(shù)據(jù)。 在在MP/MC=1MP/MC=1和和OVLYOVLY1 1的情況下,地址的情況下,地址5555H5555H

23、和和2AAAH2AAAH是位是位 于于TMS320C5416 DSPTMS320C5416 DSP內(nèi)部,在外部是不可見(jiàn)的,因此對(duì)于內(nèi)部,在外部是不可見(jiàn)的,因此對(duì)于 寫(xiě)寫(xiě)AAHAAH到到5555H5555H和寫(xiě)和寫(xiě)55H55H到到2AAAH2AAAH的操作,其實(shí)根本的操作,其實(shí)根本未未對(duì)對(duì) FLASHFLASH進(jìn)行操作。進(jìn)行操作。 由于由于5555H5555H和和2AAAH2AAAH中真正起作用的是中真正起作用的是A0A0A14A14位,位,A15A15 A17A17位可以是任意值,于是加一個(gè)偏移量位可以是任意值,于是加一個(gè)偏移量8000H8000H。則此時(shí)。則此時(shí) 5555H5555H變?yōu)樽優(yōu)?/p>

24、D555H,D555H,而而2AAAH2AAAH變?yōu)樽優(yōu)锳AAAHAAAAH,在外部可見(jiàn),這樣在外部可見(jiàn),這樣 就可以通過(guò)就可以通過(guò)TMS320C5416 DSPTMS320C5416 DSP對(duì)外部對(duì)外部FLASHFLASH進(jìn)行操作。進(jìn)行操作。 48首都師范大學(xué)信息工程學(xué)院 一、Bootload的過(guò)程 BootloadBootload就是程序的引導(dǎo)加載就是程序的引導(dǎo)加載 DSPDSP內(nèi)部沒(méi)有可編輯的程序存儲(chǔ)器內(nèi)部沒(méi)有可編輯的程序存儲(chǔ)器,片上的程序存儲(chǔ)器就是,片上的程序存儲(chǔ)器就是 ROMROM存儲(chǔ)器,它必須在復(fù)位期間將外部的程序加載到內(nèi)部存儲(chǔ)器,它必須在復(fù)位期間將外部的程序加載到內(nèi)部 RAMRA

25、M之后才能運(yùn)行。之后才能運(yùn)行。 在在DSPDSP芯片內(nèi)部的芯片內(nèi)部的ROMROM中,固化有一段小程序,通過(guò)這段小中,固化有一段小程序,通過(guò)這段小 程序初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,最終將用程序初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,最終將用 戶程序加載到戶程序加載到RAMRAM中,并跳轉(zhuǎn)到用戶程序的入口地址開(kāi)始執(zhí)中,并跳轉(zhuǎn)到用戶程序的入口地址開(kāi)始執(zhí) 行程序。行程序。 1、MS320C54x DSP芯片內(nèi)ROM的引導(dǎo)加載共有并行 EPROM(Flash)、并行I/O、串行口、HPI口和熱自舉五種方 式。49首都師范大學(xué)信息工程學(xué)院 7.4 Bootloader 設(shè)計(jì)設(shè)計(jì) TMS320C54

26、02 DSPTMS320C5402 DSP片內(nèi)片內(nèi)ROMROM分配表分配表 起始地址起始地址內(nèi)內(nèi) 容容 F000HF000H預(yù)留預(yù)留 F800HF800H自舉引導(dǎo)程序自舉引導(dǎo)程序 FC00HFC00H256256字字律擴(kuò)充表律擴(kuò)充表 FD00HFD00H256256字字A律擴(kuò)充表律擴(kuò)充表 FE00HFE00H256256字正弦查找表字正弦查找表 FF00HFF00H預(yù)留預(yù)留 FF80HFF80H中斷向量表中斷向量表 50首都師范大學(xué)信息工程學(xué)院 在在BOOTBOOT程序的開(kāi)始,是一小段初始化程序,其程序片段如下程序的開(kāi)始,是一小段初始化程序,其程序片段如下: : 00000000:FF80FF

27、80 SSBX INTM ; SSBX INTM ; 屏蔽所有中斷屏蔽所有中斷 LD #0, DP ; LD #0, DP ; 數(shù)據(jù)頁(yè)指向數(shù)據(jù)頁(yè)指向0 0頁(yè)頁(yè) STM #0FFFFH,IFR ; STM #0FFFFH,IFR ; 清空清空 IFR IFR 寄存器寄存器 ORM #02b00H,ST1 ORM #02b00H,ST1 ; ; 設(shè)置設(shè)置ST1ST1寄存器,其中寄存器,其中XF=1, INTM=1, OVM=1, SXM=1XF=1, INTM=1, OVM=1, SXM=1 ORM #020H, PMST ORM #020H, PMST ; ; 設(shè)置設(shè)置PMSTPMST,OVLY

28、=1OVLY=1使片內(nèi)使片內(nèi)RAMRAM映射到程序映射到程序/ /數(shù)據(jù)區(qū)。數(shù)據(jù)區(qū)。 STM #07fffH,SWWSR STM #07fffH,SWWSR ; ; 設(shè)置設(shè)置SWWSRSWWSR,等待狀態(tài)為,等待狀態(tài)為7 7個(gè)周期個(gè)周期 51首都師范大學(xué)信息工程學(xué)院 初始化程序功能是:使中斷無(wú)效(INTM = 1), 內(nèi)部RAM映射到程序/數(shù)據(jù)區(qū)(OVLY=1),對(duì)程序和數(shù) 據(jù)區(qū)均設(shè)置7個(gè)等待狀態(tài)。DROM = 0,這樣數(shù)據(jù)空 間的0 x8000H- 0 xFFFFH映射到外部FLASH使用。 隨后BOOT程序開(kāi)始選擇BOOT方式,它是根據(jù) 外部設(shè)置的不同條件來(lái)選擇的,并且有一個(gè)先后的 次序 引

29、導(dǎo)加載方式的選擇流程如下圖 52首都師范大學(xué)信息工程學(xué)院 53首都師范大學(xué)信息工程學(xué)院 并行加載過(guò)程: 54首都師范大學(xué)信息工程學(xué)院 2、自舉表自舉表 把從把從8000H8000H(假設(shè)為(假設(shè)為8000H8000H)開(kāi)始的燒錄到)開(kāi)始的燒錄到flashflash中的代碼中的代碼 稱為稱為BOOTBOOT表表(自舉表),其數(shù)據(jù)存放格式已被(自舉表),其數(shù)據(jù)存放格式已被BootBoot程序約程序約 定好定好,格式如表格式如表7.87.8所示(見(jiàn)教材所示(見(jiàn)教材P166P166)。 自舉表的首地址內(nèi)容是關(guān)鍵字(自舉表的首地址內(nèi)容是關(guān)鍵字(08AA08AA或或10AA10AA),加載程序),加載程序

30、 就是根據(jù)它來(lái)判斷是就是根據(jù)它來(lái)判斷是1616位還是位還是8 8位加載方式;接著的兩個(gè)位加載方式;接著的兩個(gè) 字是字是SWWSRSWWSR和和BSCRBSCR的值;第四和第五個(gè)字是程序代碼執(zhí)行的值;第四和第五個(gè)字是程序代碼執(zhí)行 的入口點(diǎn)(即加載以后程序執(zhí)行的首地址);接著是第一的入口點(diǎn)(即加載以后程序執(zhí)行的首地址);接著是第一 段代碼的長(zhǎng)度以及它段代碼的長(zhǎng)度以及它BOOTBOOT到內(nèi)部到內(nèi)部RAMRAM程序空間的目的地址程序空間的目的地址 ;緊跟著是另一段代碼;依此類(lèi)推,最后是;緊跟著是另一段代碼;依此類(lèi)推,最后是0000H0000H,這是,這是 自舉表的結(jié)束標(biāo)志。自舉表的結(jié)束標(biāo)志。 55首都

31、師范大學(xué)信息工程學(xué)院 3、在這種并行加載的過(guò)程中,需要注意以下幾點(diǎn) 要求用戶要求用戶程序程序事先事先按按TITI規(guī)定的格式燒寫(xiě)到外部規(guī)定的格式燒寫(xiě)到外部FLASHFLASH中中,而,而 且在且在上電時(shí)必須把上電時(shí)必須把FLASHFLASH配置在數(shù)據(jù)空間配置在數(shù)據(jù)空間; 如果設(shè)計(jì)的如果設(shè)計(jì)的DSPDSP系統(tǒng)需要系統(tǒng)需要外接外接SRAMSRAM作為外部數(shù)據(jù)存儲(chǔ)空間,作為外部數(shù)據(jù)存儲(chǔ)空間, 就會(huì)就會(huì)和和FlashFlash產(chǎn)生地址沖突產(chǎn)生地址沖突。另一方面,當(dāng)程序全部從。另一方面,當(dāng)程序全部從 Flash BootFlash Boot到所指定的目的地址以后,用于存放程序的到所指定的目的地址以后,用于

32、存放程序的 FlashFlash在系統(tǒng)的運(yùn)行過(guò)程中就不再起任何作用。在系統(tǒng)的運(yùn)行過(guò)程中就不再起任何作用。 引導(dǎo)程序所能加載的用戶程序最大只能是引導(dǎo)程序所能加載的用戶程序最大只能是48K48K。如果如果在實(shí)際在實(shí)際 應(yīng)用中遇到應(yīng)用中遇到大程序、大數(shù)據(jù)量大程序、大數(shù)據(jù)量, , 超過(guò)了這個(gè)超過(guò)了這個(gè)存儲(chǔ)空間存儲(chǔ)空間,用用 戶戶就必須自己重新編寫(xiě)就必須自己重新編寫(xiě)B(tài)oot-loaderBoot-loader程序程序,這可以參考,這可以參考 TMS320C54xTMS320C54x的的BootloaderBootloader程序進(jìn)行編寫(xiě)。程序進(jìn)行編寫(xiě)。 56首都師范大學(xué)信息工程學(xué)院 二、Bootload

33、的實(shí)現(xiàn) 1、并行引導(dǎo)方式的實(shí)現(xiàn)有兩種 一種是自己重新編寫(xiě)所有引導(dǎo)代碼一種是自己重新編寫(xiě)所有引導(dǎo)代碼,并和用戶程序一起燒,并和用戶程序一起燒 寫(xiě)在外部程序存儲(chǔ)器寫(xiě)在外部程序存儲(chǔ)器FLASHFLASH中,在脫機(jī)復(fù)位時(shí),令中,在脫機(jī)復(fù)位時(shí),令MP/MC=1MP/MC=1 ,這樣直接從片外,這樣直接從片外FF80HFF80H處開(kāi)始執(zhí)行自編寫(xiě)代碼,將用戶代處開(kāi)始執(zhí)行自編寫(xiě)代碼,將用戶代 碼搬移到內(nèi)部或外部碼搬移到內(nèi)部或外部RAMRAM程序存儲(chǔ)空間中運(yùn)行,或者完全不程序存儲(chǔ)空間中運(yùn)行,或者完全不 用引導(dǎo)程序搬移,直接在用引導(dǎo)程序搬移,直接在FLASHFLASH中運(yùn)行用戶程序,后者已不中運(yùn)行用戶程序,后者已

34、不 屬于并行引導(dǎo)的范疇屬于并行引導(dǎo)的范疇。 一種是利用片內(nèi)一種是利用片內(nèi)ROMROM自帶的引導(dǎo)程序自帶的引導(dǎo)程序,在脫機(jī)復(fù)位時(shí),令,在脫機(jī)復(fù)位時(shí),令 MP/MC=0 MP/MC=0 來(lái)實(shí)現(xiàn)。來(lái)實(shí)現(xiàn)。 57首都師范大學(xué)信息工程學(xué)院 2、FLASH的燒寫(xiě)方法 一種是基于專(zhuān)用編程器的燒寫(xiě)方式,一種是基于專(zhuān)用編程器的燒寫(xiě)方式,這需要把用戶的這需要把用戶的 .out.out程序轉(zhuǎn)成程序轉(zhuǎn)成.hex.hex格式的加載表,然后燒錄到非易失性格式的加載表,然后燒錄到非易失性 存貯器中,由于現(xiàn)在的存貯器中,由于現(xiàn)在的FLASHFLASH大多是貼片的,無(wú)法將大多是貼片的,無(wú)法將 FlashFlash存儲(chǔ)器等元器件

35、從電路板上取下來(lái)單獨(dú)進(jìn)行編程。存儲(chǔ)器等元器件從電路板上取下來(lái)單獨(dú)進(jìn)行編程。 專(zhuān)用編程器的方式已經(jīng)很少采用;專(zhuān)用編程器的方式已經(jīng)很少采用; 一種是基于仿真器連接的一種是基于仿真器連接的JTAGJTAG接口的在線編程方式接口的在線編程方式,有,有 的也叫在系統(tǒng)編程,這種在系統(tǒng)帶電編程的方式不受時(shí)的也叫在系統(tǒng)編程,這種在系統(tǒng)帶電編程的方式不受時(shí) 間和空間的限制,隨時(shí)隨地都可進(jìn)行,且產(chǎn)品軟件版本間和空間的限制,隨時(shí)隨地都可進(jìn)行,且產(chǎn)品軟件版本 升級(jí)容易,目前應(yīng)用比較普遍。升級(jí)容易,目前應(yīng)用比較普遍。 58首都師范大學(xué)信息工程學(xué)院 3、BOOT表的組織 一種是利用一種是利用CCSCCS自帶的自帶的hex

36、500.exehex500.exe應(yīng)用程序來(lái)實(shí)現(xiàn)應(yīng)用程序來(lái)實(shí)現(xiàn)BOOTBOOT表表 的數(shù)據(jù)格式的數(shù)據(jù)格式。 一種是在一種是在FLASHFLASH燒寫(xiě)的過(guò)程中,人為組織燒寫(xiě)的過(guò)程中,人為組織BOOTBOOT表的數(shù)據(jù)格表的數(shù)據(jù)格 式。式。格式如表格式如表7.87.8所示(見(jiàn)教材所示(見(jiàn)教材P166P166)。 59首都師范大學(xué)信息工程學(xué)院 4、在線編程的具體步驟(假設(shè)用戶要生成假設(shè)用戶要生成user.outuser.out) (引導(dǎo)表的生成)(引導(dǎo)表的生成) 編譯源文件編譯源文件 修改修改CCSCCS軟件配置,在在軟件配置,在在Project/Build OptionsProject/Build Options界面的界面的 Processor VersionProcessor Version中填入中填入- -v548v548,然后點(diǎn)確定,然后點(diǎn)確定,表示生成的匯,表示生成的匯 編代碼專(zhuān)用于具有增強(qiáng)的引導(dǎo)裝載功能的編代碼專(zhuān)用于具有增強(qiáng)的引導(dǎo)裝載功能的DSPDSP。注意:如果不。注意:如果不 加這個(gè)選項(xiàng),用加這個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論