【发布时间】:2014-01-15 11:28:30
【问题描述】:
我正在尝试为 PIC18 制作引导加载程序,因此我需要了解如何正确处理 hex 文件。例如,我了解如何处理以下十六进制行。
:040C0000E2EFFFF030
04: 字节数
0C00:十六进制数字地址
00:数据记录
E2EFFFF0:数据序列
30:校验和
所以我会知道如何处理上面的行,但是下面的十六进制行怎么样。
:020000040001F9
02:字节数
0000:地址
04: 扩展线性地址记录
0001:数据
F9:校验和
但是我到底该怎么做呢?我是否将这些数据写入该地址?你能把它翻译成机器语言吗?
顺便说一下,我的应用程序从地址0c00 开始,引导加载程序从地址0020 开始,在它上面是中断向量。谢谢!
更新
如果十六进制文件的第三行如下,地址FFC0会改变吗?
:10FFC000FF00FF00FF00FF00FF00FF000001E9EF5E
我在想既然hex文件的第二行有04(扩展线性地址记录),那么我应该在第三行FFC0的地址上加上0001,所以新的地址应该是这样的.
$0001 + $FFC0将等于1FFC0,所以第3行的下一组数据字节应该写入这个地址1FFC0,这样对吗?
【问题讨论】:
-
现在,这是某人的妖术。
-
这只是一个幻想,因为它是 PIC18。结婚后就是支票。
-
请用我的新假设检查新的更新,谢谢!
-
是的。那是正确的。并在每个地址前面加上 $0001,直到你看到另一个 04 行来更改它。
标签: c embedded microcontroller pic bootloader