下载此文档

MTK程序分析.ppt


文档分类:IT计算机 | 页数:约32页 举报非法文档有奖
1/32
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/32 下载此文档
文档列表 文档介绍
MTK程序分析
康勤

程序整体结构
程序的封装性,导致能看到的进程不多,很多进程都是以库的形式出现
程序员可以通过MTK提供的模版自己新加线程。
,通过MTK提供的模版,我们可以推测的出程序其他进程的创建和实现
程序整体结构
p_config_tbl结构,从这个结构,我们可以看到跟进程创建有关的需要使用到的一些参数:比如进程创建的入口,进程的堆栈空间大小和地址。
这个是提供给程序员添加新模块时需要使用到的,从这里我们可以推测其他进程的创建也应该是采用通用的方式
以下将举一些可以看到代码的线程进行分析:
程序整体结构
分析FMT模块。
FMT模块和MMI中的MMI_FILEMANAGER有着对应的关系。
可以把FMT模块看成是MMI_FILEMANAGER的底层操作模块。 MMI_FILEMANAGER是FMT的上层MMI管理。
程序整体结构
FMT很简单,但麻雀虽小五脏具全,一个进程应该具有的,它都含有,所以很方便分析
FMT的开始是从fmt_create开始的,p_config_tbl中得到结论。在这个结构中需要传入一个进程的入口函数。FMT进程估计就是把fmt_create函数地址给传进去的。
程序整体结构
这个 fmt_create主要作用还是传递入口函数地址:有如下几个函数:
fmt_task_main, /* task entry function */
fmt_init, /* task initialization function */
NULL, /* task configuration function */
fmt_reset, /* task reset handler */
NULL, /* task termination handler */
程序整体结构
我们需要关注的是fmt_task_main函数。这个函数可以说是整个进程的心脏。
它里面包含一个消息泵,就是一个无限循环,不停从消息队列中获取消息分发消息:
1。从消息队列中获取消息,通过函数receive_msg_ext_q来实现的,这个函数没有给出具体原代码,大家有兴趣可以通过里面的参数来猜想它的实现方式。
程序整体结构
2。设置当前活动模块stack_set_active_module_id。
3。分发消息,通过消息号,找到对应的消息处理函数,同时传入的参数中可能包含一些需要的参数数据,有时可能是具体数值,有时是全局的数据指针。处理完后封一个消息,发完需要回复的模块(一般是消息发起者模块)
程序整体结构
4。释放返回消息数据内存区域free_ilm。
到这时一个完整进程执行过程。
这个是一个小的进程的执行过程,其实其他的进行执行过程应该也差不多,虽然表面看起来不同,但实质上应该是一样的
我们来看MMI进程。
这个进程应该也像普通进程一样通过mmi_create来把入口传入进操作系统。
程序整体结构
这个入口也包含了一系列的入口函数地址,其中还是那个MMI_task最为关键,可以称之为心脏或消息泵。
在这个MMI_task里面,虽然看起来很复杂,而且整个结构跟刚才的看起来一点都不像,但如果再深入点去看看代码,去想想,应该发现这个MMI的实质跟刚才那个简单的FMT进程是一样的。
下面对其进行分析:

MTK程序分析 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数32
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rjmy2261
  • 文件大小0 KB
  • 时间2015-10-24