工具/软件:Code Composer Studio
成功构建后、生成的十六进制文件缺少四个字节的数据。 这发生在.txt 段结束且.const 段开始的位置。
文本结尾和 const 开始的位置之间有一个字间隙。
.out 文件的此位置填充有"00000000"、但十六进制文件在该位置没有任何数据。
请告诉我、是否有办法修复十六进制文件生成、以便在没有任何跳过位置的情况下生成连续数据。
使用的 CCS 版本: 5.2.0.00069
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.
工具/软件:Code Composer Studio
成功构建后、生成的十六进制文件缺少四个字节的数据。 这发生在.txt 段结束且.const 段开始的位置。
文本结尾和 const 开始的位置之间有一个字间隙。
.out 文件的此位置填充有"00000000"、但十六进制文件在该位置没有任何数据。
请告诉我、是否有办法修复十六进制文件生成、以便在没有任何跳过位置的情况下生成连续数据。
使用的 CCS 版本: 5.2.0.00069
请在 ARM 汇编工具手册中搜索 标题为 "图像模式"和--fill 选项"的子章节。
谢谢、此致、
乔治
非常感谢你们的回应!!
根据"图像"模式的说明、在特定范围内指定的所有空位置都将填充选项值。
我无法为 ROM 提供固定的存储器位置、因为代码大小不断增加。
我不想在结束后填充文件
但我希望十六进制文件之间只有空的位置。
例如、在我的当前案例中。 .txt 和.const 有一个间隙。 只能填补这个空白。
您是否知道为什么这种行为对于少数软件版本和少数软件版本可能存在、而不存在。
我在 您的另一个主题中讨论的解决方案 是否也能解决这个问题?
谢谢、此致、
乔治
[报价用户="Kavya Ramachandra"]我不想在结束后填充文件[/报价]
图像模式不能解决该问题。 假设是 ROMS 指令使用系统中 ROM 存储器的实际地址和大小。 将其填充到端部通常不是问题。
[引用 user="Kavya Ramachandra"]您是否知道这种行为为什么在少数软件版本中存在,而在少数软件版本中则不存在。 [/报价]
您指的是什么不同版本? 您的系统的不同版本? 或不同版本的 TI 工具链?
谢谢、此致、
乔治
[引用 user="Kavya Ramachandra"].txt 结束位置0x41844
.const 起始位置为0x41848
我想知道为什么4个字节的间隔。
Palign (4)应该起作用、并且.const 起始位置应该为0x41844、因为它已经与4个字节对齐。
为了解释这一点、我需要复制它。 这是否组织为 CCS 项目? 如果是、请按照文章 Project Sharing 中所述对其进行压缩、并将该 zip 文件附加到您的下一篇文章中。
谢谢、此致、
乔治
尊敬的乔治:
我很抱歉耽误你的答复。 我不确定是否可以在公共论坛中分享我公司的项目设置。
还有一位来自 TI 的成员访问了我们的公司、因此我们在讨论。
我们展示了项目设置、也没有从他那里报告任何问题。 大多数设置都是默认的建议设置。
当我使用 palign (8)时、问题已解决。 我在互联网上找到了以下解释。
"由于所有当前 Hercuels 器件上的 ECC 是在64位或8字节边界上计算的、因此放置在片上闪存中的所有数据和代码段也应与64位边界对齐。 此外、它们还应以64位边界结束、以确保整个段的长度为64位的倍数并完全初始化。 实现此目的的最简单方法是在所有输出段上使用 palign (8)在链接器命令文件中查找、该文件将放置在片上闪存中"
我们使用的是 TMS470、我相信它也是 Hercuels 器件。 这可能是对为什么应使用8字节填充的解释。
访问过的 TI 员工 尚未确认我的这一点。
谢谢、此致、
Kavya