Thread 中讨论的其他器件: UNIFLASH
工具/软件:
尊敬的 TI 团队:
我正在使用基于 CC2340R5的定制 BLE 模块、并尝试使用 cc2340-bsl.py 脚本(Linux SBL 工具: https://github.com/Shuyang-z/cc2340-bsl)通过 UART 进行刷写。 虽然脚本报告成功进行了闪存和 CRC 验证、但该模块不会启动 BLE 广播、而应该在刷写后执行该操作。
设置:
MCU:CC2340R5N0RGER (空白芯片)
主机操作系统: Debian 11.11.
刷写工具:cc2340-bsl.py
固件文件:.hex、根据 SIMPLELINK-LOWPOWER-F3-SDK v8.10.01.02中的 BLE 外设示例构建
UART 端口:/dev/ttyUSB0
波特率:115200
连接方法:USB 转 UART 适配器(与 UniFlash 和 LaunchPad cc1252p7-1配合使用正常)
闪存命令:python3 cc2340-bsl.py -p /dev/ttyUSB0 -b 115200 -e -w -v /home/ops/Downloads/basic_ble_LP_EM_CC2340R5_freertos_ticlang.hex
输出:
python3 cc2340-bsl.py -p /dev/ttyUSB0 -b 115200 -e -w -v /home/ops/Downloads/basic_ble_LP_EM_CC2340R5_freertos_ticlang.hex
正在打开/dev/ttyUSB0端口、波特率230400
读取/home/ops/Downloads/basic_ble_LP_EM_CC2340R5_freertos_ticlang.hex 中的数据
固件文件:Intel Hex
正在连接到目标...
正在执行批量擦除
擦除所有 MAIN 存储体闪存扇区
擦除完成
在0x4E0207C0C8处写入64个字节
写入 CCFG 完成
在0x0007FFF098处写入16个字节
写入 MAIN 闪存完成
通过比较 CRC32计算进行验证。
MAIN FLASH 已验证(匹配:0x21006695)
CCFG 已验证(匹配:0x22ca400f)
引导加载程序进入和复位:
DIO21在为模块供电以进入引导加载程序模式之前被拉至低电平(通过在发送0x55时进行确认来验证)
刷写后、DIO21被释放(使用10k 电阻器拉至高电平)。
复位是通过脚本完成的、我还尝试了手动切换、仍然没有 BLE 广播。
工作原理:
通过 Windows 上的 UniFlash 刷写完全相同的.hex 文件(使用 LaunchPad cc1352p7-1)会导致正确的 BLE 行为—器件会立即开始广播。
脚本完成刷写和验证、没有任何错误。
我怀疑脚本会将固件写入不应该写入的地址。
我已经检查了 ccfg_address、cfg_size、flash_size 和 page_size、它们在脚本和固件中都匹配; 如果我更改地址、脚本就会失败。
感谢您的任何指导—谢谢!