删除TASK_DBG和TASK_GTL

4个职位/ 0个新
最后发表
Wouter
离线
最后看到:6年9个月前
专家
加入:2014-01-29 19:56
删除TASK_DBG和TASK_GTL

嗨,对话框中,

我如何删除TASK_DBG和TASK_GTL来增加我可以使用的自由堆栈任务的数量。当前我的项目不再工作,如果我添加另一个配置文件的服务(堆栈任务)

谢谢

WT_Dialog(未验证)
嗨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;
};
/// KE任务环境结构
struct ke_task_env_tag
uint8_t task_cnt;
struct ke_task_elem task_list [];
};
外部volatile struct ke_task_env_tag ke_task_env;
空白remove_task (uint8_t task_type)
uint8_t高密度脂蛋白;
ke_task_elem * curr_list = ke_task_env.task_list;
Uint8_t curr_nb = ke_task_env.task_cnt;
uint8_t乐;
//搜索任务句柄
(高密度脂蛋白= 0;高密度脂蛋白< curr_nb;高密度脂蛋白+ +)
如果(curr_list(高密度脂蛋白)。类型= = task_type)
打破;
If (hdl == curr_nb)
返回;
(kk =高密度脂蛋白;kk < (curr_nb-1);+ + kk)
ke_task_env.task_list(乐)。p_desc = ke_task_env.task_list [kk + 1] .p_desc;
ke_task_env.task_list(乐)。类型= ke_task_env.task_list [kk + 1] .type;
ke_task_env。task_cnt - = 1;
在arch_main.c中找到以下行:
/*
************************************************************************************
*应用程序初始化
************************************************************************************
*/
#如果(BLE_APP_PRESENT)
app_init ();/ /初始化应用程序
#endif /* #if (BLE_APP_PRESENT) */
把它们改成
/*
************************************************************************************
*应用程序初始化
************************************************************************************
*/
#如果(BLE_APP_PRESENT)
remove_task (TASK_GTL);
remove_task (TASK_DBG);
app_init ();/ /初始化应用程序
#endif /* #if (BLE_APP_PRESENT) */

Wouter
离线
最后看到:6年9个月前
专家
加入:2014-01-29 19:56
多谢WT_Dialog !

多谢WT_Dialog !

效果非常好。

Wouter
离线
最后看到:6年9个月前
专家
加入:2014-01-29 19:56
嗨,对话框中,

嗨,对话框中,

首先,它看起来没问题,但是删除TASK_GTL会显著增加消耗的电流。我不确定这是什么原因,但看起来处理器不再进入睡眠状态