外掛Flash的TMS320VC5409引導(dǎo)裝載設(shè)計(jì)
發(fā)布時(shí)間:2007/8/23 0:00:00 訪問次數(shù):2932
TI的5000系列DSP提供多種引導(dǎo)裝載模式,主要包括HPI引導(dǎo)裝載、串行EEPROM引導(dǎo)裝載、并行引導(dǎo)裝載、串行口引導(dǎo)轉(zhuǎn)載、I/O口引導(dǎo)裝載等,其中使用Flash的并行引導(dǎo)裝載是最常用的一種,使用該種方法可以盡快地開發(fā)出樣機(jī),是加快開發(fā)進(jìn)度的首選。以下將詳細(xì)介紹并行引導(dǎo)裝載的過程,其它引導(dǎo)過程可參考TI公司有關(guān)Bootloader的技術(shù)資料。
1 Bootloader分析
TI公司的DSP芯片出廠時(shí),在片內(nèi)ROM中固化有引導(dǎo)裝載程序Bootloader,其主要功能就是將外部的程序裝載到片內(nèi)RAM中運(yùn)行,以提高系統(tǒng)的運(yùn)行速度。
TMS320VC5409是TI公司的一款定點(diǎn)DSP芯片,其指令周期可達(dá)10ns,片內(nèi)有32K×16位的RAM,性價(jià)比極高,被廣泛應(yīng)用在嵌入式系統(tǒng)、數(shù)據(jù)采集系統(tǒng)中。TMS320VC5409的Bootloacler程序位于片內(nèi)ROM的0F800H~0FBFFH空間。系統(tǒng)上電時(shí),DSP將檢查外部引腳MP/MC的狀態(tài),如果該引腳為高電平,則DSP按微處理器模式啟動;如果該引腳為低電平,則DSP按微計(jì)算機(jī)模式啟動。此時(shí),系統(tǒng)從0FF80H地址處開始執(zhí)行程序,0FF80H是Bootloader的中斷矢量。因此,如果系統(tǒng)上電時(shí)MP/MC的狀態(tài)為低電平,DSP將從FF80H處跳轉(zhuǎn)到F800H開始執(zhí)行TI的Bootloader自動裝載程序。
進(jìn)入Bootloader程序后,首先檢查DSP引腳INT2的狀態(tài),如果為低電平,則進(jìn)入HPI引導(dǎo)裝載模式,如果INT2為高電平則接下來檢查INT3引腳。如果INT3引腳為低電平,則進(jìn)入串行EEPROM引導(dǎo)裝載模式,如果INT3為高電平則進(jìn)入并行引導(dǎo)裝載模式。當(dāng)并行引導(dǎo)裝載模式失敗后,系統(tǒng)會自動進(jìn)入串行口引導(dǎo)裝載模式.串行口引導(dǎo)裝載失敗后,系統(tǒng)又將進(jìn)入I/O口引導(dǎo)裝載模式。
當(dāng)進(jìn)入并行引導(dǎo)裝載模式后,DSl 首先讀取地址為0FFFFH的I/O空間單元,并將該單元的值作為引導(dǎo)表的首地址.在數(shù)據(jù)地址空間中讀取引導(dǎo)表的第一個(gè)字,如果該字的值為10AAH,則進(jìn)入16位引導(dǎo)模式,如果低字節(jié)為08H,則再進(jìn)一步讀取下一個(gè)值,如果該值的低字節(jié)為AAH,則進(jìn)人8位引導(dǎo)模式。如果從I/o地址空間中讀取的引導(dǎo)表首地址所對應(yīng)的引導(dǎo)表中得不到正確的引導(dǎo)信息,那么DSP將會從數(shù)據(jù)空間的0FFFFH地址再去讀一個(gè)字作為引導(dǎo)表首地址,進(jìn)而再從引導(dǎo)表首地址讀取一個(gè)字。如果該字為lOAAH,則立即進(jìn)入l6位引導(dǎo)模式,否則,將按8位方式處理:從0FFFFH讀取一字節(jié)作為引導(dǎo)表首地址的低字節(jié),從0FFFEH讀取一字節(jié)作為引導(dǎo)首地址的高字節(jié),再從引導(dǎo)表首地址讀取一個(gè)值,如果低字節(jié)為08H,則再讀引導(dǎo)表的下一個(gè)值,如果為AAH,則說明外部存儲器是8位寬度,進(jìn)入8位引導(dǎo)裝載模式;如果以上步驟不能獲取正確的引導(dǎo)信息,那么DSP將進(jìn)人串行口引導(dǎo)裝載模式。
如果并行引導(dǎo)裝載成功,DSP將從裝載后新的程序開始地址執(zhí)行程序。詳細(xì)的并行引導(dǎo)流程圖如圖1所示。
2 硬件設(shè)計(jì)
在本系統(tǒng)中,F(xiàn)lash選用的是Atmel公司的AT29LVl024,AT29LVl024容量為64K×16位,可以滿足一般的應(yīng)用要求,并且其工作電壓為3V~3.6V,可以直接與TMS320VC5409接口而不必再使用電壓接口芯片進(jìn)行轉(zhuǎn)接,使硬件電路更為簡單。
從TMS320VC5409的存儲器空間映射得知,在MP/M C=0 時(shí),外部存儲器空間映射的地址范圍為8000H-FFFFH共32K,因此Flash中的程序部分必須位于8000H~FFFFH的地址范圍,才能成功引導(dǎo)。筆者的程序量小于32K×16位,因此可以將Flash的地址線A0-A15直接與DSP的地址線AO~Al5相連,然后將程序燒錄到Flash的32K之后的位置,這樣程序剛好位于DSP的8000H~FFFFH范圍。如果程序量大于32K字,則可將Flash的前32K地址編碼在DSP的8000H~FFFFH范圍.采用分頁的方式,逐步裝載需要運(yùn)行的程序。 本文中,采用從DATA空間引導(dǎo),具體的電路連接如圖2所示。
Flash的地址線AO-A15直接與DSP的低16根地址線A0-A15相連。
Flash的16位數(shù)據(jù)線DO-D15直接接DSP的16位數(shù)據(jù)總線D0-D15。
Flash的寫信號WE直接接高電平(因?yàn)閷lash的編程采用編程器燒錄)。
Flash的片選信號CE直接接低電平或者接DSP的DS引腳。 Flash的讀信號OE接DSP的存儲器讀信號MSTRB。
DSP的MP/MC引腳接低電平。
DSP的INTl-INT3引腳通過上拉電阻接高電平。
3 代碼設(shè)計(jì)和數(shù)據(jù)轉(zhuǎn)換
硬件設(shè)計(jì)完成后,可以編寫一段代碼進(jìn)行測試。
在TI的DSP開發(fā)環(huán)境CCS中建立一個(gè)工程項(xiàng)目test pjt,包括三個(gè)文件:test_main.c、test_vector.asm和load.cmd。它們各自代碼見本刊網(wǎng)站W(wǎng)WW.dpj.com.cn。
需要說明的是,雖然DSP和Flash都是16位的,但是一般的編程器都是按8位從.hex文件中讀取數(shù)據(jù).每讀一個(gè)字節(jié),地址就會增加1,因此連接命令文件中必須將memwidth和romwidth的值設(shè)置為8,否則編程器讀取hex文件時(shí)會出現(xiàn)錯(cuò)誤,這通常是導(dǎo)致引導(dǎo)過程失敗的主要原因。
連接命令編寫完畢后,將test.out文件、連接命令文件load.cmd以及hex500.exe文件拷貝到同一目錄下,在Windows系統(tǒng)命令提示下
TI的5000系列DSP提供多種引導(dǎo)裝載模式,主要包括HPI引導(dǎo)裝載、串行EEPROM引導(dǎo)裝載、并行引導(dǎo)裝載、串行口引導(dǎo)轉(zhuǎn)載、I/O口引導(dǎo)裝載等,其中使用Flash的并行引導(dǎo)裝載是最常用的一種,使用該種方法可以盡快地開發(fā)出樣機(jī),是加快開發(fā)進(jìn)度的首選。以下將詳細(xì)介紹并行引導(dǎo)裝載的過程,其它引導(dǎo)過程可參考TI公司有關(guān)Bootloader的技術(shù)資料。
1 Bootloader分析
TI公司的DSP芯片出廠時(shí),在片內(nèi)ROM中固化有引導(dǎo)裝載程序Bootloader,其主要功能就是將外部的程序裝載到片內(nèi)RAM中運(yùn)行,以提高系統(tǒng)的運(yùn)行速度。
TMS320VC5409是TI公司的一款定點(diǎn)DSP芯片,其指令周期可達(dá)10ns,片內(nèi)有32K×16位的RAM,性價(jià)比極高,被廣泛應(yīng)用在嵌入式系統(tǒng)、數(shù)據(jù)采集系統(tǒng)中。TMS320VC5409的Bootloacler程序位于片內(nèi)ROM的0F800H~0FBFFH空間。系統(tǒng)上電時(shí),DSP將檢查外部引腳MP/MC的狀態(tài),如果該引腳為高電平,則DSP按微處理器模式啟動;如果該引腳為低電平,則DSP按微計(jì)算機(jī)模式啟動。此時(shí),系統(tǒng)從0FF80H地址處開始執(zhí)行程序,0FF80H是Bootloader的中斷矢量。因此,如果系統(tǒng)上電時(shí)MP/MC的狀態(tài)為低電平,DSP將從FF80H處跳轉(zhuǎn)到F800H開始執(zhí)行TI的Bootloader自動裝載程序。
進(jìn)入Bootloader程序后,首先檢查DSP引腳INT2的狀態(tài),如果為低電平,則進(jìn)入HPI引導(dǎo)裝載模式,如果INT2為高電平則接下來檢查INT3引腳。如果INT3引腳為低電平,則進(jìn)入串行EEPROM引導(dǎo)裝載模式,如果INT3為高電平則進(jìn)入并行引導(dǎo)裝載模式。當(dāng)并行引導(dǎo)裝載模式失敗后,系統(tǒng)會自動進(jìn)入串行口引導(dǎo)裝載模式.串行口引導(dǎo)裝載失敗后,系統(tǒng)又將進(jìn)入I/O口引導(dǎo)裝載模式。
當(dāng)進(jìn)入并行引導(dǎo)裝載模式后,DSl 首先讀取地址為0FFFFH的I/O空間單元,并將該單元的值作為引導(dǎo)表的首地址.在數(shù)據(jù)地址空間中讀取引導(dǎo)表的第一個(gè)字,如果該字的值為10AAH,則進(jìn)入16位引導(dǎo)模式,如果低字節(jié)為08H,則再進(jìn)一步讀取下一個(gè)值,如果該值的低字節(jié)為AAH,則進(jìn)人8位引導(dǎo)模式。如果從I/o地址空間中讀取的引導(dǎo)表首地址所對應(yīng)的引導(dǎo)表中得不到正確的引導(dǎo)信息,那么DSP將會從數(shù)據(jù)空間的0FFFFH地址再去讀一個(gè)字作為引導(dǎo)表首地址,進(jìn)而再從引導(dǎo)表首地址讀取一個(gè)字。如果該字為lOAAH,則立即進(jìn)入l6位引導(dǎo)模式,否則,將按8位方式處理:從0FFFFH讀取一字節(jié)作為引導(dǎo)表首地址的低字節(jié),從0FFFEH讀取一字節(jié)作為引導(dǎo)首地址的高字節(jié),再從引導(dǎo)表首地址讀取一個(gè)值,如果低字節(jié)為08H,則再讀引導(dǎo)表的下一個(gè)值,如果為AAH,則說明外部存儲器是8位寬度,進(jìn)入8位引導(dǎo)裝載模式;如果以上步驟不能獲取正確的引導(dǎo)信息,那么DSP將進(jìn)人串行口引導(dǎo)裝載模式。
如果并行引導(dǎo)裝載成功,DSP將從裝載后新的程序開始地址執(zhí)行程序。詳細(xì)的并行引導(dǎo)流程圖如圖1所示。
2 硬件設(shè)計(jì)
在本系統(tǒng)中,F(xiàn)lash選用的是Atmel公司的AT29LVl024,AT29LVl024容量為64K×16位,可以滿足一般的應(yīng)用要求,并且其工作電壓為3V~3.6V,可以直接與TMS320VC5409接口而不必再使用電壓接口芯片進(jìn)行轉(zhuǎn)接,使硬件電路更為簡單。
從TMS320VC5409的存儲器空間映射得知,在MP/M C=0 時(shí),外部存儲器空間映射的地址范圍為8000H-FFFFH共32K,因此Flash中的程序部分必須位于8000H~FFFFH的地址范圍,才能成功引導(dǎo)。筆者的程序量小于32K×16位,因此可以將Flash的地址線A0-A15直接與DSP的地址線AO~Al5相連,然后將程序燒錄到Flash的32K之后的位置,這樣程序剛好位于DSP的8000H~FFFFH范圍。如果程序量大于32K字,則可將Flash的前32K地址編碼在DSP的8000H~FFFFH范圍.采用分頁的方式,逐步裝載需要運(yùn)行的程序。 本文中,采用從DATA空間引導(dǎo),具體的電路連接如圖2所示。
Flash的地址線AO-A15直接與DSP的低16根地址線A0-A15相連。
Flash的16位數(shù)據(jù)線DO-D15直接接DSP的16位數(shù)據(jù)總線D0-D15。
Flash的寫信號WE直接接高電平(因?yàn)閷lash的編程采用編程器燒錄)。
Flash的片選信號CE直接接低電平或者接DSP的DS引腳。 Flash的讀信號OE接DSP的存儲器讀信號MSTRB。
DSP的MP/MC引腳接低電平。
DSP的INTl-INT3引腳通過上拉電阻接高電平。
3 代碼設(shè)計(jì)和數(shù)據(jù)轉(zhuǎn)換
硬件設(shè)計(jì)完成后,可以編寫一段代碼進(jìn)行測試。
在TI的DSP開發(fā)環(huán)境CCS中建立一個(gè)工程項(xiàng)目test pjt,包括三個(gè)文件:test_main.c、test_vector.asm和load.cmd。它們各自代碼見本刊網(wǎng)站W(wǎng)WW.dpj.com.cn。
需要說明的是,雖然DSP和Flash都是16位的,但是一般的編程器都是按8位從.hex文件中讀取數(shù)據(jù).每讀一個(gè)字節(jié),地址就會增加1,因此連接命令文件中必須將memwidth和romwidth的值設(shè)置為8,否則編程器讀取hex文件時(shí)會出現(xiàn)錯(cuò)誤,這通常是導(dǎo)致引導(dǎo)過程失敗的主要原因。
連接命令編寫完畢后,將test.out文件、連接命令文件load.cmd以及hex500.exe文件拷貝到同一目錄下,在Windows系統(tǒng)命令提示下
熱門點(diǎn)擊
- 為音頻設(shè)備提供高性能的低通30kHz貝塞爾濾
- 帶RF輸出的全數(shù)字調(diào)制器設(shè)計(jì)
- DSP基條碼掃描器
- TMS320VC33并行自舉的兩種巧妙實(shí)現(xiàn)方
- 支持以太網(wǎng)寬帶接入的IP機(jī)頂盒解決方案
- 基于ARM的MPEG4視頻解碼器
- 外掛Flash的TMS320VC5409引導(dǎo)
- 基于DSP的雷達(dá)視頻信號數(shù)字采集與檢測
- 基于XC166單片機(jī)的DSP優(yōu)化方法
- VINETIC語音處理器在VoIP解決方案中
推薦技術(shù)資料
- 業(yè)余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究