1. 程式人生 > 其它 >BLE 藍芽使用固定LIB(peripheral 使用固定庫)

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的庫函式,程式碼是不能正常執行的

注意庫檔案要跟程式碼裡面使用的對應,不要選錯

上電執行