6个员额/ 0个新员额
最后发表
hrg
离线
最后看到:2年8个月前
大师
加入:2014-08-05 37
程序数据结构

嗨对话小组

能否解释一下SDK程序的程序执行流程(比如ex Proximity reporter fh)虽然我理解程序中的大部分函数,但我仍然怀疑是否有main() func来调用这些函数。那么这些函数是如何执行的呢?
在proximity_reporter_fh中app_prox_project .c是主文件,但它也只包含函数定义,那么这些函数是如何执行的??
碉楼SDK似乎和其他ble SDK不一样,你能解释一下你使用的数据结构吗?如果没有main()调用,这些流程和服务是如何执行的?

WT_Dialog(未验证)
嗨hrg,

嗨hrg,

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

在main_func中,下面的事情会依次发生:

1.外围块的初始化

2.rwip_init。这个函数将初始化堆栈。初始化堆栈之后,GAPM_DEVICE_READY_IND消息将通过调度器发送给应用程序任务。

3.While(1)循环开始

4.在while循环中,调用rwip_schedule()函数。这个函数检查消息队列中是否有消息。如果是,它将把消息分派给目标任务。例如,当芯片冷启动时,在步骤2中,GAPM_DEVICE_READY_IND此时将在消息队列中。Rwip_schedule()将向应用程序任务“发送”消息。和相应的处理程序(在app_task.c gapm_device_ready_ind_handler)触发应用程序任务执行。的Gapm_device_ready_ind_handler将在此之后向调度程序发送另一条消息,下面的序列图将会发生。

5.处理完消息队列中的所有消息后,rwip_schedule ()将会完成。在while(1)循环中,WFI()函数将被触发。之后,芯片进入睡眠模式,直到有外部唤醒,或内部定时器唤醒(例如,它是发送和广告包或连接包的时间)。
6.醒来后,while(1)循环继续再次调用Rwip_schedule()来处理可能由底层堆栈或应用程序任务发送的消息。

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

hrg
离线
最后看到:2年8个月前
大师
加入:2014-08-05 37
谢谢WT_Dialog。

谢谢WT_Dialog。

hrg
离线
最后看到:2年8个月前
大师
加入:2014-08-05 37
例如,如果我需要的话

例如,如果我只需要包括通用的健康温度计配置文件,如何调用它到我的程序?Ie如何调用内部app_proj .c ??

hrg
离线
最后看到:2年8个月前
大师
加入:2014-08-05 37
为什么没有回应

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

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

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