CH32V208BLE例程编译后bin文件大小超过FLASH空间,为什么代码烧进去又正常运行

用的是HID_Keyboard例程,我的芯片是v208cb的,flash只有128k,这里编译出150k,为什么代码烧进去又是正常运行。有什么办法能让他正常显示吗image.png

您好,CH32V208的FLASH实际大小为480K,可分为零等待区域和非零等待区域,其中零等待区域最大可配置为160K,共有3种配置方式,如下图1,具体可见数据手册,手册下载链接如下。关于V208蓝牙例程,其中是将蓝牙协议栈的库放在非零等待区域,其他代码放在零等待区域。

https://www.wch.cn/downloads/CH32V208DS0_PDF.html?

image.png

图1


v208可以用keil开发吗?我看官网没有keil的包,你这怎么可以用keil。

那怎么把代码放在零等待区或者非零等待区,怎么设置,有文档说明之类的吗


您好,V208不可以用Keil开发,截图截错了,已修改


那怎么把代码放在零等待区或者非零等待区,怎么设置,有文档说明之类的吗


怎么设置把代码放在零等待区或者非零等待区


您好,这边具体了解了一下,蓝牙库并不是全部放在非零等待区域的,采用非固定库方式,零等待区优先放 __attribute__((section(".highcode"))) 修饰的代码,次优先是应用层代码,最低优先是放BLE库,按优先级先放零等待区,放满了,没放下的BLE库就放非零等待区。关于设置代码放置在零等待区和非零等待区域,主要在ld文件中,如下图。

关于将函数代码放在FLASH某一位置,可参考下链接配置说明:

https://www.cnblogs.com/liaigu/p/17330342.html

后续若有问题,可通过邮箱(lzs@wch.cn) 和我沟通

image.png



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