杰理芯片SDK-杰理SDK工程框架介绍
本章概述思维导图:

杰理SDK开发-杰理SDK工程框架讲解
杰理科技与SDK定位
杰理科技与SDK定位(让小伙伴们更好的了解什么是杰理什么是SDK)
杰理科技是专注于集成电路设计的领军企业,核心产品涵盖蓝牙音频芯片、物联网芯片、智能穿戴芯片等。
其SDK(软件开发工具包)是为开发者提供的全链路开发套件,支持从底层硬件驱动到上层应用逻辑的完整开发流程,广泛应用于TWS耳机、蓝牙音箱、智能手表、物联网设备等领域。
到这里小伙伴们可能还是有点蒙啥是SDK呢?其实我们开发一个项目比如说音响这个项目,玩过单片机的小伙伴们都知道那可得一个引脚一个引脚的配置……,这个引脚得点灯,这个引脚得与传感器进行通信传输数据……;那都得自己手搓吖!但是SDK呢,其实就是对一个项目的所有功能进行了底层硬件驱动到上层应用逻辑的配置;我们只需要配置相应的功能模块就可以实现一个项目的开发;
杰理SDK工程目录框架

如上图所示;这是拿一个杰理AC701N蓝牙芯片耳机工程的SDK的参考;可以观察出一共分为三个主目录:
Sources为源文件、源代码;
Headers为对应的头文件;
ASM Sources为放置版本信息
Sources目录下分为apps和cpu两个子目录;
apps为应用层产品源文件(这个目录里的文件是我们搞项目主要开发的主战场)
cpu为底层驱动板级配置相关文件(一般不需要我们修改)
接下来详细讲解apps目录下的文件:

在apps中可以细分为common子目录和earphone目录
Common目录:公共外设驱动文件比如说:按键、NTC检测等
earphone目录:具体方案设计,比如说板级、蓝牙配置;
Common目录下文件目录说明:
audio为音频类文件包含(解码、编码、数据流、音频流)
Bt_common为蓝牙公共文件API应用层面
Charge_box-充电盒子
config为配置文件目录
Debug为调试文件目录
Dev_manager为设备管理器文件目录
Device为设备文件目录
File_operate为文件操作目录
Key为按键相关文件目录
Music为音乐相关文件目录
Third_paty_profile为第三方配置文件目录
Ui为用户界面文件目录
Update为更新文件目录
Usb为通用串行总线文件目录
earphone目录下文件说明:
Board-板级配置文件目录
Font-字体文件目录
ll_sync_demo-低延时同步演示
Log_config-日志配置
Music-音乐
Pc-个人计算机,电脑
Power_manage-电源管理文件目录
Trans_data_demo-数据传输演示
Ui-用户界面文件目录
Wireless_mic-无线麦克风文件目录
杰理蓝牙芯片SDK启动流程
杰理SDK启动流程从芯片上电复位开始,依次经过MASK ROM校验FLASH代码、UBOOT引导加载、main函数初始化架构(内存/时钟/IO)、os_start启动多核系统并执行各类initcall、board_init板级硬件配置(按键/LED/蓝牙协议栈),最终进入app_main应用层入口,完成蓝牙模式初始化、消息处理机制搭建及用户功能启动,全程依赖board_config.h和全局配置文件实现硬件方案匹配,支持异常升级模式(USB/UART/BT)及低功耗优化,确保从底层硬件到上层应用的全链路协同工作。如图所示:

杰理开发框架
SDK 为用户提供一种基于事件处理机制的 APP 开发框架,系统各个功能组件会发出事件通知用户,用户只需基于该框架添加需要处理的事件及事件处理函数,即可按照应用需求完成相应的开发,系统在运行过程中,可以通过 APP 状态机对其状态进行切换,其状态包括创建、运行、挂起、删除。如图所示:

杰理SDK中常用关键文件介绍
app_config.h
全局系统配置中心,定义内存检查(如RTOS_STACK_CHECK_ENABLE监控堆使用)、串口升级功能(USER_UART_UPDATE_ENABLE)、蓝牙协议栈使能(TCFG_USER_BLE_ENABLE)、OTA升级模式(单/双备份)等关键参数。
Boear_config.h / xxxboard.c / xxxboard.h
板级硬件配置入口,通过宏定义(如CONFIG_BOARD_AC695X_DEMO)选择对应硬件方案目录,匹配外设驱动(如UART/I2C/SPI)、按键类型(IOKEY/ADKEY)、DAC输出模式、开机按键逻辑等。
Key_event_deal.c / user_cfg.c
按键事件处理核心,定义单击/双击/长按响应逻辑(通过key_event_deal.h枚举),与user_cfg.c中的USE_CONFIG_KEY_SETTING配合实现按键功能自定义(如音量调节、播放控制)。user_cfg.c还控制LED状态指示(如连接/充电状态)、提示音配置(如开机音)、ANC降噪模式切换等。
earphone.c / bt_tws.c
耳机功能与TWS(真无线立体声)实现载体。earphone.c处理蓝牙初始化、音频播放、通话事件(如A2DP播放、HFP通话);bt_tws.c管理TWS配对、连接同步、主从机切换、低延时模式(如游戏模式)、断连提示音播放等。
小结:杰理SDK通过分层配置(全局/板级)和模块化功能文件(按键/蓝牙/TWS),实现从硬件初始化到应用逻辑的全链路开发,支持灵活适配不同芯片方案(如AC695N/AC701N)及外设组合,满足耳机、音箱、智能手表、读写笔、智能家居等多项目场景需求。
制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!
