你好
我们需要一个8位十六进制文件进行刷写。 我已使用 hex2000工具生成了一个8位十六进制文件、并具有 memwidth 8选项。
我现在看到的是、在8位 hex 文件中、会交换字节。 我可以使用 hex2000中的选项来更改它吗?
这是8Bit 文件:

这是一个16位文件:

您好
约兴
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好
我们需要一个8位十六进制文件进行刷写。 我已使用 hex2000工具生成了一个8位十六进制文件、并具有 memwidth 8选项。
我现在看到的是、在8位 hex 文件中、会交换字节。 我可以使用 hex2000中的选项来更改它吗?
这是8Bit 文件:

这是一个16位文件:

您好
约兴
你好
这是生成具有8Bit 寻址功能的十六进制文件的命令。
-------------------------------------------------------------------------------------------------------------------
/*用于通过 SAC 获取具有8位寻址的十六进制文件的特殊设置*/
——英特尔
-图像
--交换字节
-- memwidth 8
ROM
{
/*将闪存段的链接器寻址乘以2 (16位至8位寻址)*/
/*使用--binary 选项时,所有地址都转换为二进制(字节寻址)*/
FLASHIMAGE:org=0x0110000、len=0x30000、romwidth=16、fill=0xFFFF
文件={.\mainSAC.hex}
}
-------------------------------------------------------------------------------------------------------------------
此命令用于生成具有16位寻址的十六进制文件。
-------------------------------------------------------------------------------------------------------------------
——英特尔
-图像
ROM
{
FLASHIMAGE:org=0x088000、len=0x18000、romwidth=16、fill=0xFFFF、
文件={.\main.hex}
}
-------------------------------------------------------------------------------------------------------------------
您好
约兴
我仍然不确定你打算做什么。 因此,我不想提出任何解决办法。 我可以发表一些我认为会有帮助的评论。
在 C28x 上、每个地址对应于1个16位字。 不是1个8位字节、几乎所有其他 CPU 都是这种情况。
请在 C28x 汇编工具手册 中搜索标题为" 了解存储器宽度"的子章节。 这解释了目标宽度、宽度和高度之间的关系、 -- memwidth 和 --从宽度 。 在本例中、目标宽度始终为16、 --从宽度 始终为16 (设置于 FLASHIMAGE 线路输入 ROM 指令)、和 -- memwidth 在8和16之间变化。 有趣的情况是、 --从宽度 小于 -- memwidth 。 不会在这些条件下发生。
当单独查看时,此注释是正确的...
/*在使用--binary 选项时,所有地址都转换为二进制(字节寻址)*/
但这在背景上仍然是错误的。 因为 ——英特尔 未使用、 -二进制 。 因此、您不应将器件的地址和长度加倍、 ROM 指令。
选项 --交换字节 没有任何变化 -- memwidth=8 和 --romwidth=16 。 尝试时间 -- memwidth=16 和 --romwidth=16 。
谢谢。此致、
-乔治