BLE 蓝牙使用固定LIB(peripheral 使用固定库)
以CH582的peripheral为例。默认BLE-LIB参与编译,例子编译的codeflash大小是 147184B。
有些情况希望LIB不参与编译,但又要使用BLE-LIB,这样可以使用我们提供的BLE固定LIB。固定LIB有2个
一个从0x10000地址开始,一个是从0x40000地址开始存放BLE-LIB的BIN文件(为啥有2个呢,因为CH58x系列芯片codeflash 大小不同)
芯片如何使用固定LIB,如上图所示,需要定义 LIB_FLASH_BASE_ADDRESSS=0x00010000或者 LIB_FLASH_BASE_ADDRESSS=0x00040000
定义的方法参考 CH579 CH573 CH582 config.h修改预编译配置
修改ld文件,如下图
使用 LIB_FLASH_BASE_ADDRESSS=0x00040000 Flash配置如下
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K
使用LIB_FLASH_BASE_ADDRESSS=0x00010000
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K
启动文件加上 LIB的跳转地址
使用 LIB_FLASH_BASE_ADDRESSS=0x00040000 Flash配置如下
j 0x40000
使用LIB_FLASH_BASE_ADDRESSS=0x00010000
j 0x10000
修改后编译如下:
这样修改以后需要将编译的hex文件和固定LIB合并成1个文件,然后下载到芯片里面,否则因为找不到LIB的库函数,代码是不能正常运行的
注意库文件要跟代码里面使用的对应,不要选错
上电运行