如何从偶数地址边界开始填充带有两个字节值的S记录?

dev*_*use 5 c embedded linker

当我编译我的代码时,我最终得到带有间隙的摩托罗拉S记录(a.mot)(整个地址范围不包含在代码和数据中).

我想用模式填补这些空白0x01 0x80.但是,重要的是所有双字节对必须从偶数地址开始.0x0180是我的micro的操作码,如果PC到达未使用的闪存区域的地址,我想要执行.

在你开始回答之前我想告诉你srec_cat中的-repeat -data有一个问题:

  • 给定两个部分,例如CD在地址空间中一个接一个地放置(C之后的D).
  • 假定C部分的最后一个字节在地址上结束,0x76而部分D的第一个字节在地址上0x78.换句话说0x77,它们之间的地址有1个字节长的间隙.

在这种情况下,如果我使用-repeat -data0x01 0x80选项,srec cat将填充该一个字节0x01并开始填充以下间隙0x80.

我不知道这些部分的大小,因为链接器处理它.

Cli*_*ord 3

使用srec_cat创建一个覆盖所需地址范围的文件,该文件完全填充有按要求对齐的 0x01 0x80 序列。

\n\n

然后使用 srec_cat 和-multiple选项\xe2\x88\x92disable-sequence-warning将“填充”文件与应用程序映像文件“合并”。您应该将填充文件指定为第一个文件,以便它被第二个指定的应用程序数据覆盖。

\n\n

它会发出许多警告,但它应该有效。

\n