当我编译我的代码时,我最终会得到Motorola S records( a.mot )并且存在间隙(整个地址范围不包含在代码和数据中)。
我想用模式0x01 0x80
填补这些空白。但是,重要的是所有双字节对必须从偶数地址开始。 0x0180
是我的micro中的操作码,如果PC到达未使用的闪存区域的地址,我想要执行。
在您开始回答之前,我想告诉您 srec_cat 中的 -repeat-data 存在问题:
0x76
上结束,部分 D 的第一个字节在地址0x78
上。换句话说,它们之间的地址0x77
有1个字节的长间隙。在这种情况下,如果我使用 -repeat-data 0x01 0x80
选项,则srec cat会使用0x01
填充该一个字节并开始填充{{1 }}
我不知道这些部分的大小,因为链接器处理它。
答案 0 :(得分:3)
使用srec_cat创建一个文件,覆盖所需的地址范围,完全填充0x01 0x80序列,并根据需要进行对齐。
然后使用带有-multiple
和−disable-sequence-warning
选项的srec_cat将“填充”文件与应用程序映像文件“合并”。您应该将填充文件指定为第一个文件,以便它被第二个指定的应用程序数据覆盖。
它会发出许多警告,但它应该有效。
答案 1 :(得分:3)
我会在Windows中编写一个简单的解析器,如下所示: