Thread 中讨论的其他器件:UNIFLASH
工具/软件:
大家好、TI 专家。
遇到有关 CCS 中加载和运行地址设置的一些问题。
使用当前 TI 工具链时、当生成.appimage/.MCELF 时、物理/加载地址将被忽略、段为 a)由 RAM/RUN 地址排序、段为 b)合并为单个数据"blob"、然后将该数据刷写到特定的闪存偏移量。
为了给出问题背后的一些目的/目的、实际上我们希望控制某些段最终在.mcelf 中、随后在闪存中的何处、尤其是校准段。 这样才能对各个段进行校验和/哈希处理。 理想情况下、这将通过控制每个段的加载地址来完成。
当我尝试在 CCS 中为段配置基于闪存的加载地址时、CCS 调试器似乎会将这些地址解释为 RAM/RUN 地址、从而导致 CCS 调试器无法工作。
例如、如果我为矢量表使用默认加载/运行地址(0x0到 TCMA 中)、CCS 调试器可以根据需要对该段进行编程:
链接器:
运行 CCS 调试器:
如果我将加载地址更新为基于闪存:
运行 CCS 调试器:
可见、对于选项2 (即将加载地址设置为基于闪存)、CCS 调试器现在无法再对 Vectors 段(PT_LOAD[0])进行编程。 查看存储器映射:
可能目前该段未再放入 R5SS0_CORE0_TCMA_RAM 中。
因此、在我看来、CCS 调试器使用段加载地址作为需要运行段的地址。 这似乎违反直觉、因为这基本上使所有段的"加载地址"选项无用、因为 CCS 调试器无法正常工作。
此假设是否正确? CCS 调试器没有使用 RAM/运行地址进行调试吗? 是否有办法使 CCS 调试器使用运行地址而不是加载地址进行调试?
谢谢、
RENs