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/RM48L952:RTOS 任务时序

Guru**** 2440240 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/627078/rtos-rm48l952-rtos-task-timing

器件型号:RM48L952

工具/软件:TI-RTOS

您好!

我目前正在开发一个基于 RTOS 的程序、该程序将 SPI 端口1和2配置为相互通信:SPI1作为主器件、SPI2作为从器件。 我目前只有一项任务涉及 SPI 寄存器的设置:

当前任务

我想将此任务拆分为两个单独的任务:任务1将启动 SPI2、任务2将插入 SPI1。 我是否需要担心任务的同步? 或者、我是否可以简单地将它们各置于不同的任务中、而无需其他顾虑?

Calvin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除非使用 SPInENA 引脚、否则需要确保首先初始化从器件。 在传输完所有数据之前、您不想再次运行 SPI2例程、因此我认为将其保留在一个任务中更有意义。 但是、我不知道您的大画面是什么。 当您使所有代码正常工作时、您真正想要做什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从长远来看、我希望我的程序使用(可能)三个 SPI 端口从3个 ADC 中提取数据。 我将有两个缓冲区:从 SPI 端口传入的数据将被压入一个缓冲区(很可能使用奇偶校验进行分离)、当第一个缓冲区已满时、我将切换到另一个缓冲区。 此时、当前已满的缓冲区将把数据推送到 uSD 卡中。 (在大多数情况下)是我所看到的更大的画面。 目前、我只是想更好地了解任务之间的协调方式(这导致了涉及 SPI 端口1和2的两个任务设置的实验)。 我当前没有将 Nena 引脚用于 SPI1、但对于 SPI2、我将 Nena 引脚配置为 CS 引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、在最终应用中、您无需担心设置从器件 SPI、因为 ADC 将是从器件。 现在、我建议您将主器件和从器件保留在同一任务中。 将从器件的 SendspiAndGetData()函数放在单独的任务中将不起作用,因为这样该函数将在 POLLING 函数 spiTransmitAndReceive()函数时被重复调用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    听起来不错。 我还想花点时间来感谢您。 在我完成这个过程时、您为帮助我了解这个过程提供了巨大帮助。 非常感谢!