杰理JL701N可视化SDK代码浅析

本文详细解析了杰理701N可视化SDK的启动流程,包括初始化过程中的内存、时钟和设备管理,以及POWERON和BT模式的进入机制。重点介绍了蓝牙模式下的消息处理策略,展示了如何通过可视化工具配置音频和LED场景,减少开发成本。
摘要由CSDN通过智能技术生成

杰理701N可视化SDK代码启动流程

可视化工具SDK, 适用于TWS一拖二耳机, Soundbar, Dongle等产品, 目前可支持使用AC700N和AC701N, AC708N等芯片. TWS耳机功能需求一般比较固定, 常用的功能和UI等可以直接通过可视化工具进行配置, 减少开发成本. 音频数据处理流程可通过工具流程图串接方式实现而不用修改SDK, 本文跟随代码浅析一下杰理JL701N可视化SDK

初始化

程序的入口, 在可视化SDK AC701N-1.0.0 中只能看到从setup.c文件的setup_arch()函数开始, 主要做了些内存初始化, 看门狗, 时钟初始化, IO口和debug口初始化等初始化操作
程序入口
在dump了各种信息之后进入到app_main.c中的app_main()函数, 创建了一个app_core任务, os_start()起来任务调度会跑到app_task_loop()
app_main函数
在app_task_loop()中 首先是做了app_task_init()的初始化
这里面包括版本检查, 板子外围器件驱动初始化, 设备管理初始化等
app_task_loop函数
app_task_init()的初始化
app_task初始化
app_task_init()最后检查开机电压是否满足开机条件, 满足条件的情况对app_core线程发送APP_POWER_ON和GOTO_MODE, 一般情况进入POWERON模式, 插着充电线的情况进入idle充电模式
判断是否进入poweron模式

POWERON模式

目前代码中看到只有开机充电的时候会进入IDLE模式, 其他时间进入的是开机模式(POWERON). 接着调用app_send_message(), 给app线程发送POWER_ON的消息只是会进入led scene 处理, 可以在工具中led情景配置中设置并执行启动开机led灯效. 发送APP_MSG_GO_TO_MODE会进入app_goto_mode()的处理流程, 在app_mode_manager的 app_goto_mode()函数中会执行要切换的mode的enter函数
goto mode
进入poweron mode的enter初始化poweron_mode_init()
poweron ops
POWERON模式主要播报开机poweron提示音, 让开机提示音播放结束再进入poweron_task_start()
poweron模式初始化
poweron_task_start()进入BT模式
poweron_task_start

BT模式

同进入POWERON模式一样, 进入BT 模式的enter初始化bt_mode_init(), bt_mode_init()中进行了蓝牙协议栈, profile等蓝牙功能的初始化
BT模式
进入到bt mode之后开机初始化就完成了, 接下来代码就在app_core线程app_task_loop()中一直等待接收事件消息

消息处理

官方说明的蓝牙模式消息处理流程如下图
蓝牙模式消息处理

任务里面区分四种消息类型处理, 分别为tws消息MSG_FROM_TWS、btstack消息MSG_FROM_BT_STACK, hci消息MSG_FROM_BT_HCI和应用消息MSG_FROM_APP. 四种消息都各种分配到对应函数处理, 处理完后还会将消息继续分发其他已注册的应用消息处理函数中处理, 之后消息会传到app_common_device_event_handler函数执行

  • 30
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的代码里面挖呀挖呀挖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值