请教ch32v208蓝牙协议栈如何分离

EVT源码包里有wchble_rom.h和wchble_rom.hex文件。我使用了EVT包里的BLE_UART示范代码进行以下操作。

1、根据ch582的协议栈分离步骤(网上没有ch32v208的),我修改了.S启动文件(添加了j 0x00040000)。

2、改了ld文件的RAM起始地址(0x20004000)

3、配置了WCHBLE_ROM预处理宏。

最终编译后的bin尺寸是15K(已明显不包含蓝牙协议栈)。编译输出的资源占用内容如下(证明ld文件已正确修改)

```

Memory region         Used Size  Region Size  %age Used

           FLASH:       15256 B       448 KB      3.33%

             RAM:       10532 B        56 KB     18.37%

```

但是没办法扫描到蓝牙设备。请问有没有这方面的教程呢?


使用BLE_UART原始代码是可以搜索到蓝牙设备,并连接的。

使用分离的协议栈,你的方法是没错的。
最重要的一步,是编译后把编译生成的hex文件和相应的库文件hex合并后,下载到芯片中。
最新版本的ISP工具,可以同时选择多个文件下载,你可以试试。


协议栈的hex库文件,已经用linkUtil工具单独写入到flash里了。然后MRS这边也设置了下载程序不清空flash。同样的操作,我在ch582上已经做过了。用linkUtil读取0x00040000地址,也是符合协议栈hex的内容。我再检查一下操作步骤,晚点更新情况。感谢答复。


只有登录才能回复,可以选择微信账号登录