工具与软件:
因此、对于由链接器生成的闪存范围 CRC 表、我存在一些问题。
如此处所述 、添加了新的 CRC 生成选项。 以下是我使用的部分链接器 cmd 文件: ..... FLASH_CRC : origin = 0x0B0000, length = 0x000060 GROUP { BEGIN : origin = 0x0B0060, length = 0x000002 FLASHJ : origin = 0x0B0062, length = 0x8000-0x62 /* on-chip Flash */ FLASHK : origin = 0x0B8000, length = 0x002000 /* on-chip Flash */ FLASHL : origin = 0x0BA000, length = 0x002000 /* on-chip Flash */ }crc(linkerCrcTable, algorithm=CRC32_PRIME)......TI.memcrc : >FLASH_CRC.....
我有2个问题:
1)是否可以在多个闪存范围上使用一个 CRC?
如果我要使用链接器 CRC 验证我的固件(N 个范围)。 我应该得到的结果(但没有得到、请参阅问题2)
将是记录表。 我希望在整个 GROUP 中具有一个 CRC 的所有范围。 有可能吗?
2)生成的表不包含正确的记录。 我希望看到 SPRU513Q 的图8-7和中所示的表格
在...\tools\compiler\ti-cgt-C2000_22.6.1.sts\include\crc_tbl.h 中

我已通过 hex2000 util 将*。out 文件转换为*。hex、以验证生成的表。 我看到的内容远不及预期:
-第一个字符串设置的基地址0x0B0000是正确的
-第二个字符串应包含表头和几个记录。 这是开始出错的地方。
我有一个看上去正常的表头。 则记录则不是。 我在"地址"字段的起始地址中的第一个范围具有正确的 CRC 值(0xB1D5086B)
CRC 值字段。 其余记录根本不包含 CRC、并且字段会混乱。 :02000004000BEF:200000000006000400000000086BB1D5000000000060000B00020000000000000062000B03:200010007F9E0000000000008000000B2000000000000000A000000B20000000FFFFFFFF41:20002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0:20003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0:20004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0:20005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0:20006000004B2943FFFFFFFFFFFFFFFFFFFFFFFFB2BDAABDA2BDFE0A8BA583C1825486A424...
我在连接了调试器的情况下也获得了此结果:

为什么我会得到这个奇怪的结果?