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.

[参考译文] AM2434:ROV:调试期间查看模块时出现“target memory read failed(目标存储器读取失败)“错误

Guru**** 2693225 points

Other Parts Discussed in Thread: AM2434, SYSBIOS, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1594188/am2434-rov-target-memory-read-failed-error-when-viewing-modules-during-debugging

器件型号: AM2434
主题中讨论的其他器件: SYSBIOSSysConfig

您好、

我正在使用 AM2434 和调试功能。 我需要使用 ROV(运行时对象视图) 检查信标、队列和 Mutexes 等内核对象。

但是、当我打开 ROV 视图并选择其中任何一个模块时、会出现以下错误:

 
Error: java.lang.Exception: Target memory read failed at address: 0x701489b00, length: 256 

其他详细信息:

  • 器件: AM2434

  • SDK 版本:8.06.00

  • CCS 版本:12.7.1

  • 调试方法:XDS110

  • 应用程序运行、但 ROV 始终无法读取内核结构。

  • RAM 大小足够 (2MB)、因此我不知道存储器读取为何无效。

链接器文件数据:
移动数据  

R5F_VECS:origin = 0x00000000、length = 0X00000040

R5F_TCMA:origin = 0X00000040、length = 0X00007FC0

R5F_TCMB0:origin = 0X41010040、长度= 0X00008000

non_cache_MEM:origin = 0X70060000、长度= 0x8000

MSRAM:origin = 0X70080000、length = 0X150000

//MSRAM:origin = 0X70080000、长度= 0X1CF000  //用于调试

Flash:origin = 0X60100000、length = 0x80000

USER_SHM_MEM:origin = 0X701D0000、长度= 0X180

Log_SHM_MEM:origin = 0X701D0000 + 0X180、length = 0X00004000 - 0X180

RTOS_NORTOS_IPC_SHM_MEM:origin = 0X701D4000、length = 0X0000C000

}  

MSRAM 禁用线路被称为“用于调试“
启用该行时、其显示错误#10264:内存范围 MSRAM 与现有内存范围 non_cache_MEM 重叠
 
 
如何解决这个问题? 我的要求是、我需要实时查看所有类别的记忆?
 
提前感谢您。
 
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    如何解决此问题? 我的要求是我需要实时查看所有类别的内存?

    若要解决存储器重叠问题、需要确保分配给每个段的内存量不被其他段使用。

    对于 ROV 问题、请告知我们您保留的存储器属性是什么?

    其他内核是否可以访问该存储器区域? 缓存/非缓存?

    此致、

    Tushar

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

    感谢您的答复。

    我在 ROV 中附加了错误的图像、当我尝试查看信标、互斥量和队列、任务模块、内存日志、任务实例时。

    以下是您要求的详细信息:

    1. 使用的内核:
      我正在使用的器件 只有一个内核:R5FSS0-0 。 我的工程中未启用其他 R5F 内核或 M4F。

    2. 内存属性:
      目前、我没有明确地修改代码中的存储器属性。
      所有内存正与一起使用 默认属性 提供的访问权限。
      我已将共享linker.cmd以进行验证。

      e2e.ti.com/.../linker.cmd.dat
    3. 存储器可访问性/共享区域:
      发生错误的存储器区域 位于内部 MSRAM 大得多。
      根据我的理解、R5FSS0-0 可以访问该区域、但它不会有意与任何其他内核共享。
      如果地址位于共享区域内或需要特殊的 MPU/缓存设置、请告诉我、我可以进行相应调整。

    请让我知道我应验证 AM2434 的特定存储器属性或配置、以使 ROV 正常工作。

    感谢您的支持。

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

    尊敬的 Tushar Thakur:  

    关于 AM243x 上的 ROV、我有两个观察结果:

    1.仅当调试器中运行的代码暂停时、ROV 中的重复刷新才有效

    • 当 R5F 内核运行时、ROV 刷新会给出错误:
      “目标内存读取失败“

    • 如果暂停调试器、我可以正确地看到信标、互斥量、队列和任务实例。
      这是 AM243x 上的 FreeRTOS 的预期结果、还是需要任何配置来允许在 CPU 运行时进行 ROV 刷新?

    2. ROV“Stack/Heap Graph“错误
    在尝试打开堆栈图时、我得到:

    • ti.sysbios.heaps does not exist in application configuration

    • ti.sysbios.knl does not exist in application configuration

    我正在使用的器件 AM243x SDK 8.06.00 、使用 FreeRTOS
    因此、我想确认这些错误是否是由该 SDK 版本引起的。

    如果需要其他配置或 SysConfig 设置、敬请告知。

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 AM243x 上、FreeRTOS 是否正常运行、或者是否需要任何配置来允许在 CPU 运行时进行 ROV 刷新?

    我已经在设置中尝试了此操作、并且 R5F 内核似乎不允许调试器在执行期间读取存储器。 由于 R5F 正在执行时、不仅 ROV、CCS 的其他功能(存储器浏览器,表达式视图)也无法访问存储器内容。

    尝试打开堆栈图时、我得到:

    不支持 ROV 的图形视图。

    请参阅以下视频。

    e2e.ti.com/.../ROV.mp4

    此致、

    Tushar