既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
:0200000212FFBD 扩展段地址:0x12FF
:0401000090FFAA5502 数据地址:0x0100
基地址:0108左移16位为0x01080000;
扩展段地址:12FF左移4位为0x00012FF0;
下一行数据的偏移地址:0x0100
实际物理地址:0x01080000 + 0x00012FF0 + 0x0100 = 0x010930F0
举例分析:某工程代码的hex文件局部内容:
:02000004003DBD①
:04801000007DF9A155②
:20801200FF5A8EA4C5A492ABEC079CFF88A992859687000EFFFE92AB88A9A9A90FA6EC10AE③
:2080220093AAEC0EA9A99DFF5CA876BFFFFE92859687000EFFFE92859687000CFFF88AA043④
…
:200EC4008E77003D8E7E003D8E86003D8EB5003D8EE4003D8EFB003D8F2A003D8F5A003D21
:140ED4008F8A003D8FB9003D8FE8003D9017003D9046003D84
:00000001FF
1.:02000004003DBD**(实质为“十六进制”表达形式:0x02,0x00,0x00,0x04,0x00,0x3D,0xBD)**
释义:02表示该行数据的长度(字节数);
0000表示该行数据的起始地址(若该行数据的数据类型为00,则为偏移地址);
04表示该行数据的数据类型[1];
0x00,0x3D为数据[2];
0xBD为校验和[3]。
**2.**每行数据的起始地址计算:
第①行数据基地址(首行):0x0000 +(0x003D << 16)= 0x003D0000
第②行数据基地址:0x003D0000 + 0x8010 = 0x003D8010
第③行数据基地址:0x003D0000 + 0x8012 = 0x003D8012
第④行数据基地址:0x003D0000 + 0x8022 = 0x003D8022
注释:[1].“00”Data Rrecord:数据记录
“01”End of File Record::表征该.hex文件结束
“02”Extended Segment Address Record:标识扩展段地址记录
(后面所有数据地址需要加上段地址左移4位)
“03”Start Segment Address Record:起始/开始段地址记录
(大部分hex中不使用该记录类型,关于该记录类型的描述很少,具体作用不详)
“04”Extended Linear Address Record:标识扩展线性地址记录
(后面所有数据地址+线性地址左移16位,将该地址左移16 位后作为基地址,并且表示在下一个04类型行出现之前都要使用该地址作为基地址来使用。)
“05”Start Linear Address Record:起始/开始线性地址记录
(程序/函数入口地址,程序入口地址未必是main函数地址)
[2]. 十六进制数据:字节顺序根据芯片大小端和字长决定。
处理器若为大端存储,高字节在前,低字节在后(如NXP的5744P);
小端存储,则低字节在前,高字节在后(如STM32、DSP)。
示例:: 0401000090FFAA5502
大端存储的处理器内存中表示:
内存地址 | 数据 |
0x0109F1 | 0x90 |
0x0109F2 | 0xFF |
0x0109F3 | 0xAA |
0x0109F4 | 0x55 |
常用的X86结构是小端模式,而KEIL C51为大端模式。很多ARM、DSP均为小端模式。部分ARM处理器可以随时在程序中(ARM Cortex系列使用REV、REV16、REVSH指令)进行大小端的切换。
[3].校验和计算方式:0x0100与除校验字节外所有字节累加和(不计进位)的差值。
例:0xBD = 0x0100 –(0x02 + 0x00 + 0x00 + 0x04 + 0x00 + 0x3D)
3.hex文件与bin****文件格式区别:
hex文件包括地址信息(烧写或下载hex文件,一般不需要用户指定地址),bin文件格式只包括数据本身(烧写bin文件时,用户需要指定地址信息)。
**【2】****“out”**文件内容解析
.out文件是由类似Unix的操作系统(如Linux和AIX)中的各种源代码编辑器创建的编译可执行文件。可以存储可执行代码、共享库或目标代码。(当今.out文件慢慢被COFF(公共对象文件格式)格式所取代)
**【3】****“bin”**文件内容解析
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)