• 函数执行到特定位置卡死,该位置只有内存和UART寄存器访问,单步无问题。
  • 查找问题:
    • 怀疑UART和SRAM ip有问题,芯片设计提供抓信号的版本
    • 抓SRAM信号,发现有0地址访问。 0地址是DDR区域,还不可访问,程序中未访问0地址
  • 定位:ARM的硬件,为了提高效率,对于配置成normal的内存区域,硬件在遇到一些分支指令时,会有prefetch,硬件根据自己的猜测到内存中进行speculative访问。 我们的程序,触发了ARM硬件的speculative访问0地址,导致A53卡死。
  • 解决方法: 先把DDR的3G空间设置成非法(非normal),这样硬件就不会随机访问这些区域了。
    ARM speculative访问引起的血案

相关文章:

  • 2021-05-14
  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
  • 2022-12-23
  • 2022-02-09
  • 2021-10-10
猜你喜欢
  • 2021-08-23
  • 2021-10-24
  • 2021-06-02
  • 2021-06-08
  • 2021-12-11
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案