BES 平台 SDK之代码架构讲解二

本文章是基于BES2700 芯片,其他BESxxx 芯片可做参考,如有不当之处,欢迎评论区留言指出。

BES 平台 SDK之代码架构讲解一_谢文浩的博客-CSDN博客

上篇文章粗略的对整个SDK 目录下的文件进行了说明,接下来会对SDK 比较详细的介绍。

一. 关于Target.mk 脚本

   BES 平台 SDK之代码架构讲解二_第1张图片

CHIP ?= best1306 :编译的目标平台,在编译指令里面对应 make T=best1306 

DEBUG ?= 1: 开启调试模式

export LIBC_OVERPRIDE ?= 1: 定义宏并赋值为1,等同于#define LIBC_OVERPRIDE    1

export LIBC_OVERPRIDE ?= 0: 删除宏定义,等同于 #undef LIBC_OVERPRIDE 

ifeq ($(BT_FA_ECC),1) : 条件编译,判断BT_FA_ECC 是否为1

KBUILD_CPPFLAGS += -DGET_PEER_RSSI_ENABLE :定义宏GET_PEER_RSSI_ENABLE

$(error 此处可自定义提示的错误信息): 编译报错提示!

其他的类似这个道理,在此补充一句,调试打印的波特率也是在这个脚本里面设置的。设置如下:

export TRACE_BAUD_RATE ?= 10*115200

当时也是费了一点时间才找到这里。

二. 关于Common.mk 脚本

BES平台宏开启与关闭,通用配置脚本。

三.关于Makefile 

        1.项目开发过程避免不了需要新建文件,那么如何将新增文件加入到当前工程并编译的呢,详细可参考下面文章。

        BES代码编译和链接说明_小小的代码里面挖呀挖呀挖的博客-CSDN博客

四. main 函数

1. main 函数位于目录platform/main 下的main.cpp 文件。如下所示:

BES 平台 SDK之代码架构讲解二_第2张图片

 int main(void) 函数本身也是一个线程,它是由Rtx.lib.c 文件创建的。(目录位于/Rtos/Rtx5/Rtx.lib.c),如下截图所示:

BES 平台 SDK之代码架构讲解二_第3张图片

BES 平台 SDK之代码架构讲解二_第4张图片 

2.main 函数里面开启看门狗、硬件GPIO、定时器、app_init(应用层) 等,最后进入while(1)循环等待是否关机。等待是通过evt = osSignalWait(0x0, osWaitForever); 函数,永久等待,直到收到线程通知后才会跳出while 循环。

五. 自写编译脚本(build.sh)

1. 该脚本主要是用来方便调试用,避免反复上下翻找指令,可copy 下来直接使用。

#/bin/bash
#./build.sh  编译正常固件
#./build.sh  test 编译测试固件
#./build.sh  ota  编译带OTA 固件
#./build.sh  xxx  提示非法输入参数

if [ x$1 == x ]
then
        echo ">>>>>>>>build bin>>>>>>>>>>"
        make T=best1306_ibrt -j40 DEBUG=1 OTA_CODE_OFFSET=0 FLASH_SIZE=0x400000 POWER_ON_ENTER_TWS_PAIRING_ENABLED=1 BLE_AUDIO_ENABLED=1 GFPS_ENABLE=1
elif [ $1 == "test" ]
then
        echo ">>>>>>>>build test bin>>>>>>>>"
        make T=prod_test/ota_copy CHIP=best1306 FLASH_SIZE=0x400000 BES_OTA=1 OTA_BIN_COMPRESSED=1 FLASH_REMAP=0
elif [ $1 == "ota" ]
then
        echo ">>>>>>>>build OTA bin>>>>>>>>>>"
        make T=best1306_ibrt -j40 DEBUG=1 OTA_CODE_OFFSET=0x10000 FLASH_SIZE=0x400000 POWER_ON_ENTER_TWS_PAIRING_ENABLED=1 BLE_AUDIO_ENABLED=1 GFPS_ENABLE=1 OTA_BIN_COMPRESSED=1
else
        echo ">>>>>>> invalid parameter"
fi

你可能感兴趣的:(BES平台,SDK,讲解,mcu,物联网)