目录
官网地址:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D33
配套书籍:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D73
配套视频:http://www.fengke.club/GeekMart/su_fihsGbMhu.jsp
淘宝地址:http://shop115904315.taobao.com/
QQ群:457586268
MTK 平台介绍
MTK 是全球著名IC设计厂商台湾联发科技股份有限公司(MediaTek.Inc)的简称,其公司提供的手机开发和运行环境称之为 MTK 平台。MTK 平台分为智能机平台和功能机平台,目前国内市场上大多数安卓智能手机都采用的是 MTK 智能机平台研发方案,而在智能手机出现之前的手机称之为功能机,对应的平台也称之为功能机平台。虽然现在功能手机的用户亲睐度远低于智能手机,但是功能机平台却并没被淘汰,反而摇身一变成为当下最火热的智能穿戴设备首选研发平台。比如华为和360的儿童手表、步步高的小天才,糖猫儿童电话手表,小米的智能手环,inwatch Young智能健康手表等等都是基于MTK功能机平台研发的。另外MTK 功能机平台还用于车载,机器人、智能家居等智能设备的研发。相对于智能机平台而言,因其低功耗、低成本的优势是智能机平台无法取代的,且因其使用纯C语言开发,运行效率也是智能机平台(java语言)无法比拟的。
MTK 平台框架
根据本书需要讲解的内容,将MTK 平台软件架构简要概括,从上到下依次分为Appliction层、Framework层、driver 层、task层、Nucleus 操作系统
Appliction |
Framework |
Driver |
Task |
NucleusPLUS操作系统 |
接下来,我们从下到上依次介绍每个层次结构。
1、NucleusPLUS操作系统
NucleusPLUS是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,NucleusPLUS是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。
在典型的目标环境中,NucleusPLUS核心代码区一般不超过20K字节大小。NucleusPLUS采用了软件组件的方法。每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成的。除了少数一些特殊情况外,不允许从外部对组件内的全局进行访问。由于采用了软件组件的方法,NucleusPLUS各个组件非常易于替换和复用。NucleusPLUS的组件包括任务控制、内存管理、任务间通信、任务的同步与互斥、中断管理、定时器及I/O驱动等。
2、Task层
Task 层负责系统的任务调度,实际上就是一个死循环。MTK平台中几乎所有的系统消息,最终都是在这一层调用。开发者可以自己新建 Task,但在实际项目开发中,很少涉及到这一层的修改。
3、Driver 层:
Driver层为驱动层,所有的硬件驱动都在这一层调用执行。包括摄像头驱动、LCD驱动、蓝牙驱动、按键配置等。这一层在开发中是重点,任何驱动调试,以及外设添加都要在这一层修改或添加驱动代码。
4、Framework 层
这一层主要封装了一些功能接口,为 Application 开发提供支持。包括 gui、gdi、mdi、filemanger、timer 等等。在实际开发过程中,使用到的函数接口,大多数来自于这一层。另外,自己也可以在这一层封装或修改功能接口,比如定制自己的 category screen 函数,实现特定的风格。
5、Appliction 层
Appliction 层是应用层,主要负责跟用户交互,与Framework 层统称为 MMI(The man-machine interface人机界面)。系统中自带的音乐播放器、通讯录、****等具体功能都属于一个 Application。在MTK平台软件开发中,大部分的工作都集中在这一层。