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.

[参考译文] TMS570LC4357:tms570lc EMIF 32 位错误访问

Guru**** 2751945 points

Other Parts Discussed in Thread: TMS570LC4357

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1585752/tms570lc4357-tms570lc-emif-32bit-wrong-access

器件型号: 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 寄存器可帮助识别问题发生的时间和原因?

 

谢谢