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/MSP430FR5969:真正令人不满意的问题

Guru**** 2604395 points
Other Parts Discussed in Thread: MSP430FR5969, SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/580297/rtos-msp430fr5969-really-noob-question

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

工具/软件:TI-RTOS

我编写了一个仅包含用于 MSP430FR5969的 driverlib 的固件。 复杂性越来越高、我开始考虑编写任务调度程序。 当有人已经提供了具有线程处理、内存保护等功能的免费 RTOS 时、您可能会看到这种情况的发展方向、无需重新设计。

现在、我要问的是、从直接使用 DMA 通道、计时器和中断转向 RTOS 的硬件抽象模型有多困难? 首先、我找不到有关 RTOS 使用哪些资源和/或如何配置使用哪些 DMA 通道的文档。 对我的 ADC 使用与 SPI 驱动器所使用的 DMA 通道可能会让人感到眼泪。  

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

    您好 Olli、

    我建议您将应用移植到 RTOS 项目(例如驱动程序/空)中。 这是入门指南中内容的简短版本(请参阅您使用的是 IAR)。 首先获取适用于 MSP43x 的 TI-RTOS、将其安装到 c:\ti 中、然后启动 CCS 以让其被发现。 导入5969 LaunchPad 的驱动程序/空项目(我们支持开箱即用)。 我会选择"standard"空、而不是 empty_min、因为您需要调试功能来进行新的开发。 稍后、您可以比较 empty_min.cfg 与 empty.cfg (TI-RTOS 配置文件)以优化速度和空间。 在开发过程中、您将了解如何捕获堆栈溢出等!

    一旦您确认空的工作正常(它只是闪烁一个 LED、但大多数内核已经存在、所以不要让尺寸吓到您、因为它是初始固定成本并且启用了所有调试功能)、您就可以将应用程序的各个部分移动过来。 内核管理矢量表、因此、如果你创建一个 ISR、请将其更改为 Hwi_create (或 Hwi_con构)。 内核也是默认值、它管理用于计时的单个计时器(例如 Task_sleep)。 您可以插入将在您请求的时间间隔内调用的 ti/sysbios/KNL/Clock 函数(您可以查看 SysBIOS/时钟示例作为参考)。 如果默认计时器的间隔不适合您、则可以对其进行配置、或者您可以创建自己的 ti/sysBIOS/hal/计时器实例。

    提供了功能驱动程序(UART、I2C 等)。 我们提供了每个示例、并可以查看 doxygen 文档以了解更多详细信息。 您需要查看此信息、以查看它们是否具有您所需的功能。 如果不是、您仍然可以使用驱动程序、但请注意、您需要更改中断创建/处理(例如、不要使用关键字"interrupt")。

    内核还可以管理异常处理。

    我们现在正在为此制定具体的培训/白皮书。 我有兴趣获得您的反馈、并可能分享一些早期(和初步)草稿。 请随时与我的"朋友"联系、我们可以讨论这一离线问题。

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我实际上有一个使用 MSP430FR5969的真正嵌入式系统。 因此、一阶业务可能会创建一个"板"文件。 在我的固件中、我将在设置例程中手动设置端口。 假设使用 SYSBIOS、这将由板级配置文件处理。 在任何情况下、在考虑移植固件之前、我都需要做一些非常紧迫的事情。 当然、修复基于中断的 SPI 状态机是一项浪费精力的工作、但如果不是更早的话、这也是上周需要完成的另一项工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们可以关闭这个线程吗?

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