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.

[参考译文] Starterware/cc2541:如何使用xdata指针将有效负载直接加载到TXFIFO地址RFTXFSRP (0x61D7)+ 15?

Guru**** 2397225 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/582422/starterware-cc2541-how-to-load-payload-directly-into-the-txfifo-using-a-xdata-pointer-to-the-txfifo-address-rftxfsrp-0x61d7-15

部件号:CC2541

工具/软件:Starterware

大家好,

我正在研究 CC2543 BLE广播器示例代码(swrc291),并希望将此示例移植到 CC2541

miniBLE_phy.c中有一条注释:

/*优化提示:
*要仅重新加载有效负载并跳过强制标头中的加载,
*地址等。可以使用将有效负载直接加载到TXFIFO中
*一个xdata指针指向TXFIFO地址RFTXFSRP (0x61D7)+ 15。
*必须已在TXFIFO中加载长度和格式相等的数据包
*和PRF.ADDR_Entry[0].CONF.REUSE必须设置为1,此功能才能正常工作。 */ 

此信息非常有用,但还不够。有人能解释并提供使用    xdata指针将有效负载直接加载到TXFIFO地址RFTXFSRP (0x61D7)+15的示例代码吗?

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

    您好Ke:

    没有示例代码,但应该非常简单。 如果使用固定的数据包长度设置定期通告,然后尝试通过直接更新FIFO中的数据来更新已装入的数据包。 只需将地址转换为字节指针,然后使用它来编写或使用memcopy。

    +15指数基于以下假设:您已添加特定于制造的数据,然后将指向jibbersih开头的必填字段后面的位置:

    /*任意制造特定的有效负载用于示例应用:
    byte[0]:制造商特定类型。
    byte[1]:德州仪器(TI)公司标识符低字节。
    byte[2]:德州仪器(TI)公司标识符高字节。
    byte[3-26]:Jibberish。 
    */
    uint8 AdvData[27]=
    ... 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    结果是一个工作代码如下所示:

    #define WS_index_data_BATT 19.

    *(TXFIFO + WS_INDE_DATA_BATT)= battMeasure()