- 13
- 0
- 约3.05千字
- 约 2页
- 2023-11-13 发布于湖北
- 举报
HEX⽂件解析C语⾔源代码
最近在编写MCU程序,BootLoader要⽀持U RT和C N升级,做⼀些记录.下⾯是Hex升级⽂件的解析⽅法,上位机调试⽤,能够将Hex的各个
Block进⾏分组,每个块的起始地址和⼤⼩,总字节数等信息提取.
void ReadHexFileToStruct(char *FileName, HEX_ FEIL_T *HexFile)
FILE *fp;
ssize_t size;
int status = 0;
char RowData[48] ; //逐⾏读取,每⾏数据缓存
uint32_t i = 0;
uint32_t RowDataByte = 0; //单⾏数据块字节数
uint32_t OffsetAddress = 0; //扩展线性地址
uint32_t ReAddr = 0; //上⼀数据⾏起始地址
uint32_t Len = 0; // HEX每⾏有效数据字节数
uint32_t ReLen = 0; // HEX前⼀次数据长度
uint32_t Addr=0; // HEX每⾏起始地址
uint8_t Type = 0; // HEX单⾏数据的类型
ReadHexFileInit(HexFile) ; //初始化缓存区
status = GetFileInfo (FileName, size) ; //获取⽂件信息
if(status 0) // 0:不存在, 1:⽂件存在,- 1:已打开
if((fp = fopen(FileName, r)) == NULL) //打开⽂件
Msg(Hex⽂件不存在!) ;
return ; //空指针
}
while(fgets (RowData, 48, fp) != NULL) //读⾏函数fgets
if(RowData[0] == :) //⾸字判断:偏移1, “:”0x3A
Len = CharToHexUchar(RowData + 1) ; //数据长度:偏移2- 1,2
Addr = CharToHexInt(RowData + 3) ; //起始地址:偏移4- 3,4,5,6
Addr|= (OffsetAddress 16) ;
Type = CharToHexUchar(RowData + 7) ; //类型:偏移2 -7,8
switch(Type)
case 0x00: //数据
if(Addr (ReLen + ReAddr)) //判断为新数据块
if(RowDataByte == 0) //是否为⾸⾏数据字节数
HexFile-BlockStartAddr[HexFile-HexBlockTotalNumber] = Addr;//记录新数据块的起始地址
}
else //不是⾸⾏
HexFile-BlockDataLength[HexFile-HexBlockTotalNumber]= RowDataByte;//数据长度
RowDataByte = 0; //重新开始计数
HexFile-BlockStartAddr[++HexFile-HexBlockTotalNumber] = Addr; //记录新数据块的起始地址
}
}
for(i = 0;i Len; i++)
HexFile-HexBlockData[HexFile-HexBlockTotalNumber][Ro
您可能关注的文档
- 八年级下学期家长会发言稿范文(精选7篇).docx
- 《PHOTOSHOP》教学大纲完整版.doc
- 六年级《生物》下册复习提纲.doc
- 制作溶液导电性实验装置.doc
- 动漫音乐PPT2完整版.ppt
- 临边施工作业危险源及其控制措施.doc
- 《二氧化碳的实验室制法》初三化学信息技术教育教学应用设计方案.docx
- ch6-1运输问题的规划求解.doc
- 学校期中考试成绩分析报告.docx
- 《匆匆》说课稿完整版.ppt
- 2026上半年山东菏泽市郓城县关于结合事业单位招聘征集部分普通高校全日制本科及以上学历毕业生入伍5人.docx
- 2026中共宁夏区委党校(宁夏行政学院)自主招聘高层次人才2人备考试题及参考答案详解一套.docx
- 2026中国华电集团有限公司华电电力科学研究院有限公司校园招聘7人(第二批)备考题库及参考答案详解1.docx
- 2025贵州省法院系统招聘聘用制书记员282人备考题库及完整答案详解1套.docx
- 2025湖南益阳市资阳区文化旅游广电体育局所属事业单位招聘紧缺(急需)教练员考试备考题库及答案详解1.docx
- 2026上半年海南事业单位联考海口市美兰区招聘71人(第一号)备考题库附答案详解.docx
- 2026中共绍兴市委党校(绍兴市行政学院)招聘专业技术人员1人(浙江)备考试题带答案详解.docx
- 2025河南南阳市唐河县属国有企业招聘(第6号)备考题库带答案详解.docx
- 2026上海市中医药研究院招聘3人备考题库参考答案详解.docx
- 2026中国科学院上海硅酸盐研究所发展规划处副处长招聘1人备考题库及参考答案详解.docx
最近下载
- 一年级上册体育与健康(华东师大版)期末质量检测试卷(附答案).docx VIP
- T_CNAS 05-2019 化疗药物外渗预防及处理.docx VIP
- 2025年六西格玛黑带项目过程能力监控专题试卷及解析.pdf VIP
- 2021年瓦楞纸板(箱)公司组织架构及部门职责.doc
- 函授工商管理论文7800字_函授工商管理毕业论文范文模板.pdf VIP
- 部编人教版二年级下册道德与法治全册教学课件(配2026年春改版教材).pptx
- 成人严重感染与感染性休克血流动力学监测与支持指南(2006).doc VIP
- 车辆维修保养及安全培训课件.pptx VIP
- 成人阻塞性睡眠呼吸暂停诊断和外科治疗指南(2024).pdf VIP
- 2026江西省国有资本运营控股集团有限公司第一批招聘考试笔试备考题库及答案解析.docx VIP
原创力文档

文档评论(0)