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/TMS320F28375D:将现有工程迁移到新的 SYSBIOS/XDC 版本

Guru**** 2426510 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/745301/rtos-tms320f28375d-migration-of-existing-project-into-a-new-sysbios-xdc-version

器件型号:TMS320F28375D
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

将现有 C2000项目迁移到 SYSBIOS 6.73.01.01 / XDC 3.50.08.24时、编译器会标记有关丢失文件、具有错误参数数量的函数和未解析符号的数百个错误。 迁移到新的 RTOS 版本时、最佳做法是什么? 我们是否应该使用 SYSBIOS 启动一个新项目并将文件导入其中(这对于这个特定的应用程序来说会很麻烦、因为它有很多文件)? 有哪些备选方案?

谢谢!

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

    您应该只能更改正在使用的产品版本(即 SYS/BIOS 和 XDCtools)。 我将查看6.73中的发行说明、以了解您是否还需要更改编译器版本以及任何其他兼容性中断。 您从哪些版本的 XDCtools 和 SYS/BIOS 迁移?

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    客户使用的是 XDC 版本3.24.6.3和 SYS/BIOS 6.35.4.50。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Lenio、

    这是一个较大的跳转、但应该起作用。 您使用的编译器版本是什么? 6.35 BIOS 使用 C28 6.1.0编译器、BIOS 6.73使用16.9.1。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好。 编译器版本为6.2.11。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    编译器版本为6.2.11
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我知道编译器在哪里进行了一些更改、您可以尝试使用16.9.x 吗? 如果可行、我可能建议使用 v16.9.LTS、甚至 v18.14.4.LTS。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 这里看到16.9.1.LTS:www.ti.com/.../16.9.1.LTS

    您希望我尝试使用的版本是吗? 我注意到安装程序似乎不再以 c:\ti 为目标。

    此外、我似乎安装了16.9.3.LTS。 这是否能用于这些目的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jason、

    16.9.3.LTS 应该可以。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    16.9.3.LTS 编译器是否解决了此问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉、为了实现本周的冲刺目标、我们不得不暂停这项工作。  我将从星期三的最早开始,可能到星期一的时候再研究这一点。  我将向您汇报。  谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没问题。 手指交叉:)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有更新?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    客户首选我们只在 BIOS 之外配置 ISR、而不是现在升级。 Lenio 提供了此链接、其中包含以下说明: http://processors.wiki.ti.com/index.php/SYS/BIOS_for_the_28x?keyMatch=rtos%20high%20priority%20interrupt&tisearch=Search-EN#Minimal_Latency_Interrupts 我将 ISR 直接插入到矢量中、问题似乎不再出现。

    我想跟进这个 wiki 页面上有关这些要点的问题:

    "为了整合为每个中断执行寄存器保存和恢复的代码、SYS/BIOS 提供了一个中断调度程序、该调度程序会自动为中断例程执行这些操作。 使用 Hwi 调度程序允许用 C 语言编写 ISR 函数。除了保留中断线程的上下文外、SYS/BIOS Hwi 调度程序还会编排以下操作:

    • 在中断处理期间禁用 SYS/BIOS Swi 和任务调度
    • 在每个中断的基础上自动管理嵌套中断。
    • 调用任何已配置的"开始" Hwi 挂钩函数。
    • 运行 Hwi 函数。
    • 调用任何已配置的"结束"Hwi 挂钩函数。
    • 在中断处理后调用 Swi 和任务调度程序、以执行由 Hwi 函数内的操作引起的任何 Swi 和任务操作。

    默认情况下、所有由 SYS/BIOS 静态或动态创建的 Hwi 中断都被路由到中断调度程序。"

    除了使用 interrupt 关键字之外、是否还需要为描述为调度员正常执行的管理函数设置任何其他安全措施?  缓冲区管理方案是安全的、但只想检查、因为该部分中链接的 PDF 仅在必要时警告使用此方法。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    零延迟中断的关键点是不进行任何内核调用。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    顺便说一下、在阅读该页面上链接的 PDF 时、我认为如果我有问题、我可能已经找到了来源。 我使用的是应用于所有 ISR 的关键字中断的 DefaultISR_BIOS.c。 当通过调度程序调用 ISR 时、这似乎会造成问题。 大概这与调度员已经在管理上下文有关。 我可能应该早点考虑、但我认为这可能是个问题、因为我不知道所有调度员都在做什么。 删除关键字并通过正常过程进行配置似乎可以解决堆栈问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jason、

    我有点困惑。 您是否为内核派送的 ISR 使用 Hwi_create、为非派送的 ISR 使用 Hwi_plug (即零延迟中断)? 对于派单的函数,您应该提供一个 C 函数(没有 interrupt 关键字)。

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

    我可以将其标记为已解决吗?

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

    是的。  谢谢你。