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/EK-TM4C1294XL:独立 TivaWare 库与专为 TI-RTOS 重建的库之间的兼容性

Guru**** 2465890 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/662274/rtos-ek-tm4c1294xl-compatibility-between-standalone-tivaware-lib-and-the-one-rebuilt-specifically-for-ti-rtos

器件型号:EK-TM4C1294XL

工具/软件:TI-RTOS

在 Eric Wilbur 的 RTOS 2日专题讨论会上,观看者被警告说*Ware 库是专门为在 RTOS 中使用而重建的。 我不熟悉 TI 的 RTOS、在某些情况下、直接调用 TivaWare 库函数调用可能是实现特定项目的更快方法、并且可以降低学习和过渡到 RTOS 的复杂性。 虽然我真的很喜欢 RTOS 提供的功能、但仍有一个问题(我搜索了一段时间)不清楚、那就是如何知道 TivaWare 的哪些部分与 RTOS 不兼容、即使它们*兼容*、哪些部分可能会导致冲突。 我已经尝试在 RTOS 文件路径和独立文件路径中比较 TivaWare 文档、但除了一些版本控制方面、它们似乎没有太大的差异、所以我觉得它没有特别说明。

由于我还没有找到答案、因此我考虑的方法是:

  1. 删除 tirtos_XX_XX_XX_XX 路径中不直接包含的 TivaWare 库的任何内容、以便我知道我只使用 RTOS 的 Tiva 库
  2. 编写/构建应用程序
  3. 如果 TivaWare 调用 error out、请深入研究 RTOS 库以确认函数存在并被正确调用。 如果问题仍然存在、请从高处寻求帮助(TI 的 Mount Olympus E2E)

如果这是可行的、这就是它必须是怎样的、那么、我想知道其他人是否已经有同样的顾虑并找到了更明智的解决方案。

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

    我将把这个问题转交给 RTOS 团队、以供进一步评论、但要谈几点...

    问题1。 这一点尤其重要、因为用于 TM4C 的最新 TI-RTOS 是使用以前的 TivaWare 版本构建的、因此您不希望 TivaWare 上存在交叉污染。 TI-RTOS 安装包含所用版本的完整 TivaWare 文件夹、因此您应该只有该文件夹的链接并使用这些 API。

    至于导致冲突的原因以及不会导致冲突的原因、一般而言、您需要考虑这些函数在 MCU 中执行的操作以及它们与运行的 RTOS 之间的关系。 如果您正在修改中断、例如启用中断以修改矢量表、那么如果使用 TivaWare API、您可以改变 RTOS 的配置方式。 此主题 中出现了一个问题的示例:e2e.ti.com/.../2347913

    这只是很多情况中的一个、但我想为您提供一些有关 TivaWare 可以干扰 TI RTOS 的上下文、因为您曾评论过想知道直接 TivaWare 库调用何时会更有用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alberto、

    出于以下原因、我们在 TI-RTOS 中提供了 TivaWare
    它使构建 TI-RTOS 示例变得更容易。
    2.我们随附测试结果。
    3.我们重建了具有硬浮点支持的 GCC 库。

    我们在中列出了对 TivaWare 所做的修改 \products\TivaWare_C_Series- \TI-RTOS.README 文件。 基本上、我们只是删除了一些目录以使安装更小、然后重建 GCC driverlb、grlib 和 usblib。 我们没有更改任何源代码。

    除了不使用 driverlib 将 interrupts...us插入内核的 Hwi 模块之外、您可以自由使用任何 TivaWare 调用。 您甚至可以有一个严格使用 driverlib 调用且不由内核管理的中断。 我们将这些零延迟中断称为(内核会增加零延迟)。 请查看 SYS/BIOS 用户指南以了解更多详细信息(和限制)。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我的回复延迟了一段时间、我不得不处理另一个项目。 感谢大家的回答、尤其是 Todd、清晰度和方向性都很好! 此信息极大地简化了操作