當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀]主要介紹一種利用Flash存儲(chǔ)器實(shí)現(xiàn)雙DSP系統(tǒng)對(duì)多份用戶代碼有選擇的上電加載的方法。

   摘要:主要介紹一種利用Flash存儲(chǔ)器實(shí)現(xiàn)雙DSP系統(tǒng)對(duì)多份用戶代碼有選擇的上電加載的方法。其中,重點(diǎn)介紹M29W800AB Flash的使用和編程方法,TMS320VC54X DSP的上電自動(dòng)引導(dǎo)過(guò)程,以及HPI模式和并行模式加載用戶代碼的方法。

    關(guān)鍵詞:Flash存儲(chǔ)器 DSP 主機(jī)接口 Bootloader 引導(dǎo)表

引 言

  在TMS320C54X系列DSP系統(tǒng)的開發(fā)中,由于DSP片內(nèi)只有ROM和RAM存儲(chǔ)器,如要將用戶代碼寫入ROM中,必須要由DSP芯片廠家來(lái)完成;但這樣做用戶就不能再更改代碼,很不實(shí)用。由于RAM在DSP掉電后不能再保存數(shù)據(jù),因此,常常利用EPROM、Flash等一些外部存儲(chǔ)器來(lái)存放用戶代碼。在DSP上電工作后,利用DSP提供的boot機(jī)制,再將程序下載到DSP RAM中運(yùn)行。如果使用EPROM外部存儲(chǔ)器存放用戶代碼,需要用代碼轉(zhuǎn)換工具將用戶代碼轉(zhuǎn)換為二進(jìn)制目標(biāo)文件,然后用編程器將其燒寫進(jìn)EPROM;而如果使用Flash存儲(chǔ)器存放用戶代碼,則可直接使用DSP仿真器和CCS(Code Composer Studio )仿真環(huán)境進(jìn)行在線編程,使用靈活方便,不再需要其它編程設(shè)備。在某一以太網(wǎng)通信系統(tǒng)中,我們就采用Flash存儲(chǔ)器來(lái)實(shí)現(xiàn)多份用戶代碼的有選擇加載。下面就以此系統(tǒng)為例介紹對(duì)TMS320VC54X DSP的一種用戶代碼加載的方法。

1 系統(tǒng)構(gòu)架

??此通信系統(tǒng)基于802.3以太網(wǎng)標(biāo)準(zhǔn),用以實(shí)現(xiàn)各終端之間的話音和其它數(shù)據(jù)的通信,以及實(shí)現(xiàn)局域網(wǎng)內(nèi)終端與外界的話音和數(shù)據(jù)通信。為節(jié)約開發(fā)成本,提高系統(tǒng)的可擴(kuò)展性、通用性和靈活性,我們對(duì)每個(gè)網(wǎng)內(nèi)終端采用同樣的硬件架構(gòu),通過(guò)使用不同的軟件代碼而使其實(shí)現(xiàn)不同的功能,發(fā)揮不同的作用。

??每一通信終端由2塊DSP芯片、1塊網(wǎng)卡、1塊CPLD和1塊FPGA以及Flash存儲(chǔ)器等器件組成可擴(kuò)展的基本結(jié)構(gòu)。其中,以TMS320VC5410 DSP作為主CPU,負(fù)責(zé)系統(tǒng)的邏輯控制和一般數(shù)據(jù)傳輸;以MS320VC5416 DSP作為從CPU,負(fù)責(zé)話音的編解碼和回聲消除、語(yǔ)音檢測(cè)等工作。2塊DSP之間通過(guò)主機(jī)接口(HPI)進(jìn)行通信。為了實(shí)現(xiàn)代碼的有選擇下載,可由FPGA配置一端口作為撥碼開關(guān),使用戶通過(guò)調(diào)節(jié)撥碼開關(guān),可以有選擇地下載存儲(chǔ)于Flash中的用戶代碼,其結(jié)構(gòu)如圖1所示。

