AWR6843AOP: EDMA attempted to read or write to invalid memory

Part Number: AWR6843AOP

I have added some code to the People_Tracking demo , and the compilation went through successfully. However, after running for a while, it stopped. Through debugging, I found that an error was reported in MSS, indicating that EDMA attempted to read or write to invalid memory. The puzzling part is that the modifications I made were on the DSP side, and they did not involve the use of EDMA.

  • 您好

    根据您的描述,我给您相关建议,请您参考:

    MSS(Multi-Core Shared Memory)报错提示EDMA(Enhanced Direct Memory Access)试图读取或写入无效内存,可能由多种原因引起。尽管你提到你的修改仅在DSP端,并没有直接涉及到EDMA的使用,但这并不排除间接影响的可能性。下面是一些可能导致这种情况发生的原因和相应的解决步骤:

    1. 内存越界
      • 检查DSP端代码,确保没有数组越界或指针错误,这可能会导致访问到不属于你程序的内存区域。
      • 特别注意任何与共享内存交互的代码,确保访问是合法的。
    2. 同步问题
      • 如果你的DSP代码与MSS或其他核心有数据交互,确保同步机制使用正确,以避免内存访问冲突。
      • 检查是否所有对共享内存的访问都是原子性的,或者在访问期间是否进行了适当的锁定。
    3. EDMA配置
      • 尽管你没有直接配置EDMA,但可能其他部分的代码(如库函数或框架代码)在后台使用了EDMA。检查这些部分是否有错误配置或误用。
    4. 中断服务程序(ISR)
      • 如果你的DSP代码中有ISR,确保它们在处理中断时不会干扰到MSS或EDMA的操作。
      • 检查ISR中是否有不恰当的内存访问或操作。
    5. 电源和时钟管理
      • 检查系统的电源和时钟配置,确保MSS和EDMA的时钟和电源设置正确。
      • 有时,电源或时钟的不稳定也可能导致类似的错误。
    6. 回退测试
      • 如果可能,尝试回退到修改之前的代码版本,看看问题是否仍然存在。这有助于确定问题是否由你的修改引起。

    在排查问题时,建议从简单的检查和测试开始,逐步深入。同时,保持代码的备份和记录,以便在需要时回退或比较不同版本之间的差异。

    以上建议请您进行尝试,希望能帮助到您。

  • 非常感谢,我将按照您的建议逐一排查。