基于PCI總線(xiàn)的DSP系統應用程序的更新
2.3.2 C6416從機的啟動(dòng)模式設計
編寫(xiě)一個(gè)C6416的程序,該程序完成FLASH到片外SDRAM的數據拷貝。而拷貝的數據則是C6416具體要完成的業(yè)務(wù)任務(wù)。同時(shí)該程序包含了Bootload程序,用來(lái)完成上電后的1 KB FLASH數據搬移。見(jiàn)圖6。本文引用地址:http://dyxdggzs.com/article/148014.htm
第一步:當C6416上電后,首先自動(dòng)完成A搬移操作,“Bootload程序”將被搬移到C6416片內RAM的0起始地址,后開(kāi)始運行該段代碼,該段代碼是利用匯編語(yǔ)言編寫(xiě),其在C語(yǔ)言庫初始化前被執行;
第二步:“Bootload程序”的運行將會(huì )配置C6416的EMIF寄存器,使能片外SDRAM,同時(shí)使B搬移操作完成:“程序選擇搬移代碼”將被搬移到C6416片內RAM,并從程序入口地址開(kāi)始執行該代碼段;
第三步:“程序選擇搬移代碼”的執行將對業(yè)務(wù)代碼進(jìn)行選擇,查看需要加載“業(yè)務(wù)代碼1”還是“業(yè)務(wù)代碼2”,把選擇的業(yè)務(wù)代碼搬移到片外SDRAM中,完成C搬移操作或D搬移操作,然后從程序入口地址開(kāi)運行,從而被選中的業(yè)務(wù)代碼將被執行。
其中“程序選擇搬移代碼”是一段由C語(yǔ)言編寫(xiě)的C6416啟動(dòng)輔助代碼。該段代碼主要完成了業(yè)務(wù)代碼的選擇和搬移工作。應用用戶(hù)可以在C6416片外FLASH中存放多個(gè)業(yè)務(wù)代碼,通過(guò)串口、PCI總線(xiàn)等接口向C6416發(fā)送業(yè)務(wù)代碼選擇命令,在“程序選擇轉移代碼”中,對該命令進(jìn)行分析,根據協(xié)議選擇所指定的業(yè)務(wù)代碼。當選擇了所需的業(yè)務(wù)代碼,就需要完成代碼的FLASH到C6416存儲器的搬移。由于業(yè)務(wù)代碼是利用上述的hex6x.exe和hex2aray.exe工具所生成的16進(jìn)制數據,其包含了業(yè)務(wù)代碼各個(gè)段的起始地址、段長(cháng)和段數據,因此需要利用“程序選擇搬移代碼”來(lái)完成業(yè)務(wù)代碼的解析,并把各個(gè)段從FLASH搬移到指定的C6416存儲空間中。最后把程序指針指定到程序的入口地址,即可運行業(yè)務(wù)代碼。該啟動(dòng)方式的設計有助于在實(shí)際應用中針對不同的設備和需求選擇不同的業(yè)務(wù)應用代碼,同時(shí)也有助于FLASH中的業(yè)務(wù)代碼的更新。
2.3.3 利用PCI總線(xiàn)更新FLASH中的業(yè)務(wù)代碼
當成型的設備需要對固化在DSP外圍FLASH中的業(yè)務(wù)代碼進(jìn)行更新時(shí),應該在DSP上運行FLASH燒寫(xiě)程序,把業(yè)務(wù)代碼燒寫(xiě)到FLASH中。本設計利用PCI啟動(dòng)方式,通過(guò)上位機來(lái)啟動(dòng)C6416運行FLASH燒寫(xiě)程序,完成業(yè)務(wù)代碼的FLASH燒寫(xiě)。利用上述的C6416從機啟動(dòng)模式,可以很容易的發(fā)現,當需要完成FLASH軟件更新時(shí),只需要更新“業(yè)務(wù)代碼”即可,而“Bootload”和“程序選擇搬移代碼”不需要變更。如此業(yè)務(wù)代碼更新就很方便,因為其只需要考慮程序應用上的變換,而不需要過(guò)多的考慮程序代碼、數據段地址分配的問(wèn)題,更不需要考慮C6416特有的僅1 KB數據上電自動(dòng)搬移所帶來(lái)的麻煩。具體步驟如圖7所示。
第一步:根據C6416外圍所選的FLASH特性,來(lái)編寫(xiě)其代碼燒寫(xiě)程序。在該程序中把需要更新的業(yè)務(wù)代碼作為常量數據包含到工程中的eonst段中。
第二步:利用hex6x.exe和hex2aray.exe工具來(lái)將FLASH燒寫(xiě)程序轉換成C語(yǔ)言可以識別的16進(jìn)制數組數據;
第三步:選擇C6416為PCI主機啟動(dòng)模式,主機利用PCI總線(xiàn)將轉換為16進(jìn)制的燒寫(xiě)程序數據搬移到C6416片內存儲器;
第四步:主機把C6416 I/O空間寄存器HDCR.DSPINT位置1,使C6416退出復位,開(kāi)始運行。
當C6416運行了燒寫(xiě)程序,便把const段中的待更新業(yè)務(wù)軟件數據燒寫(xiě)到FLASH指定的地址上。如此便完成了FLASH的業(yè)務(wù)軟件的更新。
3 結語(yǔ)
本文介紹的利用PCI總線(xiàn)更新DSP業(yè)務(wù)系統應用程序的設計,完全擺脫了JTAG口的制約,利用具有高速數據通信特性的PCI總線(xiàn),針對包含外圍FLASH和不包含外圍FLASH的DSP業(yè)務(wù)系統,實(shí)現了應用程序的更新。
特別對于含有外圍FLASH的DSP業(yè)務(wù)系統,本文設計的DSP啟動(dòng)方式和FLASH應用程序更新流程,能高效地完成應用程序的更新,同時(shí)實(shí)現了DSP啟動(dòng)時(shí)應用程序加載的選擇。
評論