主题中讨论的其他器件:UNIFLASH
大家好!
使用 CCS v12.2.0编写我们的程序。 配置正在生成.out 文件。 当被 CCS 刷写到目标并使用 Uniflash 时、程序工作正常。
由于我想要计算.bin 文件的 CRC、因此我启用了十六进制实用程序并选择.bin 作为输出格式。 现在、.obj 和.bin 文件都在生成后生成。
所需的链接器设置:
MEMORY
{
PAGE 0:
FLASHHG : origin = 0x300000, length = 0x010000 /* on-chip FLASH */
FLASHF : origin = 0x310000, length = 0x008000 /* on-chip FLASH */
FLASHA : origin = 0x318000, length = 0x027F7E /* on-chip FLASH */
FLASHACRC : origin = 0x33FF7E, length = 0x000002 /* on-chip FLASH */
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
CSM_PWL : origin = 0x33FFF8, length = 0x000008
}
SECTIONS
{
GROUP : > FLASHA
{
.econst
.cinit
.text
}
}
构建后、.map 文件会确认设置、而且我可以看到 econst、cinit 和文本段的地址连续放置在 FLASHA 中。
然后、我使用 Uniflash 刷写目标、而我们的程序无法正常工作。 我从 FLASHA 的起始地址导出了存储器内容(.bin 文件中的字节数)。 将其与.bin 文件的内容进行比较、它们是相同的。 我还在刷写.out 文件后导出了相同的存储器内容、而 FLASHA 也是相同的。
我还尝试使用 Uniflash 刷写.bin 文件并指定加载地址、但程序仍然无法正常工作。 
你有什么想法,为什么这不起作用,或如果我做了一些错误的事情?