基于PCI總線的DSP系統(tǒng)應(yīng)用程序的更新
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:當(dāng)需要更新DSP業(yè)務(wù)系統(tǒng)的應(yīng)用軟件時(shí),為了避免利用仿真器所帶來(lái)的不便和硬件損壞,采用了PCI總線技術(shù)來(lái)取代仿真器,完成系統(tǒng)應(yīng)用程序的更新;針對(duì)帶有外圍FLASH的DSP系統(tǒng),設(shè)計(jì)了一整套DSP外圍FLASH啟動(dòng)流程和應(yīng)用程序的PCI更新方法;通過(guò)實(shí)驗(yàn)證明,DSP業(yè)務(wù)系統(tǒng)可以通過(guò)上位機(jī)利用PCI總線完成DSP外圍FLASH的應(yīng)用程序的更新,同時(shí)在DSP上電啟動(dòng)時(shí),也可以根據(jù)上位機(jī)的命令,選擇貯存在FLASH中不同的應(yīng)用程序加載運(yùn)行。
關(guān)鍵詞:DSP業(yè)務(wù)系統(tǒng);PCI;FLASH自舉;二級(jí)引導(dǎo)
在DSP嵌入式業(yè)務(wù)系統(tǒng)設(shè)備中,一般采用片外FLASH自舉方式來(lái)實(shí)現(xiàn)DSP端應(yīng)用程序的加載和啟動(dòng)。當(dāng)DSP業(yè)務(wù)系統(tǒng)需要更新應(yīng)用程序時(shí),則可通過(guò)仿真器連接JTAG口來(lái)控制DSP,完成DSP外圍FLASH的應(yīng)用程序更新。然而,對(duì)于成型、交貨的設(shè)備產(chǎn)品,DSP業(yè)務(wù)系統(tǒng)板上一般不會(huì)留有JTAG口,或在機(jī)箱中很難插拔仿真器;另一方面,對(duì)已交貨產(chǎn)品經(jīng)常插拔仿真器,會(huì)對(duì)硬件設(shè)備有所損傷,使設(shè)備硬件處于非控狀態(tài)。
如果系統(tǒng)設(shè)計(jì)使用了PCI作為系統(tǒng)通信總線,則可以通過(guò)PCI來(lái)完成DSP業(yè)務(wù)系統(tǒng)應(yīng)用程序的更新和加載。本設(shè)計(jì)以TI公司TMS320C6416T(簡(jiǎn)稱C6416)芯片為例,來(lái)說(shuō)明通過(guò)PCI總線來(lái)更新DSP系統(tǒng)應(yīng)用程序的過(guò)程;同時(shí)本文也設(shè)計(jì)了一種C6416的上電啟動(dòng)方式。
1 C6416的PCI特性
1.1 C6416 PCI傳輸機(jī)理
C6416片內(nèi)集成了PCI的控制器,通過(guò)PCI接口C6416可以完成同PCI總線上其他設(shè)備的數(shù)據(jù)交換。圖1描述了C6416的結(jié)構(gòu)框圖。PCI接口通過(guò)EDMA控制寄存器可以訪問(wèn)C6416的片內(nèi)存儲(chǔ)器/Cache,或者通過(guò)EMIF接口訪問(wèn)片外存儲(chǔ)器。
從圖1可看出,PCI和EMIF接口都是通過(guò)EDMA傳輸控制器來(lái)與L2存儲(chǔ)器/Cache聯(lián)系的。EDMA傳輸控制寄存器主要用來(lái)控制L2存儲(chǔ)器和設(shè)備外圍間的數(shù)據(jù)通信,包括傳輸請(qǐng)求隊(duì)列、地址產(chǎn)生器等;而通道控制器是用戶可編程部分,用戶可以設(shè)置相應(yīng)的寄存器,方便的設(shè)置數(shù)據(jù)傳輸方式(一維、二維)、事件觸發(fā)選擇、傳輸通道選擇等。
所有的EDMA傳輸請(qǐng)求可以由L2控制器、HPI/PCI和EDMA通道三種渠道發(fā)出。一個(gè)傳輸請(qǐng)求一旦遞交,將通過(guò)鏈接通道移送到傳輸交叉開(kāi)關(guān)(TC),在這里它將進(jìn)行優(yōu)先級(jí)設(shè)置與處理。請(qǐng)求鏈為請(qǐng)求提供了一個(gè)內(nèi)在的優(yōu)先機(jī)制。假定一個(gè)請(qǐng)求在同一周期中只遞交一次請(qǐng)求,那么靠近TC的首先到達(dá),最遠(yuǎn)的最后到達(dá)。但進(jìn)入TC的請(qǐng)求,則會(huì)進(jìn)入傳輸請(qǐng)求隊(duì)列,按照隊(duì)列優(yōu)先級(jí)進(jìn)行相應(yīng)處理,如圖2所示。
HPI/PCI自動(dòng)產(chǎn)生傳輸請(qǐng)求來(lái)響應(yīng)主機(jī)。這些請(qǐng)求具有Q2優(yōu)先級(jí)且對(duì)用戶是不可見(jiàn)的。HPI/PCI遞交請(qǐng)求來(lái)進(jìn)行固定模式的單一單元讀、寫(xiě)和短數(shù)據(jù)猝發(fā)遞增傳輸操作。
1.2 C6416 PCI操作原理
C6416的PCI操作可以設(shè)置為:
主模式寫(xiě):DSP主設(shè)備通過(guò)PCI接口寫(xiě)數(shù)據(jù)到外部PCI從設(shè)備。
主模式讀:DSP主設(shè)備通過(guò)PCI接口從外部PCI從設(shè)備讀數(shù)據(jù)。
從模式寫(xiě):外部PCI主設(shè)備通過(guò)PCI接口寫(xiě)數(shù)據(jù)到DSP從設(shè)備。
從模式讀:外部PCI主設(shè)備通過(guò)PCI接口從DSP從設(shè)備讀數(shù)據(jù)。
1.2.1 C6416 PCI寄存器
PCI接口有以下3種寄存器:PCI配置寄存器,PCI I/O寄存器和映射在DSP存儲(chǔ)空間的PCI控制狀態(tài)寄存器。前兩類(lèi)寄存器只能被外部主機(jī)訪問(wèn),DSP從機(jī)是不能訪問(wèn)的;而最后一類(lèi)寄存器,DSP從機(jī)是可以訪問(wèn)的,并利用其來(lái)完成PCI通信的控制和操作。
PCI配置寄存器包含標(biāo)準(zhǔn)的PCI配置信息,包括設(shè)備標(biāo)識(shí),供應(yīng)商標(biāo)識(shí),版本等信息,其可以在上電復(fù)位時(shí)自動(dòng)訪問(wèn)E2PROM進(jìn)行加載或上電復(fù)位時(shí)可以通過(guò)默認(rèn)值初始化。
PCI I/O寄存器可以被主機(jī)用來(lái)對(duì)從機(jī)進(jìn)行操作和狀態(tài)監(jiān)控。主機(jī)通過(guò)base2存儲(chǔ)空間來(lái)訪問(wèn)該類(lèi)寄存器。該空間大小為16 B,有三個(gè)寄存器:主機(jī)狀態(tài)寄存器(HSR),主機(jī)-DSP控制寄存器(HDSR)和DSP頁(yè)寄存器(DSPP)。
1.2.2 C6416 PCI存儲(chǔ)器映射
PCI端口通過(guò)3種基址寄存器可以完全訪問(wèn)DSP的存儲(chǔ)器映射。
Base0:4 MB的可預(yù)存取空間,通過(guò)設(shè)置DSP頁(yè)寄存器映射來(lái)對(duì)應(yīng)所有DSP存儲(chǔ)空間,如圖3所示??梢岳斫鉃椋粋€(gè)4 MB大小的存儲(chǔ)窗口,來(lái)遍歷整個(gè)DSP的存儲(chǔ)映射區(qū),而DSP頁(yè)寄存器的值則決定了這個(gè)4 MB存儲(chǔ)窗的起始地址。如圖4所示。
Base1:8 MB的非預(yù)取址映射。其訪問(wèn)起始地址固定,為0x01800000,該存儲(chǔ)空間映射為DSP片內(nèi)寄存器。如圖5所示。
Base2:PCI 16 B I/O寄存器,上已介紹。
上電后PCI主機(jī)將遍歷整個(gè)PCI總線,建立一棵PCI總線樹(shù),然后對(duì)每個(gè)PCI總線樹(shù)上的結(jié)點(diǎn)(設(shè)備)進(jìn)行上述3個(gè)基地址的分配。利用這3個(gè)基地址,PCI主機(jī)即可以訪問(wèn)PCI總線上的從設(shè)備的全部存儲(chǔ)空間。
1.2.3 PCI中斷
如果設(shè)置了PCIIEN對(duì)應(yīng)的中斷使能位,當(dāng)對(duì)應(yīng)的中斷源產(chǎn)生,DSP將進(jìn)入中斷狀態(tài)。所有的中斷事件對(duì)應(yīng)于一個(gè)CPU中斷:DSPINT??梢酝ㄟ^(guò)PCIIS中斷源寄存器來(lái)判斷產(chǎn)生中斷的中斷源。
1.2.4 PCI引導(dǎo)
PCI接口支持從PCI總線引導(dǎo)DSP啟動(dòng)。當(dāng)其他設(shè)備從復(fù)位狀態(tài)喚醒后,CPU被復(fù)位。在此期間,PCI主機(jī)可以盡可能的通過(guò)PCI初始化DSP內(nèi)存。當(dāng)PCI主機(jī)完成所需要的初始化工作,則向I/O寄存器HDCR.DSPINT位寫(xiě)1,使DSP核退出復(fù)位。DSP則從地址0處開(kāi)始運(yùn)行。值得注意是的是,當(dāng)C6416使用PCI引導(dǎo)方式時(shí),需要通過(guò)硬件設(shè)置來(lái)配置DSP上電邏輯選擇PCI引導(dǎo)模式。
2 利用PCI總線來(lái)更新系統(tǒng)軟件的設(shè)計(jì)
2.1 應(yīng)用程序的數(shù)據(jù)格式生成
通過(guò)DSP的開(kāi)發(fā)平臺(tái)CCS,可以把編寫(xiě)的應(yīng)用程序編譯、鏈接成.out文件。該文件包含了應(yīng)用程序的各個(gè)段的數(shù)據(jù),如text段,cinit段,const段,switch段等。這些段是CCS的編譯器把所寫(xiě)的C語(yǔ)言編譯成匯編語(yǔ)言,然后生成COFF目標(biāo)文件,再鏈接實(shí)時(shí)動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)生成DSP核可執(zhí)行的COFF文件,提供給C6416使用。但是該文件不可直接被FLASH識(shí)別,同時(shí)也不可被C語(yǔ)言所識(shí)別。
CCS提供了一個(gè)實(shí)用工具h(yuǎn)ex6x.exe來(lái)完成.out文件的轉(zhuǎn)換。該工具可以把.out文件的COFF數(shù)據(jù)格式轉(zhuǎn)換成16進(jìn)制的ASCII碼數(shù)據(jù)格式文件.hex。然后利用TI公司提供的hex2aray.exe工具,把生成的.hex文件轉(zhuǎn)換成C語(yǔ)言能夠識(shí)別的數(shù)據(jù)數(shù)組格式文件.h。
hex6x.exe工具的使用可以直接在Windows的cmd中調(diào)用命令。如下:
hex6x-a-o firm.hex filename.out
也可以創(chuàng)建一個(gè)命令文件來(lái)存放命令行操作和輸入、輸出文件命,以被hex6x.exe所調(diào)用。
filenamc.out
-a
-o firm.hex
生成的.hex文件都是以ASCII格式所保存。利用hex2aray.exe工具則可以完成ASCII碼到16進(jìn)制數(shù)據(jù)的轉(zhuǎn)換。利用該工具生成的.h文件把所有數(shù)據(jù)段的數(shù)據(jù)順次存放在一個(gè)數(shù)組中,這樣則可以被C語(yǔ)言所訪問(wèn)。
本設(shè)計(jì)中在CCS生成.out的文件夾中,加入了上述兩個(gè)工具,然后創(chuàng)建了一個(gè)命令文件c6416_test.cmd,來(lái)輸入hex6x.exe.所需要的命令行;創(chuàng)建了一個(gè)批處理文件c6416_test.bat,來(lái)綜合調(diào)用兩個(gè)工具,代碼如下:
hex6x c6416_test.cmd
hex2aray-i c6416_test.hex-o c6416_test.h
2.2 PCI上電直接加載應(yīng)用程序到DSP存儲(chǔ)空間
對(duì)于PCI總線上的從DSP設(shè)備,如果沒(méi)有片內(nèi)或片外FLASH,則PCI主機(jī)在上電時(shí)可以直接把從DSP設(shè)備的應(yīng)用程序數(shù)據(jù)寫(xiě)到DSP的片內(nèi)RAM或片外RAM,然后指定DSP PC指針運(yùn)行的起始地址。而從DSP設(shè)備應(yīng)用程序的數(shù)據(jù)應(yīng)當(dāng)存放在PCI主機(jī)的系統(tǒng)存儲(chǔ)設(shè)備中(如片外FLASH,電子盤(pán)等)。
首先通過(guò)調(diào)試編譯DSP的應(yīng)用程序,完成所有功能需求,生成C6416可執(zhí)行的.out文件;然后利用上述工具,生成.out文件所對(duì)應(yīng)的.h文件,該文件中數(shù)組的內(nèi)容,則是應(yīng)用程序的二進(jìn)制代碼數(shù)據(jù);接著通過(guò)硬件管腳電平控制,來(lái)使DSP處于PCI引導(dǎo)方式,并利用DSPPCI從寫(xiě)模式,在系統(tǒng)上電后,主機(jī)把.h中的數(shù)據(jù)傳輸?shù)街付ǖ腃6416程序存儲(chǔ)空間;最后向I/O寄存器HDCR.DSPINT位寫(xiě)1,使DSP核退出復(fù)位,C6416則從0地址開(kāi)始運(yùn)行。
上述流程中有一個(gè)關(guān)鍵問(wèn)題,就是在進(jìn)行PCI數(shù)據(jù)傳輸時(shí),存放數(shù)據(jù)的地址如何確定。這些地址表示的是應(yīng)用程序各個(gè)數(shù)據(jù)段、代碼段在C6416中運(yùn)行時(shí)所存放的位置,其由應(yīng)用程序中的.cmd文件指明。在應(yīng)用程序.out生成后,可以查看.map文件來(lái)清楚的獲知各個(gè)段的存放地址??梢杂茫甿ap文件來(lái)明確主機(jī)PCI數(shù)據(jù)發(fā)送的具體地址,手動(dòng)輸入各個(gè)段存放的起始地址。然而,此方法主要用于程序調(diào)試和測(cè)試,當(dāng)應(yīng)用程序發(fā)生變化,主機(jī)的PCI傳輸程序也需要變化;此外如果使用了DSP/BIOS,.out文件會(huì)包含很多的代碼段、數(shù)據(jù)段,手動(dòng)輸入將是一個(gè)很繁瑣的工作。hex6x.exe工具有一個(gè)命令-boot,利用該命令生成的數(shù)據(jù)包含了系統(tǒng)程序的入口地址c_int00和各個(gè)段的起始地址、段的長(zhǎng)度。利用這些信息,可以很方便的使用程序把各個(gè)段的數(shù)據(jù)寫(xiě)入到指定的C6416存儲(chǔ)空間中,避免了繁瑣的手動(dòng)輸入操作。由于當(dāng)DSP退出復(fù)位后,PC指針是從0地址開(kāi)始運(yùn)行,如果數(shù)據(jù)段和代碼段是存放在片外RAM時(shí),則需要在0地址存放一段指針跳轉(zhuǎn)語(yǔ)句,使PC指針跳轉(zhuǎn)到片
外RAM,繼續(xù)運(yùn)行。
2.3 利用PCI總線完成從DSP設(shè)備外圍FLASH應(yīng)用程序的更新
更多的嵌入式設(shè)備中,從DSP設(shè)備都接有外圍的FLASH等ROM設(shè)備,用來(lái)存放DSP運(yùn)行的應(yīng)用程序。這樣一方面可以減少PCI主機(jī)存儲(chǔ)空間的壓力,同時(shí)可以提高從機(jī)的啟動(dòng)速度。
2.3.1 C6416的FLASH啟動(dòng)方式
C6416的啟動(dòng)方式是由硬件邏輯來(lái)決定,通過(guò)EMIFB地址總線上的BEA[19:18]兩個(gè)管腳的上拉、下拉來(lái)決定引導(dǎo)配置。[0,1]:主機(jī)引導(dǎo)(HPI或PCI);[1,0]:EMIFB 8bit寬FLASH引導(dǎo)。
當(dāng)選擇FLASH啟動(dòng)時(shí),C6416的引導(dǎo)邏輯決定了,從FLASH的0地址開(kāi)始,將會(huì)拷貝1 KB的數(shù)據(jù)到C6416片內(nèi)RAM的0~1KB位置,然后C6416的PC指針將從片內(nèi)RAM的0地址開(kāi)始運(yùn)行。那么對(duì)于所要啟動(dòng)的應(yīng)用程序的大小一般都是大于1 KB,因此可以利用二級(jí)引導(dǎo)來(lái)完成C6416的程序加載。所謂二級(jí)引導(dǎo),是指在應(yīng)用程序的工程中,寫(xiě)一段bootload程序,該程序主要完成EMIF接口的配置,和應(yīng)用程序從FLASH向C6416存儲(chǔ)器搬移的工作。程序應(yīng)當(dāng)利用.cmd文件,來(lái)為bootload代碼分配存儲(chǔ)空間,其空間地址范圍應(yīng)該是0~1 KB。同時(shí)燒寫(xiě)bootload到FLASH時(shí),應(yīng)當(dāng)燒寫(xiě)到0~1 KB的空間范圍內(nèi)。當(dāng)系統(tǒng)上電,F(xiàn)LASH中的0~1 KB數(shù)據(jù)自動(dòng)搬移到C6416片內(nèi)RAM 0~1 KB,然后PC指針從0開(kāi)始運(yùn)行,此時(shí)EMIFA和EMIFB將被配置,允許C6416可以訪問(wèn)片外RAM和片外FLASH;然后完成從FLASH到存儲(chǔ)器(片內(nèi)或片外RAM)的代碼段、數(shù)據(jù)段數(shù)據(jù)搬移;最后設(shè)置PC指針跳轉(zhuǎn)到應(yīng)用程序的入口地址c_int00來(lái)初始化C語(yǔ)言環(huán)境,從而開(kāi)始運(yùn)行應(yīng)用程序。Bootload程序應(yīng)該用匯編來(lái)完成,因?yàn)樗窃贑語(yǔ)言環(huán)境初始化之前被執(zhí)行,此時(shí)C6416是不識(shí)別C語(yǔ)言的語(yǔ)言符號(hào)的。
2.3.2 C6416從機(jī)的啟動(dòng)模式設(shè)計(jì)
編寫(xiě)一個(gè)C6416的程序,該程序完成FLASH到片外SDRAM的數(shù)據(jù)拷貝。而拷貝的數(shù)據(jù)則是C6416具體要完成的業(yè)務(wù)任務(wù)。同時(shí)該程序包含了Bootload程序,用來(lái)完成上電后的1 KB FLASH數(shù)據(jù)搬移。見(jiàn)圖6。
第一步:當(dāng)C6416上電后,首先自動(dòng)完成A搬移操作,“Bootload程序”將被搬移到C6416片內(nèi)RAM的0起始地址,后開(kāi)始運(yùn)行該段代碼,該段代碼是利用匯編語(yǔ)言編寫(xiě),其在C語(yǔ)言庫(kù)初始化前被執(zhí)行;
第二步:“Bootload程序”的運(yùn)行將會(huì)配置C6416的EMIF寄存器,使能片外SDRAM,同時(shí)使B搬移操作完成:“程序選擇搬移代碼”將被搬移到C6416片內(nèi)RAM,并從程序入口地址開(kāi)始執(zhí)行該代碼段;
第三步:“程序選擇搬移代碼”的執(zhí)行將對(duì)業(yè)務(wù)代碼進(jìn)行選擇,查看需要加載“業(yè)務(wù)代碼1”還是“業(yè)務(wù)代碼2”,把選擇的業(yè)務(wù)代碼搬移到片外SDRAM中,完成C搬移操作或D搬移操作,然后從程序入口地址開(kāi)運(yùn)行,從而被選中的業(yè)務(wù)代碼將被執(zhí)行。
其中“程序選擇搬移代碼”是一段由C語(yǔ)言編寫(xiě)的C6416啟動(dòng)輔助代碼。該段代碼主要完成了業(yè)務(wù)代碼的選擇和搬移工作。應(yīng)用用戶可以在C6416片外FLASH中存放多個(gè)業(yè)務(wù)代碼,通過(guò)串口、PCI總線等接口向C6416發(fā)送業(yè)務(wù)代碼選擇命令,在“程序選擇轉(zhuǎn)移代碼”中,對(duì)該命令進(jìn)行分析,根據(jù)協(xié)議選擇所指定的業(yè)務(wù)代碼。當(dāng)選擇了所需的業(yè)務(wù)代碼,就需要完成代碼的FLASH到C6416存儲(chǔ)器的搬移。由于業(yè)務(wù)代碼是利用上述的hex6x.exe和hex2aray.exe工具所生成的16進(jìn)制數(shù)據(jù),其包含了業(yè)務(wù)代碼各個(gè)段的起始地址、段長(zhǎng)和段數(shù)據(jù),因此需要利用“程序選擇搬移代碼”來(lái)完成業(yè)務(wù)代碼的解析,并把各個(gè)段從FLASH搬移到指定的C6416存儲(chǔ)空間中。最后把程序指針指定到程序的入口地址,即可運(yùn)行業(yè)務(wù)代碼。該啟動(dòng)方式的設(shè)計(jì)有助于在實(shí)際應(yīng)用中針對(duì)不同的設(shè)備和需求選擇不同的業(yè)務(wù)應(yīng)用代碼,同時(shí)也有助于FLASH中的業(yè)務(wù)代碼的更新。
2.3.3 利用PCI總線更新FLASH中的業(yè)務(wù)代碼
當(dāng)成型的設(shè)備需要對(duì)固化在DSP外圍FLASH中的業(yè)務(wù)代碼進(jìn)行更新時(shí),應(yīng)該在DSP上運(yùn)行FLASH燒寫(xiě)程序,把業(yè)務(wù)代碼燒寫(xiě)到FLASH中。本設(shè)計(jì)利用PCI啟動(dòng)方式,通過(guò)上位機(jī)來(lái)啟動(dòng)C6416運(yùn)行FLASH燒寫(xiě)程序,完成業(yè)務(wù)代碼的FLASH燒寫(xiě)。利用上述的C6416從機(jī)啟動(dòng)模式,可以很容易的發(fā)現(xiàn),當(dāng)需要完成FLASH軟件更新時(shí),只需要更新“業(yè)務(wù)代碼”即可,而“Bootload”和“程序選擇搬移代碼”不需要變更。如此業(yè)務(wù)代碼更新就很方便,因?yàn)槠渲恍枰紤]程序應(yīng)用上的變換,而不需要過(guò)多的考慮程序代碼、數(shù)據(jù)段地址分配的問(wèn)題,更不需要考慮C6416特有的僅1 KB數(shù)據(jù)上電自動(dòng)搬移所帶來(lái)的麻煩。具體步驟如圖7所示。
第一步:根據(jù)C6416外圍所選的FLASH特性,來(lái)編寫(xiě)其代碼燒寫(xiě)程序。在該程序中把需要更新的業(yè)務(wù)代碼作為常量數(shù)據(jù)包含到工程中的eonst段中。
第二步:利用hex6x.exe和hex2aray.exe工具來(lái)將FLASH燒寫(xiě)程序轉(zhuǎn)換成C語(yǔ)言可以識(shí)別的16進(jìn)制數(shù)組數(shù)據(jù);
第三步:選擇C6416為PCI主機(jī)啟動(dòng)模式,主機(jī)利用PCI總線將轉(zhuǎn)換為16進(jìn)制的燒寫(xiě)程序數(shù)據(jù)搬移到C6416片內(nèi)存儲(chǔ)器;
第四步:主機(jī)把C6416 I/O空間寄存器HDCR.DSPINT位置1,使C6416退出復(fù)位,開(kāi)始運(yùn)行。
當(dāng)C6416運(yùn)行了燒寫(xiě)程序,便把const段中的待更新業(yè)務(wù)軟件數(shù)據(jù)燒寫(xiě)到FLASH指定的地址上。如此便完成了FLASH的業(yè)務(wù)軟件的更新。
3 結(jié)語(yǔ)
本文介紹的利用PCI總線更新DSP業(yè)務(wù)系統(tǒng)應(yīng)用程序的設(shè)計(jì),完全擺脫了JTAG口的制約,利用具有高速數(shù)據(jù)通信特性的PCI總線,針對(duì)包含外圍FLASH和不包含外圍FLASH的DSP業(yè)務(wù)系統(tǒng),實(shí)現(xiàn)了應(yīng)用程序的更新。
特別對(duì)于含有外圍FLASH的DSP業(yè)務(wù)系統(tǒng),本文設(shè)計(jì)的DSP啟動(dòng)方式和FLASH應(yīng)用程序更新流程,能高效地完成應(yīng)用程序的更新,同時(shí)實(shí)現(xiàn)了DSP啟動(dòng)時(shí)應(yīng)用程序加載的選擇。