MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt

MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt

ID:59416194

大小:442.00 KB

页数:54页

时间:2020-09-19

MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt_第1页
MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt_第2页
MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt_第3页
MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt_第4页
MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt_第5页
资源描述:

《MTK软件培训课程(三)--MTK驱动架构分析ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MTK驱动架构分析MTK软件培训课程(三)张雷2005.11Camera程序架构Camera程序架构MMItaskCameraAPP:控制应用程序逻辑MDI:应用程序接口层,直接操作CamerafeatureGDI:处理Multi-layer,实现OSDMediatask调用Camera驱动程序的接口层CameraDriver控制CameraBackendIC,Sensor以及LCD硬件LCDinterface控制LCMCameraMMICameraMMI层实现Camera的应用程序的逻辑,控制Camera的各种状态。应用程序实现了Camera的状态机,包括了preview,captur

2、e,saveconfirm,savedown,coutdown,exit等各种状态控制。绘制Camera的OSD层实现连拍、延迟拍摄等功能实现对音频,LED,LCD的逻辑控制CameraMMI状态机(capture)CameraMMI说明CameraMMI仅控制程序的逻辑,并避免去使用CameraFeature。比如说进入preview,CameraMMI仅仅是向MDI接口模块发送一个Preview的请求,并将自己的数据结构传给MDI层,再由MDI层向Mediatask层发送请求,并最终调用到驱动程序来控制芯片实现preview。OSD是通过GDI层来绘制的,因为GDI支持最大4层的图像

3、叠加MediaDeviceInterfaceMDI模块是MediaDeviceInterface的缩写。MDI模块的作用是向多媒体APP程序提供一个简单易用的API,使得应用程序编程更加容易。MMI程序员在编程的时候可以不用知道MMI如何同MediaTask或其他的Drvier如何进行通信。MDI模块分为MDIAudio和MDICamera。CameraMDICameraMDI提供Camera相关的API,它有以下几个主要的作用:提供简单易用的Camera接口负责从MMItask向MediaTask发送并处理消息负责过滤和转换从Cameraapp到MediaTask的数据MDI的消息处理

4、MDI在处理了APP的数据以后最终要和MediaTask进行通信,它通过cam_send_XXX_req()函数向MediaTask线程发一条消息,并将MMItask线程阻塞,在收到MediaTask线程的相应以后,再将MMItask恢复到就绪状态。阻塞MMI的命令是CAM_WAIT_EVENT(XXX),当Mediatask调用CAM_SET_EVENT(XXX)时,恢复MMI线程。Preview实现下面我们来看看Preview函数从上层到底层的调用mmi_camera_preview_start(MMI逻辑控制)mdi_camera_preview_start(数据转换)mdi_

5、camera_preview_start_internal(数据打包,OSD层绘制,设置当前LCD的ID)media_cam_preview(发消息,阻塞MMI线程)cam_send_preview_req(消息排队)med_task_main(检查消息)med_maincam_main(识别消息) cam_preview_req_hdlr(消息处理,控制驱动程序)Prview的状态机MSGhandler函数我们可以注意到cam_preview_req_hdlr对可能出错的各种情况做了判断,并在程序设计的时候尽量的去考虑实时性。Msghandler对各种逻辑的判断,并不涉及太多

6、的硬件特性,更多的是对消息逻辑的控制,在一定时间没有驱动程序相应,或者Powercheck失败等情况,就返回并通过SetEvent来释放被阻塞的MMI线程。MSGhandler函数属于Mediatask模块GraphicsDeviceInterfaceMTK的画图功能有两套体系,一套是pixtel的体系,另一套是GDI。Pixtel的体系比较老,它只能画单层的图像,如果你想进行图像叠加,只能自己写程序来实现。而GDI体系由于有硬件的支持,它可以处理最多4个层数据的叠加,有很强的表现能力。硬件支持有:DMA的传输,图片硬件解码,以及2D加速器等。GDI应用大部分的菜单使用Pixtel_UI

7、来绘制,因为没有必要使用复杂的GDI。Camera程序必须使用GDI来实现,因为MTK的Camera驱动程序比较特殊,我看过的大部分手机都不支持在Preview区域以内的地方叠加东西(象框除外)。也就是说一般的手机只支持两层叠加的OSD,因为有了GDI,MTK支持3层叠加。除了Camera模块外,Idlescreen和MediaPlayer等也使用GDI。GDI和pixtel_UI的关系GDI的实现使用GDI_HANDLE,gdi_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。