??配置撥碼開關(guān)是為了擴(kuò)充系統(tǒng)的功能,以實(shí)現(xiàn)一個(gè)硬件平臺(tái)的多種用途。我們可以將實(shí)現(xiàn)不同功能的多份用戶代碼都寫入Flash存儲(chǔ)器中存放,通過(guò)硬件撥碼開關(guān)的設(shè)置,選擇其中一份用戶代碼下載執(zhí)行。在系統(tǒng)上電加載用戶代碼時(shí),系統(tǒng)先從Flash下載FPGA配置程序,然后通過(guò)FPGA讀出撥碼開關(guān)的值,再根據(jù)此值從Flash中選擇對(duì)應(yīng)的5410 DSP用戶代碼加載;而5416 DSP的用戶代碼加載是在5410代碼加載完成,啟動(dòng)運(yùn)行后由5410程序從Flash中讀出相應(yīng)的5416代碼,再通過(guò)HPI加載到5416的,以此實(shí)現(xiàn)5416 DSP的代碼加載與啟動(dòng)。

2 M29W800AB Flash存儲(chǔ)器介紹及使用

??在此系統(tǒng)中,我們選用的是M29W800AB Flash存儲(chǔ)器,其容量為512K×16位, 分為16頁(yè),每頁(yè)32K。其中,第0頁(yè)有4個(gè)模塊:0x00~0x1fff、0x2000~0x2fff、0x3000~0x3fff、0x4000~0x7fff。其余各頁(yè),每頁(yè)為1個(gè)模塊,共有19個(gè)模塊。

??對(duì)Flash的操作要靠寫入一系列特定的地址和數(shù)據(jù)序列來(lái)完成。在每次對(duì)Flash寫入之前,要對(duì)其原來(lái)的內(nèi)容進(jìn)行擦除。Flash的擦除包括塊擦除和芯片擦除兩種。塊擦除是對(duì)一個(gè)模塊進(jìn)行擦除,芯片擦除是擦除整個(gè)Flash的內(nèi)容。因此,對(duì)Flash的操作,是以模塊為基本單元的。對(duì)Flash的操作由指令決定,其必須滿足Flash的時(shí)序要求,每條指令需要1~6個(gè)不等的指令周期。主要操作指令包括讀數(shù)據(jù)指令、編程指令、復(fù)位指令、自動(dòng)選擇指令和擦除指令。每個(gè)指令周期由一個(gè)命令構(gòu)成,每個(gè)命令代碼所執(zhí)行的任務(wù)如表1所列。

表1 Flash的命令說(shuō)明

HEX代碼 命    令
00h 有效/保留
10h 芯片擦除確認(rèn)
20h 保留
30h 模塊擦除繼續(xù)/確認(rèn)
80h 建立擦除
90h 讀電平信號(hào)/模塊保護(hù)狀態(tài)
A0h 編程
B0h 擦除中止
F0h 讀陣列/復(fù)位

??下面以M29W800AB Flash的塊擦除指令為例,具體說(shuō)明Flash的操作時(shí)序:塊擦除指令需要6個(gè)總線周期,先以2個(gè)解鎖周期開始,然后是1個(gè)擦除建立周期,接下來(lái)又是2個(gè)解鎖周期,最后是1個(gè)擦除確認(rèn)周期,其指令時(shí)序如表2所列。

表2 Flash擦除指令說(shuō)明

周期 第1周期 第2周期 第3周期 第4周期 第5周期 第6周期
地址 5555h 2AAAh 5555h 5555h 2AAAh 模塊地址
數(shù)據(jù) AAh 55h 80h AAh 55h 30h

??其C語(yǔ)言程序設(shè)計(jì)代碼如下:

#define flash ((volatile unsigned int*)0x8000)

Block_Erase(ADDR){

flash[0x5555] = 0x00AA;

wait(1000);

flash[0x2AAA] = 0x0055;

wait(1000);

flash[0x5555] = 0x0080;

wait(1000);

flash[0x5555] = 0x00AA;

wait(1000);

flash[0x2AAA] = 0x0055;

wait(1000);

flash[ADDR] = 0x0030;

}

??需要注意的是,F(xiàn)lash相對(duì)于DSP來(lái)說(shuō)是慢速設(shè)備,編程時(shí),對(duì)Flash的訪問(wèn)需要有足夠的延時(shí)等待。對(duì)其它指令這里就不一一介紹了。要了解更多內(nèi)容,可參考具體的Flash存儲(chǔ)器手冊(cè)。

3 引導(dǎo)裝載

