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.

[参考译文] CC1312R:从主应用程序代码中的线程(TI-RTOS)内启动和停止传感器控制器任务

Guru**** 2486065 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1188574/cc1312r-starting-and-stopping-a-sensor-controller-task-from-within-a-thread-ti-rtos-in-the-main-application-code

器件型号:CC1312R

TI 朋友和家人(LP RF 团队)、

我们的客户以前在 CC1312中针对低功耗传感器应用进行了设计。

它们使用连接到温度传感器(热敏电阻电路)以及电池电压监控器/感应的传感器控制器、将现有 CC1312设计改用于其他用途。

"对于项目实施、他们正在从主应用程序代码中的线程(TI-RTOS)内启动和停止传感器控制器任务。   通过调用 scifExecuteTasksOnceNbl()执行此传感器控制器任务一次,而通过调用 scifOsalTaserTaskAlertCallbac()和 scifOsalEnableTaskAlertRegisterInt()注册并启用任务警报回调。  当他们调用一次传感器控制器任务(例如测试传感器类型 A 或测试传感器类型 B)、然后为传感器控制器任务注册任务警报回调(例如测试传感器类型 C)时、他们会执行不同的操作。   当在满足某些条件后使用任务警报回调时,任务警报回调被调用 scifOsalDisableTaskAlertInt()禁用,而传感器控制器任务被调用 scifStopTasksNbl()停止。  这一切都是为上下文而提供的。"

现在、他们对如何正确启动、停止、执行一次、启用和禁用任务警报回调有一些怀疑、以避免他们怀疑的某些问题、因为传感器控制器确实会超时。  下面是他们在项目中早期定义的主要内容的屏幕截图(我们可以收集更多代码):

本质上、在大约100 (或200)次回调中、回调没有响应。  但仅限于温度传感器(电池感应似乎从未出现故障)。  scifosalinit()和 scifwaiton()看起来处理正确,scifInit()也作为上面显示的 FFTThread 的一部分被正确处理(调用一次)。

本主题旨在让这场对话更顺利-客户/首席工程师也会收到上述通知。

与嵌入式 CC1312代码本身相比、他们还在尝试确定"故障"是否是其测试脚本的一部分、因此请继续关注这一点。

感谢您在此期间提出的任何意见或建议。

Ty、

是的

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

    尊敬的 Chris:

    我们将咨询我们的传感器控制器专家。

    此致、

    Arthur

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

    尊敬的 Chris:  

    如果 它没有持续失败(一段时间内只有一次)、则很难对失败进行评论。 是否可以查看他们的传感器控制器任务?

    此致、

    SID

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

    谢谢 Arthur 和 Sid。  我同意。  下一个逻辑步骤是让我们与客户一起查看传感器控制器任务代码。  我已将他们链接到此主题、并希望在这里直接收到回复或离线回复。  敬请期待。  谢谢、Chris

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

    大家好、我有屏幕截图可以分享、以保护天生(客户)、如下所示:

    谢谢、
    Chris

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

    尊敬的 Chris:  

    对传感器控制器任务的调用可能同时从多个位置进行(从电池读取和温度传感器读取)。

    Sensor Controller Studio 帮助的疑难解答部分提供了他们应该尝试的一些调试步骤。  

    要访问此信息,请在 Sensor Controller Studio 中->单击帮助菜单->故障排除。  

    此致、

    SID

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

    谢谢 Sid。  我已要求离线工程师通过电子邮件向我评论此 e2e 离线。  敬请期待、再次感谢您的参与。

    Chris

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

    SID 和团队,

    其他反馈:

    ----

    "不应发生这种情况、因为测试脚本和 DUT 上的 FW 应该(通过 UART)进行交互:

    1. DUT 在引导时等待测试脚本发送"Start test"命令。
    2. DUT 应以"Test started"消息进行响应。
    3. 从这一点开始、测试脚本依次逐一发送各种测试命令、例如:
      1. 测试仪通过测试脚本发送"电池测试"命令。
      2. DUT 接收命令、启动 SC 任务以获取电池的 ADC 读数。
      3. SC 任务结束后,主应用程序会处理 ADC 读数以计算电池电压。
      4. DUT 向运行测试脚本的测试仪发送"电池电压为 X.YZ 伏特"消息。
      5. 测试仪收到消息后、记录信息并准备好执行下一个测试命令。 在等待消息响应时 、除非发生超时、测试脚本应位于该位置。

    因此、我们不应同时进行多个 SC 任务调用… 但是、由于测试脚本超时、我们可能无意中多次调用、也许测试脚本的超时比 SC 任务结束以及我们请求 SC 任务从其他位置再次启动所花费的时间"快"。 这种情况也不应发生、因为在接收到超时或错误消息后、测试仪应退出测试(不发送任何应再次启动 SC 任务的进一步测试命令)。

    我们将再次查看疑难解答文档、并进一步研究测试脚本端的超时。"

    ----

     此致、

    Chris

     

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

    尊敬的 Chris:

    如果他们确实有两个相同的任务:FFT_BatteryRead 和 FFT_TempSensorRead、并且他们看到他们只在 temSensorRead 中看到故障、我想说、如果只有重复调用此任务时失败、则值得测试。 如所示、请勿调用 BatterRead 任务或任何其他任务。 希望这将允许 tempSensorRead 任务完全执行。 这有望帮助隔离问题。  

    此致、
    SID

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

    谢谢 Sid、最新消息是"

    我将继续进行建议的测试。

     

    实际上、我们只有一个传感器控制器任务、我们正在从这两个函数 FFT_BatteryRead 和 FFT_TempSensorRead 中启动和停止该任务。

    这两个函数从同一个 TI-RTOS 线程/任务内调用、此 TI-RTOS 线程/任务内的开关情况语句选择要调用的函数、但关于这两个函数中的哪个函数被调用、它们都会启动和停止我们拥有的唯一传感器控制器任务。"

    此致、

    Chris

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

    尊敬的 Chris:

    我们可以等待查看他们是否在仅调用 FFT_TemoSensorRead 并禁用对 FFT_BatteryRead 的调用时看到问题。  

    此致、

    SID

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

    您好 Sid、

    当然可以。 同时:

    "

    我运行了三个实验、其中我向三个不同的 DUT 发送了500次命令、但我甚至一次都没有得到错误。

    我的实验是使用"特殊测试脚本"和"特殊测试装置"完成的、因为"正常测试脚本"将在生产线上设置、 因此、我们需要等待、以便有机会使用实际测试脚本和测试装置对 FW 执行"调试运行"、这可能需要一段时间。

    目前、我们正在考虑修复该问题、直到我们能够在生产线上收集此"调试运行"的新数据、以证明我们没有其他问题。

     我非常感谢您的所有帮助、因为现在我认为一切都是这样。

    "

    好消息。  让我们保持这个线程保持一点打开状态、以防我们听到更多的声音。

    谢谢!
    Chris

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

    尊敬的 Chris:

    感谢您的回复! 我会将您的回复标记为已解决。 您可以随时回复此主题。

    此致、

    SID