设为首页收藏本站

技术子

 找回密码
 速度加入

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 3919|回复: 5

da14580之6.内核和APP消息回调工作剖析

[复制链接]

61

主题

106

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13794
发表于 2016-6-17 20:35:22 | 显示全部楼层 |阅读模式
6.1.  内核发出的GAPM_DEVICE_READY_IND消息
    app_default_state[]中可以看到第一个消息即为”GAPM_DEVICE_READY_IND”,其回调函数为:
13_0.png

13.png
69行是判断目的任务的状态是不是APP_DISABLED,显然是的。所以发送消息给TASK_GAPM这个任务,并且消息内容是GAPM_RESET,字面上表示复位GAP管理模块。当TASK_GAPM reset好管理模块后,会向task_app发出GAPM_CMP_EVT消息事件。
6.2.  TASK_GAPM复位完成后内核发送的GAPM_CMP_EVT消息 14.png
15.png
这个回调函数是所有内核完成事件的回调函数,通过参数传进来的具体操作选择进行什么样的操作。内核会执行gapm_cmp_evt_handler,第120行中的函数app_configuration_func(dest_id, cmd)是对目的任务参数的设置,这里的目的任务是TASK_GAPM。该回调函数会向TASK_GAPM发出GAPM_SET_DEV_CONFIG_CMD命令,以完成BLE设备配置。那么完成了那些配置呢?看看app_configuration_func()这个函数:
16.png
6.3.  内核完成GAPM_SET_DEV_CONFIG_CMD再次发出GAPM_CMP_EVT消息对应的回调函数还是上面的那个函数,只是操作变为了如下操作
17.png
如果没有错误,那么将执行第136行的函数:
18.png
上面的函数中,首先将TASK_APP任务的状态设置为APP_DB_INIT状态,也就是数据库初始化状态。而下面的操作就是将所有用到的profile的数据库进行初始化,也就是建立GATT数据库。


================================
欢迎加入 蓝牙BLE4.0协议研究 177341833 大家庭
===============================






回复

使用道具 举报

0

主题

25

帖子

66

积分

注册会员

Rank: 2

积分
66
发表于 2016-7-5 14:37:26 | 显示全部楼层
回复

使用道具 举报

0

主题

4

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2016-12-8 10:06:43 | 显示全部楼层
慢慢看懂了一点点,谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2017-7-30 18:57:48 | 显示全部楼层
慢慢有了点概念 谢谢楼主 无私分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

210

积分

中级会员

Rank: 3Rank: 3

积分
210
发表于 2017-11-14 17:16:47 | 显示全部楼层
楼主最伟大
回复 支持 反对

使用道具 举报

0

主题

12

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2019-12-13 20:06:27 | 显示全部楼层
开奖网北京pk10 ,重庆欢乐生肖 都是特别好玩的游戏,支持下!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 速度加入

本版积分规则

Archiver|手机版|小黑屋|技术子 ( 粤ICP备14028582号  

GMT+8, 2020-10-23 01:48 , Processed in 0.105809 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表