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.

[参考译文] RTOS/CC2640R2F:无法在 IAR 中的 ROV 任务详细视图中获取用户定义的任务的信息

Guru**** 2589265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590729/rtos-cc2640r2f-unable-to-get-infomation-of-user-defined-tasks-in-rov-task-detailed-view-in-iar

器件型号:CC2640R2F

工具/软件:TI-RTOS

你(们)好,先生

我在 IAR 中看不到用户定义的任务的详细信息。

例如,在原始示例 multi_role 中:

在开始阶段,当 IAR 在 main 的入口暂停时,任务视图是正常的,只有空闲任务被创建。

然后我在 iCall_createRemoteTasks()之后设置一个 beakpoint,优先级较高的远程堆栈任务将出现在任务视图中。

之后 ,GAPRole_createTask()和 multi_role_createTask()不会在此视图中添加额外的信息。

我甚至在 mutl_role 的主循环中设置断点(在 multi_role_taskFxn 中输入 iCall_fetchServiceMsg 之前),当我的 XDS 在断点中停止时,在详细任务视图中仍有两个任务(优先级为0的空闲任务和优先级为5的堆栈任务)

有人可以帮助我吗?

我的 SDK 是 simplelink_cc2640r2_sdk_1_30_00_25、IAR 版本为8.11.1。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    user4809770、
    我可以看到 iCall_createRemoteTasks 的源代码、并且可以看到该代码调用 Task_create、这说明了在 ROV 中显示在那里创建的任务的原因。 但是、可以使用不同的机制创建任务、然后根据任务的创建方式、ROV 可能能够也可能无法检测到任务。 您能否将我指向 GAPRole_createTask 和 multi_role_createTask 的 include 或源文件? 这可能是 ROV 中的错误、或者我们尚未实现使这些函数创建的任务可见的功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 BLE 堆栈中使用原始示例 multi_role simplelink_cc2640r2_sdk_1_30_00_25、并且未进行任何修改。
    源文件可在"examples\rtos\cC2640R2_LAUNCHXL\blestack\multi_role\src\app"中找到

    在这里、我粘贴一些条目代码:

    空 GAPRole_createTask (空)

    Task_Params taskParams;

    //配置任务
    Task_Params_init (&taskParams);
    taskParams.stack = gapRoleTaskStack;
    taskParams.STACKSIZE = GAPROLE_TASK_STACK_SIZE;
    taskParams.priority = GAPROLE_TASK_PRIORITY;

    Task_construct(&gapRoleTask、gapRole_taskFxn、&taskParams、NULL);


    void multi_role_createTask (void)

    Task_Params taskParams;

    //配置任务
    Task_Params_init (&taskParams);
    taskParams.stack = mrTaskStack;
    taskParams.STACKSIZE = MR_TASK_STACK_SIZE;
    taskParams.priority = MR_task_priority;

    Task_construction (&mrTask、multi_role_taskFxn、&taskParams、NULL);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从这些来源可以看出、mrTask 和 gapRoleTask 应该出现在 ROV 中、但我似乎无法将应用程序与 IAR 8.11工具和最新的 TI-RTOS 内核链接起来。 清理并重建项目后、您能否附加完整的控制台输出?
    此外、如果您可以发布可执行文件、它可以帮助我确定 ROV 的哪个组件无法检测到这些任务。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我在这里上传构建日志和 bin 文件。 为了最小化文件大小、我将其压缩。

    e2e.ti.com/.../7444.multi_5F00_role.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以重复这个问题。 任务 mrTask 和 gapRoleTask 都是通过调用 Task_con构 图创建的任务。 我们通过解析输出文件中的 DWARF 段来找到此类任务、但 DWARF 解析器并不完整、每当 IAR 开始使用一些新的 DWARF 功能时、我们需要更新解析器。
    在我们修复错误之前、您可以尝试两种权变措施。 此处介绍了第一个示例:
    rtsc.eclipse.org/.../Runtime_Object_Viewer
    该文档是为 CCS 编写的、但逻辑是相同的。 在可执行文件所在的同一目录中创建 ROV.json 文件、并从映射文件中获取对象地址。
    另一种权变措施是使用 IAR IDE 7.80、前提是您可以并且值得在 ROV 中看到这两个任务。

    一旦我验证错误的原因是我在上面猜到的、我就会更新这个线程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。 我今天要将我的项目降级到 IAR 7.80。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只是想确认这是一个错误。 我将尝试将修复程序放入 XDCtools 3.50.2中、有时是在五月。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不应将 IAR 8.x 与当前 SDK (截至2017年4月/5月)一起使用。  

    查看支持的 IAR 版本的发行说明。

    IAR 8.x 是全新的。  SDK 将在未来几个月进行更新以支持 IAR 8.x。