微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > MTK 61D MMI开发相关

MTK 61D MMI开发相关

时间:10-02 整理:3721RD 点击:
新建了一TASK,用于执行功能机自定义逻辑,但是需要进行某些操作时,需要在MMI TASK执行自定义的函数(函数有调用必须在MMI TASK执行的函数)。请问有实现方式么?

目前用StartTimer实现,但是感觉用法有点怪异,而且不好传递参数,希望有高手提供解决方法!

你要传递什么参数,不能用指针变量吗?
starttimer用法没有怪异吧,

大家都是用StartTimer实现的么?感觉上应该有更好的方法。
StartTimer的原型为:
void StartTimer(U16 timerid, U32 delay, FuncPtr funcPtr);
其中并无funcPtr的参数。
StartTimer调用的StartTimerCommon原型为:
static void StartTimerCommon(U16 timerid, U32 delay, oslTimerFuncPtr funcPtr, void* arg, mmi_frm_timer_type_enum timer_type);
其中确实有funcPtr的参数。但是StartTimer中调用方式为:
StartTimerCommon(timerid, delay, (oslTimerFuncPtr)funcPtr, (void*)timerid, TIMER_IS_ALIGNMENT);
funcPtr的参数为(void*)timerid~所以觉得困惑了

MTK的MMI开发方式相对于工控类开发还是有比较大区别的。

什么工控类啊,工控类要怎样开发

我这个菜鸟只有一个方式告诉你,有一个东西叫做全局变量

全局变量当然可以传递要传递参数,全局变量多了程序可读性很差,而且很容易被误修改。这个问题的重点是除了StartTimer方式,还有其它方式实现在MMI中调用我的函数么?

很多函数都不是timer的,不知道你要搞什么。也不知道怎么说,如果你的函数不是事件(按键,触摸屏,中断)驱动的,而你又要跑这个函数,你可以自己建立一个任务,然后在while里面一直跑自己的函数,只是这样的设计,会增加系统的负担,不是好的设计,为什么有timer就是为了减轻负担

建立的任务不需要的时候可以让task sleep,并不会增加系统负担。之所以需要在MMI中运行自定义函数的原因为:有时需要调用一些PLUTOMMI中的函数,这些函数必须在MMI任务中执行,在我自建任务中执行会有些问题。

没什么问题。

小编是模拟执行而已,当然会酱紫用啊!

并不是模拟器中执行,在真机上运行的。
MTK功能机系统功能真弱

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top