原网址    http://blog.sina.com.cn/s/blog_6b2328a201014l26.html

###############模块的添加##################
1.添加新模块文件
code\jt

jt文件夹
jt\src\main.c
jt\inc\main.h

2.option.mak中

COMPLIST += jt
CUS_REL_SRC_COMP += jt

3.make文件中添加
make\jt\jt.mak

# Define source file lists to SRC_LIST
SRC_LIST = jt\src\main.c

# Define include path lists to INC_DIR
INC_DIR = jt\inc

# Define the specified compile options to COMP_DEFS
COMP_DEFS =

# Define the source file search paths to SRC_PATH
SRC_PATH = jt\src

##################### task添加 ##################################

1.app_task_config.h

task_index(INDX_JT)

task_module_map(INDX_JT, MOD_JT)
task_name("JT")
task_queue_name("JT Q")
task_priority(TASK_PRIORITY_MMI + 1)
task_stack_size(4096)
task_create_function(jt_task_create)
task_stack_internalRAM(KAL_FALSE)
task_external_queue_size(50)
task_internal_queue_size(0)
task_boot_mode(NORMAL_M)

2.user_msgid_app.h定义消息范围

#ifdef KAL_MSGID_EXPANSION

#if !defined(__L1_STANDALONE__)
#include "jt_sap.h"
#endif
MSG_ID_NAME(JT)
#else
MSG_ID_RANGE(JT, 1000)
#endif

// #define MSG_ID_RANGE(MSGNAME, MSGRANGE) \
// MSG_ID_##MSGNAME##_CODE_BEGIN, \
// MSG_ID_##MSGNAME##_CODE_TAIL = MSG_ID_##MSGNAME##_CODE_BEGIN +
MSGRANGE,

3.interface\jt\jt_sap.h 定义消息

MSG_ID_JT_STARTUP_REQ = MSG_ID_JT_CODE_BEGIN,

4.option.mak把消息定义头文件加入到公共的

COMMINCDIRS += interface\jt

5.main.c的实现

#include "main.h"
#include "syscomp_config.h"
#include "task_config.h"

static void jt_task_main(task_entry_struct * task_entry_ptr);

kal_bool jt_task_create(comptask_handler_struct **handle)
{
static const comptask_handler_struct my_handler_info =
{
jt_task_main,
NULL,
NULL,
NULL,
NULL,
};

*handle = (comptask_handler_struct
*)&my_handler_info;
return KAL_TRUE;
}

void jt_main(ilm_struct *ilm_ptr)
{

if (ilm_ptr->msg_id == MSG_ID_JT_STARTUP_REQ)
{
//消息处理
}
}

static void jt_task_main(task_entry_struct * task_entry_ptr)
{
kal_uint32 my_index;
ilm_struct current_ilm;

kal_get_my_task_index(&my_index);
while (1)
{
receive_msg_ext_q(task_info_g[task_entry_ptr->task_indx].task_ext_qid,&current_ilm);

stack_set_active_module_id( my_index, current_ilm.dest_mod_id
);

jt_main((void*)&current_ilm);

free_ilm(&current_ilm);
}
}

6.发送消息给自己创建的task

ilm_struct *ilm_ptr = NULL;
ilm_ptr = ilm_ptr = allocate_ilm(MOD_MMI);
ilm_ptr->msg_id = (msg_type)
MSG_ID_JT_STARTUP_REQ;
ilm_ptr->local_para_ptr =
NULL;//(local_para_struct*) local_data;
ilm_ptr->peer_buff_ptr = NULL;

SEND_ILM(MOD_MMI, MOD_JT, MMI_L4C_SAP, ilm_ptr);[

[转]MTK6252 11B添加模块、task实例的更多相关文章

  1. Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  2. Maven--多模块依赖实例解析(五)

    <Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)> <Maven—生命周期和插件(四)&g ...

  3. Linux下,Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  4. Ansible运维自动化工具19个常用模块使用实例【转】

    一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...

  5. Android单片机与蓝牙模块通信实例代码

    Android单片机与蓝牙模块通信实例代码 参考路径:http://www.jb51.net/article/83349.htm 啦啦毕业了,毕业前要写毕业设计,需要写一个简单的蓝牙APP进行交互,通 ...

  6. python中argparse模块用法实例详解

    python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

  7. centos 7下nginx搭建流媒体服务器【动态添加模块】

    1.安装nginx依赖包 yum install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel yamdi 2.下载解压nginx_mod_ ...

  8. Python添加模块路径

    1.用函数临时添加 1 import sys #导入sys模块 2 3 4 sys.path.append(r'/tmp/test') #要用绝对路径 5 print(sys.path) #查看模块路 ...

  9. 基于NCF的多模块协同实例

    简介 这次给大家带来的内容是基于NCF的多模块协同实例 主要讲解的内容是NCF的模块Xncf之间相互调用,相互协作的能力 这里可以把Xncf比作乐高玩具,一个Xncf就是你拥有的乐高玩具的类型,比如你 ...

随机推荐

  1. 改变一下主要发博的方向吧...转scratch!

    因为expression2实在是没什么好说的,BUI,水滴鱼大佬还有其他贴吧上的大佬,实在是多得不行,我一个小人物也说不了什么,然而scratch我却可以多发发脚本,思路,美工啊等等.所以以后我就主要 ...

  2. 使用ghost装完系统后出现“引用了一个不可用的位置”

    用GHOST版光盘安装完系统后,只有一个C盘,无法点桌面刷新,然后提示“D:/我的文档引用了一个不可用的位置.... 1.在管理员账户下定位到如下键值:“HKEY_CURRENT_USER\Softw ...

  3. hnsdfz -- 6.20 -- day5

    今天子贞的题...... 比前两天充实多了……肝了一个线段树,还玩了一个题答…… 虽然线段树不知道为什么50->25,题答题数据太水全场90+... 感觉也没想出来啥思路,无脑肝线段树,无脑玩题 ...

  4. Java基础随记-不定时更新

    一.hashMap与hashTable与ConcurrentHashMap: 1.HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary类.不过它们都同时实现 ...

  5. python中使用redis实战

    from redis import StrictRedis rds = StrictRedis(host='127.0.0.1', port=6379, db=0, decode_responses= ...

  6. Mysql ssl 连接

    在Azure创建了一个Mysql5.7服务,因为默认使用ssl连接,需要下载Azure的证书,并使用openssl生成客户端的证书.具体流程参考官方文档 大致步骤: 下载根证书, 安装openssl, ...

  7. 二、易语言 api 相关

    1. 取窗口句柄    对应的api: FindWindow (寻找顶级窗口) 2.取窗口矩形(位置) 对应的api: GetWindowRect(取窗口矩形) 3.取窗口标题 对应的api: Get ...

  8. Open Source 开发工具集

    Open Source 开发工具集 转自:http://www.linuxforum.net原作者:gogoliu(Pooh-Bah) 编辑器: vi:老牌编辑器,在各个unix和unix-like平 ...

  9. C#-IniFiles文件配置连接数据库

    第一步:创建一个INI文件放在程序下的bin下Debug下 第二步:添加一个类在程序中,进行读写操作 public class IniFiles { public string inipath; // ...

  10. win10 solidity开发环境搭建

    1. 软件安装 1) 安装nodejs 安装完成后将node.exe所在路径加入环境变量PATH中,以便在cmd命令行中直接使用node和npm命令 下面的操作在git bash下进行 2) 安装so ...