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的库函数,代码是不能正常运行的

注意库文件要跟代码里面使用的对应,不要选错

上电运行

 

posted @ 2022-05-11 18:01  debugdabiaoge  阅读(609)  评论(0编辑  收藏  举报