嗨,对话框的团队,
我工作在DA14585与外部主机模式,BLE在扫描器/观察模式配置。我使用ST32F4外部主机与UART接口。
我想根据主机的特殊要求在BLE上添加额外的功能。
我曾在这里发布过类似的问题
https://support.dialog-semiconductor.com/comment/22363
由于我还没有收到任何解决方案,我在考虑是否可以让APP_TASK和GTL_TASK共存。通过这种方法,我想
命令可以发送,如果我能重新路由
单片机(GTL_TASK )-------------> 祝福(APP_TASK )----------- ke_msg_forward——>堆栈(TASK_GAPM)
响应可以被重路由为
栈(TASK_GAPM )-------------> 祝福(APP_TASK )----------- ke_msg_forward——>单片机(GTL_TASK)
通过这种方式,我也可以实现我的定制任务,其中没有BLE堆栈干预
单片机(GTL_TASK )-------------> 祝福(APP_TASK) LED闪烁
祝福(APP_TASK )----------------> 单片机对gpio_read (GTL_TASK)
请让我知道这是可实现的,并为相同的一些指示。
期待立即得到帮助。
提前谢谢!
关键词:
设备:
嗨Nishal,
你所描述的程序是可以实现的,谢谢你的信息。让我分享一些可能对你有帮助的建议:
ke_task_id_t prf_get_task_from_id_func (ke_msg_id_t id)
{
...
TASK_APP, / / 11。app_main_task_pos
}
你应该像下面这样修改prf_get_task_from_id_func。否则,to将得到一个UNKNOWN_TASK错误。
ke_task_id_t prf_get_task_from_id_func (ke_msg_id_t id)
{
ke_task_id_t任务= TASK_NONE;
uint8_t idx = KE_IDX_GET(id);
uint8_t我;
id = KE_TYPE_GET (id);
//查找profile任务中是否存在profile
(我= 0;i < BLE_NB_PROFILES;我+ +)
{
//检查配置文件标识符是否已知
如果(prf_env.prf[我]。id = = id)
{
任务= prf_env.prf[我].task;
打破;
}
}
if (id == TASK_ID_APP)
{
任务= TASK_APP;
}
返回KE_BUILD_ID(任务、idx);
}
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的建议。
我有几个问题
1.无论嵌入式/主机处理器模式如何,GTL线程总是默认创建的吗?
2.我可以使用empty_peripheral_template或empty_template_ext示例作为起点吗?
-如果我使用empty_peripheral_template,我不明白MCU消息是如何接收的。
-如果我使用empty_template_ext,那么我必须用CFG_APP(构建时宏或嵌入式/外部处理器)解决依赖关系
提前谢谢!
Nishal
嗨Nishal,
关于你的第一个问题,让我确认一下。关于你的第二个问题,我建议使用empty_template_ext。
谢谢,PM_Dialog