WCHBLE库这么大啊

使用CH32F208WB(160KB Flash, 32K SRAM)开发,发现例程BLE_UART生成的.bin文件已经122KB 。

本计划使用3个程序:

  1. 一个boot,完成BLE升级和切换程序。

  2. 一个标定程序,和手机APP通信,完成产品的称重标定操作。

  3. 一个应用程序,因为逻辑复杂,使用操作系统,对称重值进行处理等。

怎么能让蓝牙库小些呢?

有些着急,版主回复啊。


这里的160K是快速flash,实际上有480k的flash供用户运行代码。

image.png



在《CH32FV2x_V3xRM.pdf》中,我理解了上图中的3种配置。

但如何使用480K FLASH,在哪儿看?

并且在Keil的options页面,选中F208W后,就是160K和32K。


有操作更大FLASH的例程吗?

慢速有多慢呢?


image.png

工程配置处进行修改,修改红框的地方。比如说400K这里修改成0x64000。没有操作更大flash的例程,根据上述修改即可。慢速flash的速度相对于flash区是较慢的。



刚刚实测了一下,都是向一个数组写入数据,相差了27倍。低电平是在快速FLASH中的函数,高电平是在慢速FLASH中的函数。那么在慢速FLASH区,能执行BLE_UART例程吗?

0000.jpg


还有,2个程序都使用wchble.lib,能像ROM API似的,只刷一个wchble.lib吗?

上电最先运行boot,可能会执行经过蓝牙的升级。

上电后,可能跳转到标定程序,在此程序中,能经过BLE进行手机APP的通信操作。

上面这两个程序,都用了wchble.lib。


慢速FLASH区,能执行BLE_UART例程吗

能接受慢速flash执行速度慢就可以用。慢速flash是480K总量 - 前部快速flash的余量,也可以用来跑代码。

BLE库函数中对执行速度要求高的部分已经放到了快速flash中。用户层代码排在库中代码的后面。用户层代码把快速flash占满还是不够放,会安排到慢速flash中。对速度要求高的函数,可以加“highcode”修饰,提到快速flash中存放。

2个程序都使用wchble.lib,能像ROM API似的,只刷一个wchble.lib吗

可以的,参考BLE文件夹下的Onlyupdate方式的OTA升级方案,其中IAP层代码和APP层代码共用一个外置固定库。不过跳转时BLE会断连,需要跳转后重新连接。


懂了,谢谢。


在BLE目录下,没有找到你说的Onlyupdate方式的OTA。

只有BackupUpgrade_IAP和BackupUpgrade_OTA两个文件夹。

我使用的是CH32F20xEVT。


您好,使用F208,只能使用backup的升级方式,没有固定库的升级方式。

或者可以考虑使用V208芯片,可以使用固定库和备份的方式。


你好,我主要想知道如何实现2个程序在一个MCU中,使用一个wchlib库。有例程吗?


不同的程序使用不同的代码,F208没有固定库。如果需要固定库,可以使用V208.


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