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/CC2640:使用宏会导致传感器控制器意外停止工作

Guru**** 2588145 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/598755/rtos-cc2640-using-a-macro-causes-sensor-controller-to-unexpectedly-stop-working

器件型号:CC2640

工具/软件:TI-RTOS

当我转到任务测试和/或代码生成器时、我收到错误。 代码如下:

初始化代码:

//在下一个 RTC 周期调度
任务(1)调度第一次执行; 

执行代码:

宏 READ_RTC_SENSOR (RESULT){

U16数据= 0;

i2cStart();
i2cTx (0xD0 | I2C_OP_WRITE);
i2cTx (0x11);

//如果成功...
if (state.i2cStatus = 0x0000){

U16 MSB;
U16 lsb;

i2cRepeatedStart();
i2cTx (0xD0 | I2C_OP_READ);
i2cRxAck (MSB);
i2cRxNack (lsb);

数据=(MSB << 8)+ lsb;

}

i2cStop();

//处理错误(如果有)...
if (state.i2cStatus!= 0x0000){
//处理错误
}

结果=数据;

}


U16结果;
READ_RTC_SENSOR (RESULT);

终止代码:

下面是我得到的错误:

点击 debug 会导致以下情况:

请帮助、我在这里对如何继续进行感到很损失。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Roman、
    感谢您的反馈。 我已向开发人员提交了一个 TT、当我们了解更多信息时、可以返回给您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Roman、
    等待时:
    我触发了该错误、但通过添加执行代码、然后进入任务资源、并在我进入代码生成器之前选择资源、代码生成器工作正常、而不会崩溃。 在尝试运行任务测试或代码生成器之前、尝试在 GUI 中来回播放一段时间。 也许这将帮助您在开发人员发现错误之前继续操作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很快就跟他谈了。 它仍然崩溃。 当我们了解更多信息时、我会告诉您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在尝试使用此选项(顶部或底部没有空行):

    宏 READ_RTC_SENSOR (RESULT){
    U16数据= 0;
    
    i2cStart();
    i2cTx (0xD0 | I2C_OP_WRITE);
    i2cTx (0x11);
    
    //如果成功...
    if (state.i2cStatus = 0x0000){
    U16 MSB;
    U16 lsb;
    
    i2cRepeatedStart();
    i2cTx (0xD0 | I2C_OP_READ);
    i2cRxAck (MSB);
    i2cRxNack (lsb);
    数据=(MSB << 8)+ lsb;
    }
    i2cStop();
    //处理错误(如果有)...
    if (state.i2cStatus!= 0x0000){
    //处理错误
    }
    结果=数据;
    }
    U16结果;
    READ_RTC_SENSOR (结果); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常好! 在宏中、您似乎不能在前导的花括号和/或后沿的花括号之前有空行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 这可能是编译器问题。 您应该可以避免现在出现空行、然后应该在下一版 Sensor Controller Studio (1.5.0)中添加此修复程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! )