??TMS320VC5410和TMS320VC5416片內(nèi)ROM中固化有TI公司的引導(dǎo)裝載(Bootloader)程序,用于在上電復(fù)位時(shí)把用戶代碼從外部存儲(chǔ)器引導(dǎo)到片內(nèi)RAM中運(yùn)行。引導(dǎo)程序是在一些片內(nèi)固化的一個(gè)程序,它負(fù)責(zé)上電時(shí)初始化存儲(chǔ)器。換句話說(shuō),它將程序從非易失性存儲(chǔ)器(如Flash存儲(chǔ)器)中調(diào)入系統(tǒng)的存儲(chǔ)器中。其提供的片內(nèi)引導(dǎo)模式有: HPI(主機(jī)接口)引導(dǎo)、并行EPROM引導(dǎo)、并行I/O引導(dǎo)和串行口引導(dǎo)等。下面先介紹這兩塊芯片的上電引導(dǎo)過(guò)程。

??DSP上電復(fù)位后,先檢測(cè)其MP/MC引腳,如果MP/MC=“0”,表示使用片內(nèi)ROM引導(dǎo)。此時(shí),DSP從0xFF80處開始執(zhí)行TI的片內(nèi)引導(dǎo)程序。進(jìn)入引導(dǎo)程序后,HINT引腳變?yōu)榈碗娖?,然后開始檢測(cè)INT2是否為低電平(有效)。如有效,則進(jìn)入HPI引導(dǎo)方式;否則,檢測(cè)INT3引腳。如有INT3請(qǐng)求中斷,則進(jìn)入串行引導(dǎo)方式;否則,就進(jìn)入并行引導(dǎo)方式。在本系統(tǒng)中,我們采用TI公司提供的Bootlooder程序進(jìn)行引導(dǎo)裝載,為此,應(yīng)將MP/MC引腳接低電平。引導(dǎo)程序流程如圖2所示。

    3.1 HPI模式實(shí)現(xiàn)TMS320VC5416的程序加載

??按以上設(shè)計(jì),5416DSP的程序加載采用HPI(主機(jī)接口)模式。對(duì)于HPI引導(dǎo)模式,必須將HINT和INT2引腳連接在一起,以保證Bootloader程序能檢測(cè)到INT2有效。當(dāng)檢測(cè)其為低電平時(shí),進(jìn)入HPI引導(dǎo)方式。主處理器5410啟動(dòng)運(yùn)行后,5410程序從Flash中下載5416程序,通過(guò)5410與5416之間的HPI寫入5416 RAM。在將程序?qū)懭?416時(shí),要按照5416程序的cmd文件配置,將從Flash中讀出的代碼寫入5416程序空間的代碼段。寫完代碼后,還應(yīng)將5416代碼的起始地址寫入5416的0x7f單元,將0寫入0x7e單元,起始地址可在CCS仿真環(huán)境中編譯5416代碼后看出,此時(shí)PC所指向的位置就是代碼的起始地址。這是因?yàn)椋?dāng)5416進(jìn)入HPI引導(dǎo)方式后,Boodloader程序開始檢測(cè)0x7f單元的內(nèi)容(0x7e和0x7f兩單元內(nèi)容在Boodloader程序開始執(zhí)行時(shí)就清零)。當(dāng)檢測(cè)到其內(nèi)容不為零時(shí),即將0x7e的內(nèi)容賦給XPC,將0x7f的內(nèi)容賦給PC,程序跳轉(zhuǎn)到PC所指向位置執(zhí)行用戶代碼。這樣就實(shí)現(xiàn)了從片5416的程序加載啟動(dòng)。圖3是HPI模式加載用戶代碼的流程。

    3.2 并行加載模式實(shí)現(xiàn)TMS320VC5410的程序加載

