完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 目录 一、MTK开发环境搭建 3 二、MTK平台框架 6 三、MTK编译指令 11 四、MTK编程入门 11 五、资源 12 六、新增APP 22 MTK编程——新增APP 在MTK 系统中,所有的功能都是模块化管理,并且大多数功能都有自己的功能宏,和对应的源代码文件,我们把这种功能模块称之为应用,简称APP(Application),比如闹钟、计算器、日历等都是一个APP。在之前的例子中我们把自己的代码写在了IdleCommon.c 文件中,这个文件属于待机功能模块。很显然我们把代码写在这个文件里面是不科学的,接下来我们就添加自己的功能模块,并建立自己的源文件和资源文件。 1、 首先我们对平台做一些修改,在makeFengKe2502C_WT_11C_GPRS.mak文件中定义一个平台代码公共宏__PLATFORM_PUBLIC__,把我们对平台修改的代码全部用这个宏包含。代码如下: 2、 在plutommimmi文件夹下新建一个文件夹,命名为CustomerApp,后面我们把自己开发的所有功能模块都放在这个文件夹下面。并创建CustomerAppHelloMTKSrc、CustomerAppHelloMTKInc、CustomerAppHelloMTKRes目录。在以上三个目录中分别新建HelloMTK.c、HelloMTK.h、HelloMTK.res三个文件。如下图所示: 3、 在plutommimmiInc 目录下新建MMI_features_switch_custom_app.h文件。在后面的开发中,这个文件专门用于添加我们自己的APP功能宏,把这个文件包含到plutommiCustomerCustResourceFengKe2502C_WT_11C_MMIMMI_features_switchFengKe2502C_WT_11C.h文件中,MMI_features_switchFengKe2502C_WT_11C.h代码如下: 4、 在MMI_features_switch_custom_app.h文件中定义宏开关,代码如下: 在MMI_features.h文件末尾定义宏。代码如下:
5、 在makeplutommimmi_appmmi_app.mak文件末尾加载源文件和头文件,添加代码如下: 6、 在plutommimmiIncMmi_pluto_res_range_def.h文件末尾加载资源文件,添加代码如下: 7、 最后,把我们添加在 idle.res、MainMenuRes.res中的资源移到HelloMTK.res中,把idlecommon.c中的源码移到HelloMTK.c文件中。代码如下: HelloMTK.c 文件 #include "MMI_features.h" #if defined(__MMI_HELLO_MTK__) #include "HelloMTK.h" #include "GlobalResDef.h" #include "Mmi_frm_gprot.h" #include "Gui_themes.h" void mmi_my_mtk_func_exit(void) { } void mmi_my_mtk_func(void) { mmi_frm_scrn_enter(GRP_ID_ROOT, SCR_ID_MY_MTK_FUNC, mmi_my_mtk_func_exit,mmi_my_mtk_func,MMI_FRM_FULL_SCRN); gui_set_text_color(UI_COLOR_WHITE);/*设置字符打印颜色*/ gdi_image_draw_id(0, 0, IMG_ID_HELLO_MTK);/*显示图片*/ gui_move_text_cursor(10, 15);/*设置字符打印坐标*/ gui_set_font(&MMI_medium_font);/*设置字符显示的字体*/ gui_print_text((UI_string_type)GetString(STR_ID_HELLO_MTK));/*打印字符*/ /*刷新屏幕*/ gui_BLT_double_buffer(0, 0, UI_DEVICE_WIDTH,UI_DEVICE_HEIGHT); /*注册右软键事件*/ SetKeyHandler(mmi_frm_scrn_close_active_id, KEY_RSK, KEY_EVENT_UP); } void mmi_highlight_my_mtk(void) { SetLeftSoftkeyFunction(mmi_my_mtk_func, KEY_EVENT_UP); SetKeyHandler(mmi_frm_scrn_close_active_id, KEY_RSK, KEY_EVENT_UP); } #endif HelloMTK.h 文件 #ifndef __HELLOMTK_H__ #define __HELLOMTK_H__ #include "MMI_features.h" #if defined(__MMI_HELLO_MTK__) #include "mmi_rp_app_hellomtk_def.h" extern void mmi_my_mtk_func_exit(void); extern void mmi_my_mtk_func(void); extern void mmi_highlight_my_mtk(void); #endif #endif /*__HELLOMTK_H__*/ HelloMTK.res 文件 #include "mmi_features.h" #include "custresdef.h" #if defined(__MMI_HELLO_MTK__) /*添加菜单ID*/ #endif 最后依次执行make new,make gen_modis,重新运行模拟器,运行结果虽然没变,但我们把代码模块化了,方便以后的维护、移植。这只是一个很小的例子,如果是一个上万行代码的应用,这种方式就能体现出极大的优势。另外audio.zip、images.zip中的资源文件我们也可以建立文件夹单独列出来管理,请读者自己尝试,在后面的app实例开发中我们会采用这种方法。 `
(6)MTK 编程之新增APP.pdf
(423.55 KB, 下载次数: 0
)
|
|
|
|
590 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2241 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1233 浏览 0 评论
1788 浏览 0 评论
1464 浏览 0 评论
74854 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:59 , Processed in 0.530380 second(s), Total 63, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号