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:Code Composer Studio:FreeRTOS ROV 异常

Guru**** 2905440 points

Other Parts Discussed in Thread: AM2434

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1570620/am2434-code-composer-studio-freertos-rov-exception

器件型号:AM2434


工具/软件:

您好:

我使用基于 Eclipse 的 Code Composer Studion (CCS v12.8.1) 中的运行时对象视图 (ROV) 来查看操作系统内核 (FreeRTOS) 任务实例。
XDCtools 为 v3.62.01.16、 包含在基于 Eclipse 的默认 CCS 安装中。

我调试 应用(芯片 AM2434)、该应用从 INDUSTRIAL-COMMUNICATIONS-SDK AM243X-AM243X v11.00.00.13 框架嵌入了您的 EtherNet/IP 通信。
这几乎是您的 EIP 示例、但堆被放置在外部 RAM(起始地址 0x8400_0000、大小为 0x0200_0000)上。

根据脚本:
C:\ti\ind_comms_sdk_am243x_11_00_00_13\MCU_PLUS_sdk\source\kernel\freertos\ROV\freertos.ROV.js
我成功检查了构建二进制文件中是否存在“_sys_memory"和“和“__SYSMEM_SIZE"(“(根据(根据映射文件)、这些符号按预期设置(如上所述的 START 和 SIZE)。

但您的运行时对象视图 (ROV) 有一个例外、请参阅屏幕截图。
注意固件正常运行。 因此、我想这是 ROV 问题。

请告知我如何克服此 ROV 异常。
我真的想在 EtherNet/IP 初始化后看到“任务实例 (FreeRTOS)“。

此致、
维特·特里斯卡


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

    你(们)好  

    您尝试读取的存储器区域似乎无法访问。 请共享应用的 MMU 设置。

    此致、

    Tushar

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

    已附加屏幕截图


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

    您能分享一下吗 example.syscfg & *。map 向我们提交文件?

    我可以看到总共配置了 11 个 MPU 区域。 我只能看到这里配置了一个。 您能否确认该区域未被任何其他 MPU 设置重叠?

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

    请提供您的电子邮件地址。
    我无法在此处发布这些文件。

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

    如果您计划公开分享、请通过私人 E2E 聊天分享。

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

    2 天前直接发送给您。
    有什么进展吗?

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

    我已收到文件、将对此进行审核。 请等待一段时间恢复。

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

    我通过 e2e 私人聊天提供了更新后的文件。 请向我们更新结果。

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

    您好、按照您的建议、ROV 问题不是由 MPU 引起的。

    状态:工业 SDK 的堆段“.sysmem"和“和文本段“.text"均“均放置在外部存储器上、其余部分放置在 OCSRAM 上。
    不过、 ROV(运行时对象视图) 工具在访问时抛出异常 “任务实例 (FreeRTOS)“ 视图中。

    当我将堆段“.sysmem"临时“临时置于片上 SRAM (OCSRAM) 上时、ROV(运行时对象视图)工具可以正常工作、并且可以毫无例外地访问“Task Instances (FreeRTOS)“视图。

    您能否提供有关如何使 ROV 在将“.sysmem"段“段放置在外部存储器中时正常工作的建议? 是否存在与此内存映射相关的推荐配置或已知问题?

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

    感谢您按照私人 E2E 聊天窗口的建议进行实验。 我可以看到、当您将堆部分放在 OCSRAM 上时、一切都按预期运行。 但一旦将该区域移至外部 RAM、ROV 就会断开。

    当您将其他部分保留到外部 RAM 时、ROV 仍然起作用。 仅当堆段移到外部 RAM 时、该操作才会失败。

    您能否在 CCS“Memory Browser“窗口中的错误消息中指定的存储器地址处检查存储的内容?  

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

    是的、正确、只有在将“.sysmem"放置“放置在外部 RAM 时、ROV 接缝才是错误的。

    有几个 sceenshots 连接... (最初基于 TI 的 EtherNet/IP 通信示例)。


    1) 存储器浏览器(带有 ROV ):



    2) 映射文件中的堆 (NoLoad):


    3) 和我自己的 RTOS 任务控制台输出


    -----

    注意:

    当我将“Type"从“从“NoLoad"更“更改为“Load"时“时、FreeRTOS 任务 (ROV.  “任务实例 (FreeRTOS)“ ) 显示正确... (则 ROV 工作正常,也不例外)。



    问题:
    为什么应将堆保留在“加载类型“中?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    或更详细地以图形方式总结:


    类型:LOAD -> ROV 工作:


    键入:NOLOAD -> ROV doent 的工作:


    为什么?
    为什么要使用堆上下文?

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

    您好、

    Tushar 目前不在办公室,如果有一个等待他跟进,你可以期待下个星期结束。

    谢谢、

    Vaibhav

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

    尊敬的 Vit:

    感谢您进行实验。 我仍在检查当您将堆段保留为外部 RAM 上的空载时、ROV 为什么会中断。

    映射文件的堆(带 NoLoad):

    查看映射文件、好像您只对堆段使用了 0x10 大小的存储器。 是否可以尝试将堆的大小更改为所使用的大小(即 0x10)?  

    当堆类型为 LOAD 或 NOLOAD 时、您还可以比较这两种情况下的映射文件吗?

    此致、

    Tushar