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.

[参考译文] CCS/CC2650:无法同时运行2个任务

Guru**** 2556970 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/572913/ccs-cc2650-cannot-run-2-tasks-at-once

器件型号:CC2650

工具/软件:Code Composer Studio

从 ProjectZero 开始、我只剩下能够完美工作的广播代码。 在该项目上、我添加了另一个从 I2C 接收数据的任务、该代码在独立应用程序中工作正常。 创建优先级高于广播任务的 I2C 任务将按预期接收数据到 I2C、但不会进行广播。 广播任务也是如此,创建具有更高优先级的广播任务将会广播但不会接收到 I2C 的数据。  

如果我在代码中添加一些断点、在广播任务具有更高优先级的情况下、它会到达广播任务的所有断点并进入 I2C 任务、并在返回此函数时卡住:

I2CSlaveDataGet (uint32_t ui32Base)
{
//
//检查参数。
//
assert (I2CBaseValid (ui32Base));

//
//读取一个字节。
//
RETURN (HWREG (I2C0_BASE + I2C_O_SDR));
} 

 因此、我的结论是、这两个任务不能同时运行。 也许我缺少一些东西。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试增加预定义符号中的 ICALL_MAX_NUM_TESS。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    iCall_MAX_NUM_TESS 初始值为2、已将其更改为4、不会发生任何情况、相同的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以看看 sensortag 如何将多个任务集成到一个项目中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! 我发现了一些错误、如果有用、我会回来回答。