主题中讨论的其他器件:TM4C123、 TM4C123GH6PM、
工具/软件:Code Composer Studio
在 CCS 7.1.0.00016安装中 、所有 TM4C123和 TM4C129器件的 ROM 大小在 GEL 文件中指定为0x00008c00字节:
GEL_MapAddStr (0x01000000、0、0x00008c00、"R"、0); /* ROM */
从数据表中不确定实际的 ROM 大小、但运行测试程序、从0x01000000 ROM 基址 开始的递增地址读取数据、直到出现总线故障、ROM 大小为:
- ROM 版本 为0x26e 时、TM4C123GH6PM 的0x8800字节
- 0xe700字节、用于 ROM 版本 为0x301的 TM4C1294NCPDT
GEL 文件中的存储器映射旨在阻止 CCS 调试器访问地址、这会因未映射而导致总线故障。 由于器件中的实际 ROM 大小与在调试使用 ROM 函数的程序期间 GEL 文件中的存储器映射中指定的大小不同:
a)对于 TM4C123GH6PM、GEL 存储器映射大于实际器件 ROM、这会导致调试器报告形式为"Cortex_M4_0:读取长度0x2d8第0页上0x1008800处的存储器块时遇到问题: 调试端口错误"。 0x01008BFF、在 GEL 文件存储器映射中标记为可读 ROM 空间、但实际上并未映射到存储器。
b)对于 TM4C1294NCPDT、GEL 存储器映射小于实际器件 ROM。 如果程序在 ROM 函数内的 GEL 文件存储器映射中未标记为可读的地址处停止、则 CCS 调试器会报告"Memory map prevented reading"、而不是反汇编 ROM 函数。 例如 、ROM 版本0x301中地址为0x1009fe2的 ROM_UARTCharPut 函数可能会发生这种情况。
TM4C123和 TM4C129器件的实际 ROM 大小是固定的、以便可以更新 CCS GEL 文件以匹配 ROM 大小、还是 ROM 大小可以随器件版本的变化而变化?