DSP5509A bootload與二次引導詳解

2022-09-04 09:36:07 字數 1995 閱讀 8132

​ 要使用bootloader首先需要配置gpio電平來設定boot方式,我手上的兩塊板子分別使用的是i2c eeprom與emif

下圖是ti對於此方式的解釋

程式入口位址是引導表載入結束後,使用者程式開始執行的位址;暫存器配置數目決定了後面有多少個暫存器需要配置;延時標誌為0xffff時,延時才被執行,延時長度決定了在暫存器配置後多少個cpu週期才進行下乙個動作;段長度、段起始位址和資料則為使用者程式中定義的各個段的內容,並且可以重複新增,最後0x00000000作為引導表的結束標誌。

從引導表的格式可以看出:

​ 怎麼建立引導表呢,用ti提供的hex55.exe工具(ccs裡面有)來建立,將ccs最終編譯的test.out檔案、hex55.exe以及test.cmd檔案放在同一目錄下,通過dos命令呼叫hex55.exe即可完成.out到hex格式的引導表檔案的轉化。

​ dos命令例項(注:可以在windows的控制台使用,也可以編寫.cmd(如取名run.cmd)檔案來使用)

hex55.exe test.cmd 	/* 說明使用hex55.exe軟體呼叫test.cmd命令 */
​ 燒寫到flash裡的test.cmd檔案的例項:

-test.out				/* 輸入的.out檔案 */

-map test.map /* 生成.map檔案 */

-o test.hex /* 輸出.hex檔案 */

-memwidth 8 /* 設定儲存寬度為8bit */

-e 0x3e570 /* 指定入口點位址(實際測試發現一般不用指定,生成檔案時會自動指定) */

-boot /* 說明建立boot檔案格式 */

-5510:2 /* 生成55xxboot檔案格式 */

-serial8 /* 使用用序列載入方式(8位) */

-b /* binary格式 */

-reg_config 0x1c00,0x02b7 /* 在0x1c00暫存器寫0x02b7 */

-delay 0x100 /* 延遲100cpu時鐘週期 */

​ 點選執行run.cmd則會生成test.hex和test.map。

​ 所謂二次引導,就是通過dsp內部rom固化的bootloader,引導乙個使用者編寫的引導程式,其功能和bootloader功能基本相同,然後通過二次引導引導程式將最終需要執行的程式載入到dsp中,從而實現更加靈活的程式載入 。

tms320vc5509a系列dsp的程式自舉引導和加密方法:

vc5509a二次引導問題:

DSP5509的USB協議開發

1.使用的板子 2.原理圖相關,這個1.5k的上拉電阻,全速和高速上拉在d 低速上拉在d 3.中斷處理函式沒有搞明白是什麼意思?這個工程我怎麼基本看不懂?interrupt void usb isr 4.usb的一些初始化和配置函式,我很懵逼,hepobjarray,epin0event mask,...

FPGA與DSP5509A通過MCBSP介面通訊

include include mcbsp handle rmcbsp,tmcbsp mcbsp config mcbsp0config mcbsp config mcbsp1config void main void leddata mcbsp read16 rmcbsp printf d n l...

對DSP5509A時鐘發生器的除錯

設計了一塊dsp fpga系統的資料採集板,但是怎麼才能確定設計的dsp部分是可以正常工作的呢?fpga部分的好測試。對於dsp能否正常工作可從以下幾個方面進行測試 1 上電檢測dsp的clkin引腳,用示波器檢視波形是否失真,電壓是否在合理範圍內 2 配置clkmd暫存器使pll在鎖相模式,用示波...