HEX格式介紹及分析程序

HEX格式介紹及分析程序

ID:41032234

大?。?8.50 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-08-14

HEX格式介紹及分析程序_第1頁(yè)
HEX格式介紹及分析程序_第2頁(yè)
HEX格式介紹及分析程序_第3頁(yè)
資源描述:

《HEX格式介紹及分析程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、IntelHEX格式你熟悉嗎?——HEX格式介紹及分析程序來源:21ic 作者:LPC900 欄目:MCU技術(shù)INTELHEX格式你熟悉嗎?——HEX格式介紹及分析程序用KeilC51編程時(shí),可以自動(dòng)生成INTELHEX格式的程序文件。INTELHEX文件通常由若干個(gè)記錄組成,每個(gè)記錄都具有如下的形式:????:llAAAAttdd...ddcc其中:????開頭的冒號(hào)“:”是記錄起始標(biāo)志。????“l(fā)l”是記錄的有效數(shù)據(jù)長(zhǎng)度。????“AAAA”是裝入地址。????“tt”是記錄類型。00表示數(shù)據(jù)記錄,01表示

2、結(jié)束。????“dd...dd”是記錄中的有效數(shù)據(jù)。數(shù)據(jù)個(gè)數(shù)必須與“l(fā)l”一致。????“cc”校驗(yàn)和。將它的值與記錄中所有字節(jié)(冒號(hào)“:”除外)內(nèi)容相加,其結(jié)果應(yīng)為00,否則出錯(cuò)。舉例:????某行記錄的內(nèi)容是“:05012000B5412B215543”,則數(shù)據(jù)長(zhǎng)度ll是05H,裝入地址是0120H,記錄類型是數(shù)據(jù)記錄,有效數(shù)據(jù)是B5H、41H、2BH、21H、55H,校驗(yàn)和為43H。????在文件的最后一行,總是“:00000001FF”,表示無任何有效數(shù)據(jù),裝入地址為0000H(沒有用處),記錄類型為01

3、H,表示結(jié)束,校驗(yàn)和當(dāng)然是FFH了。以下是一個(gè)分析INTELHEX記錄的簡(jiǎn)單程序:/*????INTELHEX.h????分析處理INTELHEX格式記錄的頭文件*/#ifndef_INTEL_HEX_H_#define_INTEL_HEX_H_#include#include//定義INTELHEX記錄的結(jié)構(gòu)struct{????unsignedCHARll;????????//長(zhǎng)度????unsignedintAAAA;????????//地址????unsignedCH

4、ARtt;????????//記錄類型,0-數(shù)據(jù),1-終止????CHARdd[16];????????????//數(shù)據(jù)????CHARcc;????????????????//校驗(yàn)和}INTELHEX;/*函數(shù):AnalyseHEX()功能:分析一條HEX記錄(把INTELHEX記錄的文本轉(zhuǎn)換成INTELHEX結(jié)構(gòu))參數(shù):????hex[]是記錄的文本一行內(nèi)容????轉(zhuǎn)換后的結(jié)果保存在INTELHEX結(jié)構(gòu)中返回:????0-轉(zhuǎn)換成功????1-HEX記錄文本中有錯(cuò)誤*/bitAnalyseHEX(CHARhex

5、[]){????unsignedCHARi;????unsignedCHARj;????unsignedCHARt;????unsignedCHARn;????unsignedCHARcc;????unsignedintx;//檢查冒號(hào)????if(hex[0]!=':')return1;//檢查長(zhǎng)度????t=(toint(hex[1])<<4)+toint(hex[2]);????if(t>16)return1;????n=2*t+11;????if(n!=strlen(hex))return1;????IN

6、TELHEX.ll=t;????cc=t;//提取地址????t=(toint(hex[3])<<4)+toint(hex[4]);????cc+=t;????x=(unsignedint)t;????x<<=8;????t=(toint(hex[5])<<4)+toint(hex[6]);????cc+=t;????x+=(unsignedint)t;????INTELHEX.AAAA=x;//提取記錄類型????t=(toint(hex[7])<<4)+toint(hex[8]);????if((t==0)

7、

8、

9、(t==1))????{????????cc+=t;????????INTELHEX.tt=t;????}????else????{????????return1;????}//提取數(shù)據(jù)????i=9;????if(t==0)????{????????j=0;????????n=INTELHEX.ll;????????do????????{????????????t=(toint(hex[i++])<<4);????????????t+=toint(hex[i++]);????????????cc+=t;???

10、?????????INTELHEX.dd[j++]=t;????????}while(--n!=0);????}//提取校驗(yàn)和????t=(toint(hex[i++])<<4);????t+=toint(hex[i++]);????cc+=t;????INTELHEX.dd[j++]=t;//檢查校驗(yàn)????if(cc==0)????????return0;????el

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。