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.

使用CC2640R2L Multi_role 遇到的问题

Other Parts Discussed in Thread: CC2640R2L

您好,

客户在调试CC2640R2L时遇到以下三个问题,希望能得到您的帮助:

1.数据超过20字节拆成多包,连续写特征值,GATT_WriteCharValue

第一次成功,第二次失败;返回22,

如果在 收到response 后再次写

    else if ((pMsg->method == ATT_WRITE_RSP)  ||

             ((pMsg->method == ATT_ERROR_RSP) &&

              (pMsg->msg.errorRsp.reqOpcode == ATT_WRITE_REQ)))

 报错 pMsg->method == ATT_ERROR_RSP, pMsg->msg.errorRsp.errCode = 3 ,

 2.ask stack size 610 在哪儿能看到分配的这个大小的依据?这个stack size 默认610,大小限制有个范围吗?如果设置太大比如2048 会挤占协议栈的stack吗?改了以后会报错:        

default spinlock!

跟踪了一下,是这个错误:

case HCI_BLE_HARDWARE_ERROR_EVENT_CODE:

            AssertHandler(HAL_ASSERT_CAUSE_HARDWARE_ERROR,0);

            break;

 3.主从机切换的示例可否提供。

谢谢!

  • Qixiang Chen 说:
    第二次失败;返回22,

    返回0x22:  LL (Link Layer) RESPONSE TIMEOUT

    能否简要说一下现在的应用情况?使用的SDK版本以及例程路径能否给出?

    Qixiang Chen 说:
    ask stack size 610 在哪儿能看到分配的这个大小的依据?

    您指的是task stack size? 您可以在任务创建期间通过stackSize参数设置任务大小。例如:

    var tskParams = new Task.Params;
    tskParams.stackSize = 512;
    var task0 = Task.create('&task0Fxn',tskParams);

    堆栈大小没有单一的解决方案。这在很大程度上取决于用例。有关如何确定任务堆栈大小的描述,您可以参考 链接

    Qixiang Chen 说:
     3.主从机切换的示例可否提供。

    multi-role 就是主从机一体的

  • 1.超过20字节可以通过GATT WriteLongCharValue来发送
    2.stack size是根据任务大小来设定的,会占用RAM空间,在CCS->view—>Stack Usage中可以查看stack使用情况
    3.主从机切换示例指的是是什么,单独的主机或从机示例?
  •  您好,感谢解答。

     希望提供主机的示例, 在主机程序执行的时候,是否可以切换到从机模式?

  • 主机例程就是SDK中的simple_central