MCU 在断点处停止时的意外 DRAM 行为
Unexpected DRAM behavior when MCU stopped at breakpoint
我目前正在使用 Freescale Vybrid (VF6xx) MCU,尝试配置外部 LPDDR2 DRAM 芯片。
我遇到了 DRAM 的一些奇怪行为(内存映射到 0x8000_0000):当在断点处停止时,每次我在调试器中读取 DRAM 时,DRAM 似乎仍然会发生变化。
有谁知道这可能是什么原因造成的?
干杯!
我终于找到了问题的答案。
事实证明,DRAM 设置定义了错误的地址引脚。制造商为定义该位的寄存器提供了推荐值,但事实证明这是错误的。
对于未来的 googlers:Vybrid 参考手册修订版 7 和 8 建议 DDRMC_CR73[APREBIT]=0xA 用于 DDR3 和 LPDDR2。这会将 DDR_A10/CA10 分配为地址引脚。 JEDEC标准指定DDR_A0/CA0作为地址引脚,因此正确的值应该是:DDRMC_CR73[APREBIT]=0x0.
我目前正在使用 Freescale Vybrid (VF6xx) MCU,尝试配置外部 LPDDR2 DRAM 芯片。
我遇到了 DRAM 的一些奇怪行为(内存映射到 0x8000_0000):当在断点处停止时,每次我在调试器中读取 DRAM 时,DRAM 似乎仍然会发生变化。
有谁知道这可能是什么原因造成的?
干杯!
我终于找到了问题的答案。
事实证明,DRAM 设置定义了错误的地址引脚。制造商为定义该位的寄存器提供了推荐值,但事实证明这是错误的。
对于未来的 googlers:Vybrid 参考手册修订版 7 和 8 建议 DDRMC_CR73[APREBIT]=0xA 用于 DDR3 和 LPDDR2。这会将 DDR_A10/CA10 分配为地址引脚。 JEDEC标准指定DDR_A0/CA0作为地址引脚,因此正确的值应该是:DDRMC_CR73[APREBIT]=0x0.