如何使用从偶数地址边界开始的两个字节值填充 S 记录?
当我编译代码时,我最终得到 Motorola S 记录 (a. mot),有间隙(整个地址范围不被代码和数据覆盖)。
我想用模式 0x01 0x80
来填补这些空白。然而,重要的是所有两字节对必须从偶数地址开始。 0x0180
是我的微控制器中的一个操作码,如果 PC 到达未使用的闪存区域的地址,我希望执行该操作码。
在您开始回答之前,我想告诉您 srec_cat 中的 -repeat-data 有一个问题:
- 给定两个部分,例如 C 和 < strong>D 在地址空间中依次放置(D 在 C 之后)。
- 假设 C 部分的最后一个字节以地址
0x76
结束,而 D 部分的第一个字节位于地址0x78
处。换句话说,它们之间的地址0x77
处有 1 个字节长的间隙。
在这种情况下,如果我使用 -repeat-data 0x01 0x80
选项,srec cat 将用 0x01
填充该一个字节,并开始填充以下间隙来自0x80
。
我不知道这些部分的大小,因为链接器会处理它。
When I compile my code I eventually get Motorola S records (a.mot) with gaps (the whole address range is not covered by code and data).
I want to fill those gaps with the pattern 0x01 0x80
. However, it is important that all of the two-byte pairs must start at even addresses. 0x0180
is an opcode from my micro that I want to be executed if the PC reaches an address of unused flash area.
Before you start answering I'd like to tell you that -repeat-data in srec_cat has an issue:
- Given two sections e.g. C and D put one after another (D after C) in address space.
- Given that last byte of section C ends on address
0x76
and first byte of section D is on address0x78
. In other words there is 1 byte long gap at address0x77
between them.
Under such conditions, if I use -repeat-data 0x01 0x80
option, srec cat will fill that one byte with 0x01
and start filling following gap from 0x80
.
I do not know sizes of those sections because linker handles it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 srec_cat 创建一个覆盖所需地址范围的文件,该文件完全填充有按要求对齐的 0x01 0x80 序列。
然后使用 srec_cat 以及
-multiple
和−disable-sequence-warning
选项将“填充器”文件与应用程序映像文件“合并”。您应该将填充文件指定为第一个文件,以便它被第二个指定的应用程序数据覆盖。它会发出许多警告,但它应该有效。
Use srec_cat to create a file covering your required address range filled entirely with the 0x01 0x80 sequence aligned as required.
Then use srec_cat with the
-multiple
and−disable-sequence-warning
options to "merge" the "filler" file with your application image file. You should specify the filler file as the first file so that it is overwritten by the application data specified second.It will issue many warnings, but it should work.
我会在 Windows 中编写一个简单的解析器,工作方式如下:
I would write a simple parser in Windows working like this: