微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 底层的一些MSG参数在什么时候赋值了?

底层的一些MSG参数在什么时候赋值了?

时间:10-02 整理:3721RD 点击:

大家好,我看程序有几点想不通,希望能得到大家的指点。

以SimpleBLEPeriperal的 gapRole_ProcessGAPMsg 的case:GAP_LINK_ESTABLISHED_EVENT ,建立连接为例:

第一个问题:首先哪里触发了GAPRole_ProcessEvent?

然后将*pMsg 成osal_event_hdr_t 结构体,进入gapRole_ProcessOSALMsg( (osal_event_hdr_t *)pMsg );

然后是case:GAP_MSG_EVENT,然后将( osal_event_hdr_t *pMsg )这类的结构提,变成(gapEventHdr_t *)pMsg,

再进入gapRole_ProcessGAPMsg( gapEventHdr_t *pMsg ),第二个问题:switch ( pMsg->opcode ),什么时候pMsg->opcode赋予了  “GAP_LINK_ESTABLISHED_EVENT 这个值 ” ?!pMsg由最先的event和status,而opcode 是什么时候给了它值?

TI工作人员是不是觉得文字有点多就不回复了 ? T^T

xubo,

第一个问题,

以simpleBLEPeripheral 工程为例,在OSAL_SimpleBLEPeripheral.c 中,const pTaskEventHandlerFn tasksArr[] 里面就有GAPRole_ProcessEvent。

这是哪里掉到的呢?在main()中,osal_start_system() -> osal_run_system(),在这里面轮询的。

你最好先看一下TI 的开发指导,在你安装协议栈的时候也带着了,里面有很清楚的程序流程介绍。 

第二个问题,

很不巧,这个是在底层的gap_linkMgr 中赋值,然后通过osal_run_system()传递给GAPRole_ProcessEvent(), 这个过程在库里面,所以你没法看到:)

Yan,

又麻烦你了,谢谢啊!哪里可以写感谢信之类的,我写封让TI加你工资!

xubo,

哈哈哈,谢谢,这是我应该做的:)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top