基于C語(yǔ)言和GEL語(yǔ)言的Flash編程新方法
出處:highend 發(fā)布于:2007-12-19 09:36:47
該方法完全采用C語(yǔ)言編寫燒寫程序,解決了指針不能訪問(wèn)高端Flash的問(wèn)題;把引導(dǎo)表作成數(shù)據(jù)文件,可實(shí)現(xiàn)大引導(dǎo)表的分批次加載;通過(guò)GEL程序控制C程序執(zhí)行,較好地體現(xiàn)了Flash編程的流程。
引言
在DSP應(yīng)用系統(tǒng)開(kāi)發(fā)的后期,一般需要將用戶程序?qū)戇M(jìn)Flash等非易失性存儲(chǔ)器,以便采用并行引導(dǎo)的方法實(shí)現(xiàn)用戶程序的自舉加載。這一步驟稱為“燒寫”;針對(duì)Flash的燒寫又稱為Flash編程。以往的編程方法大多采用匯編語(yǔ)言編寫程序,可讀性較差,并將引導(dǎo)表的制作也放在程序中實(shí)現(xiàn);用戶程序一變,燒寫程序就得重新編寫,不具有通用性。參考文獻(xiàn)[1]采用C語(yǔ)言完成Flash讀寫,較清晰地體現(xiàn)了Flash編程的思想,但是它采用指針訪問(wèn)Flash空間,不能對(duì)高端Flash(64 K字存儲(chǔ)空間以外)進(jìn)行訪問(wèn),且將引導(dǎo)表作成數(shù)組的方法仍顯機(jī)械。
這里提出的Flash編程方法完全采用C語(yǔ)言編寫燒寫程序,運(yùn)用函數(shù)地址訪問(wèn)高端Flash,借助數(shù)據(jù)文件將引導(dǎo)表加載到數(shù)據(jù)空間。GEL(General Extension Language,通用擴(kuò)展語(yǔ)言)作為一種程序擴(kuò)展語(yǔ)言,被廣泛用于調(diào)試及程序運(yùn)行環(huán)境的定制。這里將GEL語(yǔ)言運(yùn)用于Flash編程,可以控制C程序在數(shù)據(jù)加載完成后執(zhí)行燒寫過(guò)程,從而實(shí)現(xiàn)大引導(dǎo)表的燒寫。
1 DSP開(kāi)發(fā)板及Flash存儲(chǔ)器
筆者使用的DSP開(kāi)發(fā)板上有1片TMS320VC5402通用DSP芯片、1片SST39VF400A存儲(chǔ)芯片(Flash)、鍵盤和液晶顯示器等。其中Flash容量為256 K字(1字=16位),組織為128個(gè)扇區(qū)或8個(gè)塊。為充分發(fā)揮Flash容量大的特點(diǎn),本系統(tǒng)在硬件上將Flash空間的映射設(shè)計(jì)為:在上電自舉過(guò)程中,F(xiàn)lash空間的0x04000~0x0FFFF映射到數(shù)據(jù)空間的0x4000~0xFFFF;上電自舉完成后,整個(gè)Flash空間0x00000~0x3FFFF映射到程序空間的0x80000~0xBFFFF,即映射到了TMS320VC5402的擴(kuò)展程序空間,處于高地址,因此稱為“高端Flash”。由此可知,對(duì)系統(tǒng)進(jìn)行應(yīng)用開(kāi)發(fā)時(shí),F(xiàn)lash總是表現(xiàn)為高端Flash。

圖1 Flash編程流程
2 Flash編程流程
用戶程序一般以可執(zhí)行COFF(公共目標(biāo)文件格式)文件格式存在(后綴名為.out),F(xiàn)lash編程所要完成的就是將此可執(zhí)行文件轉(zhuǎn)換成特定的ASCII碼引導(dǎo)表的格式,并按此格式順序?qū)戇M(jìn)Flash。Flash編程流程如圖1所示。下面僅以一個(gè)動(dòng)畫顯示程序qq.out為例,介紹如何將其燒寫進(jìn)Flash。
.1 生成引導(dǎo)表
通過(guò)Hex轉(zhuǎn)換工具,將用戶程序qq.out文件轉(zhuǎn)換成十六進(jìn)制形式的ASCII碼流文件(ASCIIHex格式文件[2])qq.asc。首先編寫一個(gè)convert.cmd命令文件。部分內(nèi)容如下:
qq.out/*用戶程序*/
-a/*轉(zhuǎn)換成ASCIIHex格式文件*/
-map qq.mxp/*包含引導(dǎo)表的長(zhǎng)度等信息*/
-o qq.asc/*轉(zhuǎn)換成qq.asc*/
執(zhí)行命令行“hex500 convert.cmd”將產(chǎn)生qq.mxp和qq.asc文件。其中qq.mxp文件有這樣的信息:“CONTENTS: 00000000…0000433b”。表示qq.asc中的引導(dǎo)表長(zhǎng)度為0x433C字,內(nèi)容大致為:“10 AA 7F FF 00 02 00 00…”。
參考文獻(xiàn):
[1]. TMS320VC5402 datasheet http://www.udpf.com.cn/datasheet/TMS320VC5402_688959.html.
[2]. SST39VF400A datasheet http://www.udpf.com.cn/datasheet/SST39VF400A_887731.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- PLC設(shè)備如何選型2025/9/5 17:15:14
- PLC 編程中急停開(kāi)關(guān)觸點(diǎn)抉擇:常開(kāi)還是常閉?接線要點(diǎn)揭秘2025/6/26 16:02:37
- 全面解析:PLC 控制柜設(shè)計(jì)原理、布局接線與原理圖2025/6/16 16:12:05
- PLC控制系統(tǒng)輸入/輸出回路的隔離技術(shù)2025/6/12 17:27:11
- 深度解析:PLC 上升沿和下降沿指令的應(yīng)用時(shí)機(jī)與使用方法2025/6/9 15:18:19









