个人学习展讯的一个笔记,备忘。
1、MS_MMI\source\mmi_app\kernel\c\ app_tasks.c:加入:
// kernel/app_task.c文件是task的启动的地方;所以加上
① task_id的声明(g_interphone_init_task_id);
② 以及task的extern处理方法的声明;
③ 及一些必要的task建立的参数:P_INTERPHONE_STACK_SIZE、P_INTERPHONE_QUEUE_NUM、P_INTERPHONE_TASK_PRIORITY;
④ 在SCI_InitAppTasks方法中加入task的创建方法;
BLOCK_ID g_interphone_init_task_id;
extern void InterphoneINIT_Task(uint32 argc, void *argv);
#define P_INTERPHONE_STACK_SIZE 4000
#define P_INTERPHONE_QUEUE_NUM 8
#define P_INTERPHONE_TASK_PRIORITY 32
g_interphone_init_task_id = SCI_CreateThread(
"T_P_INTERPHONEINIT",
"Q_P_INTERPHONEINIT",
InterphoneINIT_Task,
0,
0,
P_INTERPHONE_STACK_SIZE,
P_INTERPHONE_QUEUE_NUM,
P_INTERPHONE_TASK_PRIORITY,
SCI_PREEMPT,
SCI_AUTO_START);
2、MS_MMI\source\mmi_app\app\pb\h\mmipb_signal.h:加入:
extern BLOCK_ID g_interphone_init_task_id; //task_id的引入
#define P_INTERPHONEINIT g_interphone_init_task_id //task_id的宏定义
3、MS_MMI\source\mmi_app\kernel\c\ mmimain.c:加入:
void InterphoneINIT_Task( //task处理方法的定义
uint32 argc,
void *argv)
{
xSignalHeaderRec *psig = NULL;
while (1)
{
MMI_RECEIVE_SIGNAL(psig, P_INTERPHONEINIT);
switch(psig->SignalCode)
{
case PB_SIG_INIT_SIM_REQ:
break;
default:
break;
}
MMI_FREE_SIGNAL(psig);
}
}