新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PCI 總線的DSP 系統應用程序的更新

基于PCI 總線的DSP 系統應用程序的更新

作者: 時間:2013-07-31 來源:網絡 收藏

  2.3.2 C6416從機的啟動模式設計

  編寫一個C6416的程序,該程序完成FLASH到片外SDRAM的數據拷貝。而拷貝的數據則是C6416具體要完成的業(yè)務任務。同時該程序包含了Bootload程序,用來完成上電后的1 KB FLASH數據搬移。見圖6.

  

  第一步:當C6416 上電后,首先自動完成A 搬移操作,“Bootload程序”將被搬移到C6416片內RAM 的0起始地址,后開始運行該段代碼,該段代碼是利用匯編語言編寫,其在C語言庫初始化前被執(zhí)行;第二步:“Bootload 程序”的運行將會配置C6416 的EMIF 寄存器,使能片外SDRAM,同時使B 搬移操作完成:“程序選擇搬移代碼”將被搬移到C6416片內RAM,并從程序入口地址開始執(zhí)行該代碼段;第三步:“程序選擇搬移代碼”的執(zhí)行將對業(yè)務代碼進行選擇,查看需要加載“ 業(yè)務代碼1”還是“ 業(yè)務代碼2”,把選擇的業(yè)務代碼搬移到片外SDRAM中,完成C搬移操作或D搬移操作,然后從程序入口地址開運行,從而被選中的業(yè)務代碼將被執(zhí)行。

  其中“程序選擇搬移代碼”是一段由C 語言編寫的C6416 啟動輔助代碼。該段代碼主要完成了業(yè)務代碼的選擇和搬移工作。應用用戶可以在C6416 片外FLASH 中存放多個業(yè)務代碼,通過串口、等接口向C6416發(fā)送業(yè)務代碼選擇命令,在“程序選擇轉移代碼”中,對該命令進行分析,根據協議選擇所指定的業(yè)務代碼。當選擇了所需的業(yè)務代碼,就需要完成代碼的FLASH 到C6416存儲器的搬移。由于業(yè)務代碼是利用上述的hex6x.exe 和hex2aray.exe 工具所生成的16 進制數據,其包含了業(yè)務代碼各個段的起始地址、段長和段數據,因此需要利用“程序選擇搬移代碼”來完成業(yè)務代碼的解析,并把各個段從FLASH 搬移到指定的C6416存儲空間中。最后把程序指針指定到程序的入口地址,即可運行業(yè)務代碼。該啟動方式的設計有助于在實際應用中針對不同的設備和需求選擇不同的業(yè)務應用代碼,同時也有助于FLASH中的業(yè)務代碼的更新。

  2.3.3 利用更新FLASH中的業(yè)務代碼

  當成型的設備需要對固化在DSP外圍FLASH中的業(yè)務代碼進行更新時,應該在DSP 上運行FLASH 燒寫程序,把業(yè)務代碼燒寫到FLASH中。本設計利用PCI啟動方式,通過上位機來啟動C6416 運行FLASH 燒寫程序,完成業(yè)務代碼的FLASH 燒寫。利用上述的C6416從機啟動模式,可以很容易的發(fā)現,當需要完成FLASH軟件更新時,只需要更新“業(yè)務代碼”即可,而“Bootload”

  和“程序選擇搬移代碼”不需要變更。如此業(yè)務代碼更新就很方便,因為其只需要考慮程序應用上的變換,而不需要過多的考慮程序代碼、數據段地址分配的問題,更不需要考慮C6416特有的僅1 KB數據上電自動搬移所帶來的麻煩。具體步驟如圖7所示。

  @7

  第一步:根據C6416外圍所選的FLASH 特性,來編寫其代碼燒寫程序。在該程序中把需要更新的業(yè)務代碼作為常量數據包含到工程中的const段中。

  第二步:利用hex6x.exe 和hex2aray.exe 工具來將FLASH燒寫程序轉換成C語言可以識別的16進制數組數據;第三步:選擇C6416 為PCI 主機啟動模式,主機利用PCI 總線將轉換為16 進制的燒寫程序數據搬移到C6416片內存儲器;第四步:主機把C6416 I/O空間寄存器HDCR.DSPINT位置1,使C6416退出復位,開始運行。

  當C6416 運行了燒寫程序,便把const 段中的待更新業(yè)務軟件數據燒寫到FLASH指定的地址上。如此便完成了FLASH的業(yè)務軟件的更新。

  3 結語

  本文介紹的利用PCI 總線更新DSP 業(yè)務系統應用程序的設計,完全擺脫了JTAG口的制約,利用具有高速數據通信特性的,針對包含外圍FLASH和不包含外圍FLASH 的DSP 業(yè)務系統,實現了應用程序的更新。

  特別對于含有外圍FLASH 的DSP 業(yè)務系統,本文設計的DSP 啟動方式和FLASH 應用流程,能高效地完成應用程序的更新,同時實現了DSP啟動時應用程序加載的選擇。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