手机工厂测试模式

时间:2022-10-12 08:21:59

手机工厂测试模式

【摘要】 本文以MTK的工厂测试模式为例,介绍了手机工厂测试模式的框架结构和客制化的过程。

【关键字】 工厂测试模式 FTM 框架 客制化

概述:

MTK的工厂生产模式(简称FTM)同高通平台的FFBM(Fast Factory Boot Mode),均属于板级测试模式,即在工厂生产阶段,手机各功能器件(包含主板)还没有被组装完成之前,对手机主板进行板级的测试,以保证主板和各功能器件的完好性与可用性。工厂测试模式的启动为快速启动,一般小于20s,因此该模式一般是采用linux的text mode 方式,这种启动方式快,各功能测试为列表模式,操作界面简单,不需要复杂的设计,更不会考虑用户体验。进入工厂测试模式的方式有三种:一种是power key + volume down 开机,这种方式是在启动过程中的preloader 阶段检测到有这种组合按键按下后,即将启动模式设置为工厂测试模式。从而在后续的启动加载过程中使手机进入工厂测试模式;第二种方式是在开机的时候使用power key + volume down进入到快速启动菜单,再在菜单中选择进入什么模式(与第一种模式不同时存在)。第三种方式为使用PC测ATA工具触发手机进入工厂测试模式,也就是由PC侧工具发送特殊命令到手机侧。

一、工厂模式框架结构

MTK平台的工厂测试模式的结构设计如下:1:既然是测试,则存在一个FTM模块列表,列出了所有待测试的模块。这些模块为一个模组阵列,会首先注册该初始化阵列到系统,在FTM初始化时回调每一个模块的初始化函数,并且注册一个模块的测试入口函数到系统中,供FTM模式测试时调用。2:Graphics,这是一个功能性的Graphic库,提供一些诸如文本,point,rectangle,circle,line等的Graphic接口。3:Event:一个专门用于监听所有时间的接口,诸如触屏事件,按键事件等。4:Resource:一个用于读取png格式文件并将其转换为Graphic对象的接口。5:Mini-UI:一个轻量级的用户交互接口。6:Factory Program:工厂测试模式的main 程序,用于初始化Mini-UI,工厂模式基础框架,读取定制化的配置文件和进入工程测试模式主界面等。7:FTM modules:首先,每一个FTM module 都是一种待测硬件的测试程序,并且可以上报测试结果到用于界面;其次,每一个FTM module 的入口函数都是通过FTM的基础框架调用的,然后进入并执行每一个FTM module的测试程序。8:FTM:这是一个模块的注册和注销接口,内存分配和释放的接口,属性设置与获取的接口,以及查询注册模块的接口等。

二、工厂模式客制化

工厂模式可以根据不同的目标产品也就是根据不同的硬件组装而成的手C进行不同的客制化。针对某一目标产品,其客制化又包含有测试功能模块的客制化,测试菜单的客制化与测试数据的客制化三部分。首先是目标产品的客制化:不同的手机产品可以装配不同的按键和显示屏,因此一个新的产品的工厂模式的启动,需要首先客制化并告知工厂测试模式该款手机拥有的按键个数以及LCD显示方案(诸如分辨率等)。工厂模式的客制化部分位于文件夹factory/ custom/中,并且该文件夹中还包含有位于inc子文件夹的客制化文件和位于res子文件夹的资源文件。在custom 文件夹中有几个文件需要修改:

Cust.h:该文件是主客制化文件,用于定义该工厂测试模式所拥有的测试模块,要包含一个测试模块,则在该文件中定义“FEATURE_FTM_XXX”,如下:

#define FEATURE_FTM_AUDIO

#define FEATURE_FTM_BT

Cust_lcd.h :用于定于工厂模式下显示的分辨率和位于res/images文件夹下的资源文件,这里需要注意的是,不正确分辨率会导致工厂模式的不正常。如下:

#define CUST_LCD_AVAIL_WIDTH 320

#define CUST_LCD_AVAIL_HIGHT 480

#define DEFINE_TEST_IMAGE_FILENAMES(x) \

Cust_keys.h :用于定义按键个数和与工厂菜单的按键对应关系。为了能够操作工厂模式,四个按键是需要被映射到物理按键(或者虚拟按键)上,这四个按键为UP/ VolumeUp,Down/VolumeDow,Back和Confirm按键。如下:

#define CUST_KEY_UP KEY_UP

#define CUST_KEY_VOLUP KEY_VOLUMEUP

#define CUST_KEY_CONFIRM KEY_MENU

#define CUST_KEY_BACK KEY_BACK

其次是工厂测试的客制化。除了目标产品的客制化以外,工厂模式可以通过一个位于内存根目录名称为factory.ini的文件,用于实时的客制化工厂菜单和测试数据。通过修改该文件中用于描述菜单名字的MenuItem=XXX,可以调整测试条例和测试流程。另外,一些特殊的测试数据,可以通过修改一个格式为=的变量进行修改。如下为某一个项目使用的factory.ini:

// test item and test flow configuration

MenuItem=按键(M);

//WIFI

WIFI.SSID=mtkguest;

//Vibrator

Vibrator_Last_Time=0;

//AUDIO

Audio.Ringtone=5;

结束语:经过以上几部分的谈论,可以对手机的工厂测试模式框架以及客制化过程进行一个了解。

参 考 文 献

[1] MTK Factory_Mode_Training.pdf 128-144

上一篇:四节点四边形网格单元中一种新的云图生成算法 下一篇:智能ODN技术介绍以及对目前部署难点的理解