1、封装 usr_le_code 为静态库,并增加 Release 客户包自动生成工具

2、将 BLE 协议实现收敛为 libusr_le_code.a + 公开头文件,应用侧通过
usr_le_api / usr_le_product 对接;新增 package_release.py,按 version.txt
3、生成去除协议源码的客户交付包,开发工程继续保留完整源码。
This commit is contained in:
2026-08-04 12:30:06 +08:00
parent 158b74447d
commit 4e1bf445b2
16 changed files with 920 additions and 65 deletions
+38 -4
View File
@@ -245,6 +245,11 @@ INCLUDES := \
-Iinclude_lib/media/aispeech/enc/include \
-Icpu/br28/audio_hearing \
-Iinclude_lib/media/cvp \
-Iapps/usr_le_code \
-Iapps/usr_le_code/thirdpart \
-Iapps/usr_le_code/thirdpart/mjson \
-Iapps/usr_jb_proto/Protocol \
-Iapps/usr_jb_proto/Utils \
-I$(SYS_INC_DIR) \
@@ -479,6 +484,7 @@ c_SRC_FILES := \
apps/earphone/bt_emitter.c \
apps/earphone/bt_tws.c \
apps/earphone/default_event_handler.c \
apps/earphone/dual_update_demo.c \
apps/earphone/earphone.c \
apps/earphone/eartch_event_deal.c \
apps/earphone/font/fontinit.c \
@@ -608,6 +614,24 @@ c_SRC_FILES := \
cpu/br28/tws_audio.c \
cpu/br28/uart_dev.c \
cpu/br28/umidigi_chargestore.c \
apps/usr_jb_proto/Protocol/jb_product.c \
apps/usr_jb_proto/Protocol/jb_protocol.c \
apps/usr_jb_proto/Utils/jb_common.c \
apps/usr_jb_proto/Utils/jb_ringbuffer.c \
apps/usr_jb_proto/usr_jb_main.c \
# usr_le_code 静态库(协议编解码 + 广播/收发)
USR_LE_LIB := apps/usr_le_code/lib/libusr_le_code.a
USR_LE_SRC_FILES := \
apps/usr_le_code/ble_proto.c \
apps/usr_le_code/bleproto.c \
apps/usr_le_code/bleproto_packer.c \
apps/usr_le_code/thirdpart/mjson/mjson.c \
apps/usr_le_code/usr_le_adv.c \
apps/usr_le_code/usr_le_recieve.c
USR_LE_OBJS := $(addprefix $(BUILD_DIR)/, $(USR_LE_SRC_FILES:%.c=%.c.o))
# 需要编译的 .S 文件
@@ -711,6 +735,7 @@ LFLAGS := \
cpu/br28/liba/libllns.a \
cpu/br28/liba/libkwscommon.a \
apps/common/third_party_profile/tuya_protocol/sdk/lib/libtuya_lib.a \
apps/usr_le_code/lib/libusr_le_code.a \
cpu/br28/liba/lib_icsd_adt.a \
cpu/br28/liba/lib_diafx.a \
cpu/br28/liba/libFFT_pi32v2_OnChip.a \
@@ -769,16 +794,25 @@ LINK_AT ?= 1
# 表示下面的不是一个文件的名字,无论是否存在 all, clean, pre_build 这样的文件
# 还是要执行命令
# see: https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html
.PHONY: all clean pre_build
.PHONY: all clean pre_build lib_usr_le
# 不要使用 make 预设置的规则
# see: https://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html
.SUFFIXES:
all: pre_build $(OUT_ELF)
all: pre_build $(USR_LE_LIB) $(OUT_ELF)
$(info +POST-BUILD)
$(QUITE) $(RUN_POST_SCRIPT) sdk
# 单独编译 usr_le_code 静态库: make lib_usr_le
lib_usr_le: $(USR_LE_LIB)
$(USR_LE_LIB): $(USR_LE_OBJS)
$(info +AR $@)
$(shell $(MKDIR) $(@D))
$(QUITE) $(RM) $@
$(QUITE) $(AR) rcs $@ $(USR_LE_OBJS)
pre_build:
$(info +PRE-BUILD)
$(QUITE) $(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -D__LD__ -E -P cpu/br28/sdk_used_list.c -o cpu/br28/sdk_used_list.used
@@ -794,13 +828,13 @@ clean:
ifeq ($(LINK_AT), 1)
$(OUT_ELF): $(OBJS)
$(OUT_ELF): $(OBJS) $(USR_LE_LIB)
$(info +LINK $@)
$(shell $(MKDIR) $(@D))
$(file >$(OBJ_FILE), $(OBJS))
$(QUITE) $(LD) -o $(OUT_ELF) @$(OBJ_FILE) $(LFLAGS) $(LIBPATHS) $(LIBS)
else
$(OUT_ELF): $(OBJS)
$(OUT_ELF): $(OBJS) $(USR_LE_LIB)
$(info +LINK $@)
$(shell $(MKDIR) $(@D))
$(QUITE) $(LD) -o $(OUT_ELF) $(OBJS) $(LFLAGS) $(LIBPATHS) $(LIBS)