??5410主處理器的用戶代碼加載采用并行模式加載。在本系統(tǒng)中,有多份5410用戶代碼存儲(chǔ)于Flash中。系統(tǒng)上電后,先要從Flash中下載FPGA配置代碼,然后讀出撥碼開關(guān)的值,再選擇相應(yīng)的用戶代碼下載,完成后,跳轉(zhuǎn)到用戶代碼的入口地址開始執(zhí)行用戶代碼。為此,需要設(shè)計(jì)一啟動(dòng)程序以實(shí)現(xiàn)以上功能。啟動(dòng)程序的內(nèi)容包括下載FPGA配置代碼,讀拔碼開關(guān)值,并根據(jù)此值選擇下載相應(yīng)的5410用戶代碼到其cmd文件配置的相應(yīng)程序空間。完成后,跳轉(zhuǎn)到用戶代碼起始地址。代碼的起始地址通過(guò)CCS仿真環(huán)境編譯后獲得,啟動(dòng)程序的下載運(yùn)行,則要依靠TI的片內(nèi)引導(dǎo)程序,采用16位并行模式引導(dǎo)加載,需要構(gòu)建引導(dǎo)表。所謂引導(dǎo)表就是引導(dǎo)程序要調(diào)入的代碼。引導(dǎo)表中除了包括源代碼之外,還包含一些附加信息。這些信息指導(dǎo)引導(dǎo)程序的具體執(zhí)行過(guò)程。因此,可以說(shuō)引導(dǎo)表是由程序代碼和一些附加信息組成的一種數(shù)據(jù)結(jié)構(gòu)。在這里,我們需要用啟動(dòng)程序構(gòu)建引導(dǎo)表,并將引導(dǎo)表也寫入Flash中。

??在此系統(tǒng)中,F(xiàn)lash存儲(chǔ)器映射為DSP的0x8000~0xffff數(shù)據(jù)空間。對(duì)Flash操作時(shí),首先要選擇頁(yè),每一頁(yè)都對(duì)應(yīng)為DSP的0x8000~0xffff地址的數(shù)據(jù)空間。需要注意:除了將引導(dǎo)表寫入Flash外,還應(yīng)將引導(dǎo)表的起始地址(對(duì)于DSP處理器而言的地址,如果在Flash中為0,則對(duì)DSP即為0x8000)寫入Flash第一頁(yè)的最后一個(gè)單元(0x7fff單元),即DSP存儲(chǔ)空間的0xFFFFh單元。

??引導(dǎo)程序進(jìn)入并行加載模式后,將查詢數(shù)據(jù)空間的0xFFFFh單元,直到讀入一個(gè)有效的地址數(shù)據(jù)。此數(shù)據(jù)為用戶引導(dǎo)表的入口地址。這時(shí),引導(dǎo)程序就跳轉(zhuǎn)到Flash中的用戶引導(dǎo)表開始執(zhí)行。需要注意的是,對(duì)于不同型號(hào)和廠家的Flash,其引導(dǎo)表的格式和內(nèi)容是不同的。下面就M29W800AB Flash引導(dǎo)表的格式及我們所配置的內(nèi)容說(shuō)明如下:

10AAh(16位模式)
7fff(SWWSR寄存器值)
8000h(BSCR寄存器值)
0h(啟動(dòng)程序運(yùn)行的XPC值)
d08h(啟動(dòng)程序運(yùn)行起始的PC值)
22f8h(啟動(dòng)程序的長(zhǎng)度)
0h(啟動(dòng)程序裝載的起始地址XPC)
d08h(啟動(dòng)程序裝載起始地址PC)
啟動(dòng)程序代碼…
連接8個(gè)單元的0h(表示引導(dǎo)表結(jié)束)

??程序根據(jù)引導(dǎo)表的內(nèi)容將用戶代碼下載到指定的程序空間中,并將指定的程序入口地址值賦給PC,使程序從此處開始執(zhí)行,從而完成5410 DSP的引導(dǎo)啟動(dòng)。并行引導(dǎo)流程如圖4所示。

??在系統(tǒng)的實(shí)際調(diào)試過(guò)程中,通過(guò)HPI加載5416代碼時(shí),要注意5410和5416的時(shí)鐘要匹配。一般來(lái)說(shuō),要求從片時(shí)鐘為主片時(shí)鐘的1.25倍以上。在此系統(tǒng)中,系統(tǒng)基準(zhǔn)時(shí)鐘為8MHz,5410啟動(dòng)時(shí)鐘設(shè)為8MHz,5416設(shè)為10倍頻80MHz。

??本系統(tǒng)最大的優(yōu)點(diǎn)是實(shí)現(xiàn)了一機(jī)多用,擴(kuò)展了系統(tǒng)的功能,增強(qiáng)了系統(tǒng)的靈活性和通用性,在實(shí)際應(yīng)用中已取得了良好的效果。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