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.

[参考译文] CC2640:在 Sensor Controller Studio 中面临多缓冲输出数据交换问题

Guru**** 2590590 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/605526/cc2640-facing-issue-with-multiple-buffered-output-data-exchange-in-sensor-controller-studio

器件型号:CC2640

您好!

我想为 我的项目使用多缓冲输出数据交换。  

我的项目需要每5ms 处理一次来自传感器的数据。 我通过 SCS 的警报信号唤醒 CPU。  

我想 使用 fwSwitchOutputBuffer()来使用多缓冲输出数据交换。 我已经将缓冲区计数设置为2、这样、如果之前的数据由 CPU 处理、传感器控制器就可以使用一个缓冲区来填充下一个数据。  

我的任务代码(事件处理程序在中断中每5ms 执行一次)如下所示。  

从传感器读取数据;

fwSwitchOutputBuffer();  

应用代码如下  

 scifClearAlertIntSource();

OpBufCnt = scifGetTaskIoStructAvailCount (scif_data_logger_task_ID、scif_struct_output);
 while (opBufCnt)
 {
  opStr =(scif_data_logger_output_T *) scifGetTaskStruct( scif_data_logger_task_ID、scif_struct_output);

   从 opStr 输出缓冲区指针访问 data();//。  

  scifHandoffTaskStruct (scif_data_logger_task_ID、scif_struct_output);

 opBufCnt--;

scifAckAlertEvents ();

我期望 在调用 fwSwitchOutputBuffer()时,当前填充的缓冲区将移交给应用程序,而另一个缓冲区将准备好接受传感器控制器任务中的新数据。  

我的问题如下。  

1.在第一个迭代中,例如,我在 SCtask 中填充了缓冲区-1,值 为1,DID fwSwitchOutputBuffer()

2.主应用程序接收值-1并将缓冲区移交回。  

在第二次迭代中、SCTask 应使用值2填充 buffer-2 (在步骤1中切换)。 和 DID fwSwitchOutputBuffer()。

4、现在在主应用程序中、我仍在从缓冲区接收值1。  

我希望在步骤4中、我应该得到值2。  

我有什么问题吗?  

是否有人可以解释错误的地方?

此致

Lakshmikanth。  

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

    您好、Lakshmikanth、

    第4步中的值是否与第2步中的值相同、还是新值? 是否已验证 fwSwitchOutputBuffer()是否正常工作?

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

    步骤4中的值与步骤2相同。 根据我的理解、不会发生缓冲器切换。

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

    大家好、

    有人可以帮助我解决这个问题吗?

    此致

    Lakshmikanth

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

    大家好、

    任何人都请研究这个问题。 这是我的项目的选通问题。  

    此致

    Lakshmikanth

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

    fwSwitchOutputBuffer()的代码是为您生成的还是您编写的? 似乎答案在于调试该函数。