程序数据结构

6个员额/0个新员额
最后一篇文章
hrg
离线
最后一次见到:2年9个月前
大师
加入:2014-08-05 13:37
程序数据结构

嗨,对话小组

你能解释一下SDK程序的程序执行流程吗(比如ex-Approxity reporter fh)。虽然我理解了程序中的大多数函数,但我还是很奇怪没有main()函数来调用这些函数。那么这些函数是如何执行的&以什么顺序执行的??
c是主文件权限,但它也只包含函数定义,那么这些函数是如何执行的??
Diaolg SDK似乎与其他ble SDK不同,您能解释一下您使用的数据结构吗?没有main()调用,这些进程和服务是如何执行的??

WT_对话框(未验证)
嗨,hrg,

嗨,hrg,

应用程序从main_func开始,可以在arch_main.c中找到。

在main_func中,以下事情将依次发生:

1.外围块的初始化

2.调用rwip_init。此函数将启动堆栈。堆栈初始化后,GAPM_DEVICE_READY_IND消息将通过调度程序发送到应用程序任务。

3.当(1)循环开始时

4.在while循环中,调用rwip_schedule()函数。该函数检查消息队列中是否有消息。如果有,则将消息分派到目标任务。例如,当芯片冷启动时,在步骤2中,GAPM\u设备准备就绪\u IND此时将在消息队列中。rwip_schedule()将消息“发送”到应用程序任务。以及相应的处理程序(gapm_device_ready_ind_handler在app_task.c中)应用程序任务的一部分被触发执行。这个gapm_device_ready_ind_处理程序将在这之后向调度程序发送另一条消息,下面的序列图将出现。

5.处理完消息队列中的所有消息后,rwip_附表()就要完成了。在while(1)循环中,将触发WFI()函数。在此之后,芯片进入睡眠模式,直到出现外部唤醒或内部定时器唤醒(例如,是发送ANDVERTING数据包或连接数据包的时间)。
6.唤醒后,while(1)循环继续并再次调用rwip_schedule()以处理可能由下层堆栈或应用程序任务发送的消息。

以上解释是否回答了你的问题?

hrg
离线
最后一次见到:2年9个月前
大师
加入:2014-08-05 13:37
谢谢你的对话。

谢谢你的对话。

hrg
离线
最后一次见到:2年9个月前
大师
加入:2014-08-05 13:37
例如,如果我需要

例如,如果我只需要包含通用健康温度计配置文件,如何将其调用到我的程序中?即如何调用应用程序_proj.c内部??

hrg
离线
最后一次见到:2年9个月前
大师
加入:2014-08-05 13:37
为何没有回应

为什么仍然没有回应!!?

布莱恩
离线
最后一次见到:6年7个月前
专家 主人
加入:2014-10-16 18:10
你并不孤单,hrt。我

你并不孤单,hrt。我想回答同样的问题。对于完全托管的中心端点来说,这更复杂,因为没有示例。当我向应用程序组添加已经提供的“应用程序”配置文件时,我遇到了一个未定义的任务。我假设我需要在rwip_config.h中定义它,但最多有64个任务它已经满了。应该删除一些吗?鉴于此API更多的是配置方面的练习,而不是编程,因此文档的准确性和最新性至关重要,因为它不是最新的,我们需要回答像您这样的基本问题。