删除task_dbg和task_gtl

4个帖子/ 0新
最后一篇
韦特
离线
最后一次露面:6年4个月前
专家
加入:2014-01-29 19:56
删除task_dbg和task_gtl

嗨对话框,

如何删除task_dbg和task_gtl以提高我可以使用的免费堆栈任务的数量。如果我添加另一个服务配置文件(堆栈任务),目前我的项目不再工作了

谢谢

wt_dialog.
离线
最后一次露面:3年1个月前
员工
加入:2013-12-05 14:43
嗨wouter,
嗨wouter,
对于SDK3.0.4,这是删除Task_GTL和Task_DBG的代码。
一个备注,如果您在集成处理器解决方案中使用DA14580,则只能删除Task_GTL,
在Arch_Main.c中添加以下内容
/// Ke任务元素结构
struct ke_task_elem.
{
uint8_t类型;
struct ke_task_desc * p_desc;
};
/// Ke任务环境结构
struct ke_task_env_tag.
{
uint8_t task_cnt;
struct ke_task_elem task_list [];
};
extern valatile struct ke_task_env_tag ke_task_env;
void remove_task(uint8_t task_type)
{
UINT8_T HDL;
volatile struct ke_task_elem * curr_list = ke_task_env.task_list;
UINT8_T CURR_NB = KE_TASK_ENV.TASK_CNT;
uint8_t kk;
//搜索任务句柄
for(hdl = 0; hdl
{
if(curr_list [hdl] .type == task_type)
{
打破;
}
}
if(hdl == curr_nb)
返回;
for(kk = hdl; kk <(curr_nb-1); ++ kk)
{
ke_task_env.task_list [kk] .p_desc = ke_task_env.task_list [kk + 1] .p_desc;
ke_task_env.task_list [kk] .type = ke_task_env.task_list [kk + 1] .type;
}
ke_task_env.task_cnt - = 1;
}
在Arch_Main.c中找到以下行:
/ *
************************************************************************************
*应用程序初始化
************************************************************************************
* /
#if(ble_app_present)
{
app_init();//初始化应用程序
}
#endif / * #if(ble_app_present)* /
并改变它们
/ *
************************************************************************************
*应用程序初始化
************************************************************************************
* /
#if(ble_app_present)
{
remove_task(task_gtl);
remove_task(task_dbg);
app_init();//初始化应用程序
}
#endif / * #if(ble_app_present)* /

韦特
离线
最后一次露面:6年4个月前
专家
加入:2014-01-29 19:56
非常感谢wt_dialog!

非常感谢wt_dialog!

奇迹般有效。

韦特
离线
最后一次露面:6年4个月前
专家
加入:2014-01-29 19:56
嗨对话框,

嗨对话框,

首先,它看起来还可以,但删除Task_GTL显着提高消耗的电流。我不确定这个原因,但看起来处理器不再睡觉了