Other Parts Discussed in Thread: TMS570LC4357
器件型号: TMS570LC4357
使用处理器 TMS570LC4357(器件修订版本 B)时、通过 EMIF 读取数据存在问题。
数据被读取为 32 位、即为每个数据读取两个 16 位字。 使用从存储器复制到 CPU 存储器的数据部分不正确:复制循环中复制的第一个 32 位字不正确、其余字是正确的。 总线测量结果表明、在循环的前面或最初在循环中有一个 16 位访问、但我们无法从生成的汇编器代码中看到这种访问。
EMIF 在选通模式下使用 CS4N 并启用异步等待、具有以下寄存器设置:地址 0xCFFE804、数据 0x000000FF 和地址 0xCFFE818、数据 0xC4600301。 测量 EMIF 访问时、它显示在一些正确的 32 位访问之后、会发生单次半 32 位访问(即芯片选择仅激活一次)、然后再次进行 32 位访问。 此外、当读取 0x68090000 及以上等地址时、读取偏移量 0x8 始终返回不正确的数据 0x0、但后续读取会返回正确的数据。 如果连续读取偏移 0x8 两次、则第二次读取会产生正确的值。
除了读取 16 位数据(事实并非如此)、否则可能导致这种情况? 是否有任何 CPU 寄存器可帮助识别问题发生的时间和原因?
谢谢