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.

[参考译文] CC2652R:通过 UART 传输 BLE 芯片 BSL 固件

Guru**** 2390755 points
Other Parts Discussed in Thread: CC2652R, LAUNCHXL-CC26X2R1

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1213854/cc2652r-ble-chip-bsl-firmware-over-uart

器件型号:CC2652R
主题中讨论的其他器件: LAUNCHXL-CC26X2R1

您好!

我们正在通过 UART 接口实现串行引导加载程序,使处理器芯片保持为主控。 以便我们可以将 hex 文件刷写到 BLE CC2652R。 我们能够将0x55 0x55发送到 BLE 并获取 ACK 0xCC。 我们也无法获取芯片身份、也无法 ping 通 NACK 0x33。 如果您有此类实施的任何示例代码或流程、请向我们提供。 请参阅 https://www.ti.com/lit/ml/swra466d/swra466d.pdf?ts=1680073572965&ref_url=https%253A%252F%252Fwww.google.com%252F。 

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

    尊敬的 Anjali:

    您已找到正确的文档、也可以参阅 TRM 的第8章。  如果观察到正确的 ACK/NACK、似乎您已进入引导加载程序并具有正确的 UART 连接。  您是如何构建 ping 命令的?  我希望0x03 0x20 0x20成功。  您应该尝试将 sblAppEx 与 LAUNCHXL-CC26X2R1配合使用、以便可以观察并了解预期的引导加载程序通信、以便可以在您的系统上复制该通信。

    此致、
    Ryan

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

    您好、Ryan、

     通过引用  https://www.ti.com/lit/ml/swra466d/swra466d.pdf?ts=1680073572965&ref_url=https%253A%252F%252Fwww.google.com%252F , 写入闪存范围,我成功到 COMMAND_DOWNLOAD , furt 请指南 写入闪存范围 CMD_SEND_DATA , 什么应该是   ucCommand[3] 一个字? 至闪存.bin 或.hex  

    包含命令的数据包格式如下:
    unsigned char ucCommand[4-255];
    ucCommand[0]= ;
    ucCommand[1]= ;
    ucCommand[2]= COMMAND_SEND_DATA;
    ucCommand[3]=要编程的数据字节[0];
    ucCommand[4]=要编程的数据字节[1];
    ucCommand[5]=要编程的数据字节[2];
    ucCommand[6]=要编程的数据字节[3];
    ucCommand[7]=要编程的数据字节[4];
    ucCommand[ ]=要编程的数据字节[ ];

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

    感谢你的评分

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

    如何在从 Code Composer Studio 版本12.1.0.00007编译时创建.bin、编译器是 ticlang? 构建后、我只能看到.out 和.hex 文件。

    我使用 SDK 版本 simplelink_cc13xx_cc26xx_sdk_6_40_00_13作为参考。

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

    所需的引导加载更新过程在 TRM 的第8章中进行了详细说明、建议您通读该章。  您还有 sblAppEx 源代码可供参考。  使用编译后处理步骤构建.bin 文件

    ${CG_TOOL_ROOT}/bin/tiarmobjcopy ${BuildArtifactFileName} --output-target ihex ${BuildArtifactFileBaseName}.hex
    ${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.bin ${CG_TOOL_ROOT}/bin/tiarmofd ${CG_TOOL_ROOT}/bin/tiarmhex ${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin

    这里是 上一个 E2E 主题、 您可能会从中受益。

    此致、
    Ryan

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

    您好、Ryan、

    如果我在获取状态的响应中得到0x43 (COMMAND_RET_INVALID_ADR)。 在发送252字节的.bin 文件数据后重命名为.bin。 我在发送.bin 文件数据时犯的是哪种类型的错误。  

    我正在"gFileContent"中发送250字节的.bin 文件  

    0 C
    1 C
    2 2.
    3 6.
    4倍
    5 2.
    6 R
    7 1.
    8{
    9.
    10米
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    22.
    23.
    24.
    25 '
    26.
    27.
    28.
    29.
    30.
    31.
    32 0
    33 0
    34 0
    35 1.
    36.
    37'
    38.
    39.
    40、
    41.
    42.
    43.
    44.
    45.
    46.
    47.
    48件
    49.
    50.
    51.
    52.
    53.
    54.
    55.
    56 d.
    57.
    58.
    59}
    60问题
    61.
    62.
    63.
    64
    65问
    66岁以上
    67
    68
    69
    70政
    71.
    72 8.
    ^μ A
    74 Z
    75A
    76.
    77

    112
    113
    114
    115 -
    116
    117一
    118 R
    119k
    120
    121.
    122.
    123.
    124.
    125.
    126 9.
    127 2.
    128.
    129.
    130
    131.
    132.
    133.
    134 &
    135.
    136.
    137.
    138.
    139.
    140
    141.
    142.
    143.
    144.
    145 <
    146.
    147.
    148.
    149.
    150
    151.
    152.
    153.
    154.
    155.
    156.
    157.
    158.
    159.
    160
    161.
    162.
    163.
    164.
    165.
    166.
    167.
    168.
    169.
    170
    171.
    172.
    173.
    174.
    175.
    176.
    177.
    178.
    179.
    180
    181.
    182.
    183.
    184.
    185.
    186.
    187.
    188.
    189.
    190
    191.
    192.
    193.
    194.
    195.
    196
    197
    198
    199
    200 9.
    201
    202.
    203.
    204.
    205.
    206.
    207.
    208.
    209.
    210
    211.
    212小时
    213 N
    214!
    215.
    216.
    217华氏度
    218.
    219
    220
    221.
    222.
    223.
    224
    225.
    226.
    227!
    228.
    229 &
    230 (
    231 F
    232.
    233
    234政
    235
    236.
    `μ A
    238
    239.
    240页
    ^μ A
    242.
    243.
    244.
    245 '
    246)
    247 F.
    248.
    249.

    /*ble_send_data 函数将是*/  

    int16_t ble_send_data (uint8_t * pData、uint8_t len)

    uint8_t buf[header_length]={COMMAND_SEND_DATA、initial_value};

    memcpy (((buf + length_buff_offset)、pData、len);

    如果(COMMAND_SUCCESS!= ble_run_command (buf、(len + length_buff_offset))

    返回 COMMAND_FAIL;
    }
    返回 COMMAND_SUCCESS;
    }

    /*在  ble_run_command 函数中 我添加大小为252 ,校验和,发送数据命令和数据(250字节) */

    status = ble_send_data (gFileContent、minimum_size_parse);

    if (status!= COMMAND_SUCCESS)

    返回(状态);
    }
    REt = GET_STATUS ();
    如果(ret => 0x40)

    printf ("COMMAND_RET_SUCCESS =0x40\n\n");
    uart_ack_to_ble (0xCC);
    }
    方案

    printf ("252的 printing get_stats 向 BLE 发送数据为%X\n"、ret);
    }  

    /*此处、最后一次打印是>>>  打印250的 get_stats 向 BLE 发送数据是43*/

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

    我无法从给出的代码中收集任何有用的信息。  您需要提供有关高级引导加载程序命令过程的更多信息、并使用更短的数据包进行测试。  我的第一个问题是 COMMAND_DOWNLOAD 未正确执行、我必须进一步强调、您应该评估一个完全成功的引导加载程序更新过程、同时使用示波器或逻辑分析仪监控 TX/RX 线路、以便与您自己的解决方案进行比较。

    此致、
    Ryan

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

    谢谢 Ryan

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

    您好、Ryan

    闪存.hex 的初始地址是什么?

    闪存.bin 的初始地址是什么?

    根据文档,0x00000000将是初始地址。 我有问题>>对于.hex 以及.bin,我在通过 UART 刷写.hex 时需要提供哪个位置?

    我需要将.hex 闪存至我需要闪存.hex 的位置。 请引导我。

    此致、  

    Anjali

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

    闪存从0x0开始。  十六进制映像在包含十六进制数据的每个段的开头提供一个地址、二进制映像具有连续的原始数据。  TI 提供的 sblAppEx 使用二进制文件、已经为其提供了 post-build 步骤。  您将必须独立开发十六进制版本。

    此致、
    Ryan

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

    感谢 Ryan、