C6000系列DSP Flash二次加載技術(shù)研究
加載時(shí),二次加載程序不解析任何數(shù)據(jù)包結(jié)構(gòu),只將固定地址、固定長度的數(shù)據(jù)段加載到DSP內(nèi)部空間。具體的加載流程如圖4所示。本文引用地址:http://cafeforensic.com/article/150422.htm
該方法通用于兩種不同存儲(chǔ)映射的DSP芯片,使用前提是程序規(guī)模不超過片上存儲(chǔ)器的大小(如C6701為64 KB,C6455為2 MB)。非結(jié)構(gòu)化加載方式在生成燒寫文件時(shí),首先直接將DSP內(nèi)部存儲(chǔ)器的內(nèi)容完全導(dǎo)出為數(shù)據(jù)文件,然后對(duì)該數(shù)據(jù)文件進(jìn)行處理轉(zhuǎn)換為二進(jìn)制文件,最后將數(shù)據(jù)文件按照固定的地址燒寫到Flash中。
需要注意的是,對(duì)于C6201或C6701芯片,二次加載時(shí)僅加載數(shù)據(jù)文件,而其他C6000芯片則加載程序與數(shù)據(jù)混合的文件。非結(jié)構(gòu)化的加載方式浪費(fèi)了大量的空間,例如當(dāng)程序與數(shù)據(jù)并沒有使用DSP所有的內(nèi)部空間時(shí),仍然使用最大程序空間來生成燒寫文件。
2.2 結(jié)構(gòu)化的加載方式
結(jié)構(gòu)化加載方式是指在生成燒寫文件的過程中對(duì)程序中的各種數(shù)據(jù)進(jìn)行分類并添加結(jié)構(gòu),形成多個(gè)數(shù)據(jù)段,然后通過分析這些結(jié)構(gòu)化的數(shù)據(jù)段進(jìn)行加載。具體方法為:在生成燒寫文件時(shí)采用TI公司提供的燒寫文件生成工具h(yuǎn)ex6x.exe,將程序編譯后生成的.out文件轉(zhuǎn)換為相
應(yīng)的結(jié)構(gòu)化可燒寫文件。生成過程如圖5所示。在生成的結(jié)構(gòu)化文件中主要包含了主程序入口、每個(gè)程序段的目標(biāo)地址、長度以及結(jié)束標(biāo)志等內(nèi)容。加載流程如下:
①上電時(shí),DSP通過EMIF接口將二次加載程序讀入芯片內(nèi)部;
②運(yùn)行二次加載程序,對(duì)DSP的EMIF接口進(jìn)行配置;
③解析Flash中結(jié)構(gòu)化的程序數(shù)據(jù),將主程序入口地址進(jìn)行暫存;
④對(duì)數(shù)據(jù)段i(i=1,2,…,n)進(jìn)行解析,首先獲取數(shù)據(jù)段在DSP中的目的地址和數(shù)據(jù)段長度,然后從Flash中讀取數(shù)據(jù)段內(nèi)容,最后將數(shù)據(jù)段內(nèi)容載入DSP中對(duì)應(yīng)地址。
⑤循環(huán)執(zhí)行步驟④,直到遇到結(jié)束標(biāo)志為止。
評(píng)論