【MT8382/8121】为MTK的工厂测试添加测试项
摘要:
本文介绍添加MTK工厂测试项的步骤及调试技巧。
纲要:
1. 描述添加MTK工厂测试项的步骤
2.调试小技巧
1. 描述添加MTK工厂测试项的步骤
以添加红外测试为例:
1. mediatek/factory/inc/common.h
enum枚举添加ITEM_IR_TEST到最下面的ITEM_MAX_IDS上面,即倒数第2个;
2. mediatek/factory/inc/uistrings_chn.h
添加 #define uistr_ir_test “红外”;
这个字符串用于匹配factory.ini配置文件的测试项,只有两者一致的时候才会添加。注意这个文件是gbk编码。
unistrings.h是选择了英文才会使用,我们现在都使用的是中文,所以会匹配uistring_chn.h
3. mediatek/factory/src/factory.c
ftm_test_items[]添加item(ITEM_IR_TEST, uistr_ir_test);(在手动测试和单项测试中显示,必添加)
ftm_auto_test_items[]添加item(ITEM_IR_TEST, uistr_ir_test);(在自动测试中显示,尚不清楚机制,可选)
这两个参数就是步骤1 2添加的项目,名字要一致。
这里一般都会使用宏来控制是否添加,除非是都测的项目,以免运行出错。
4. mediatek/factory/src/test/ftm_irtest.c
添加ftm_irtest.c文件。实现ir_test_init(), ir_test_entry()两个函数。函数名没有要求。具体实现参考ftm_rftest.c。(rftest是通过代码判断是否测试通过的,如果需要手动确认是否通过,参考ftm_otg.c。主要区别在entry函数)
ir_test_init()中需要调用ftm_alloc,这个会注册一个ITEM_IR_TEST相关的结构体。然后调用ftm_register,把ir_test_entry和这个结构体绑定。
ir_test_init()在factory初始化过程中会调用。
ir_test_entry()在项目被点击的时候调用。需要实现一些UI相关的绑定,以及具体的验证方法。通常会启动一个线程如ir_update_thread来测试,entry通过全局变量ir_factory检测测试结果。
5. mediatek/factory/src/test/ftm_mods.c
添加extern int ir_test_init();
在ftm_init_funcs[]的倒数第二个(NULL上面)添加ir_test_init。这样在factory启动的时候就会自动调用ir_test_init,从而将ITEM_IR_TEST测试项与ir_test_entry绑定起来。
至此,所有添加项都关联起来了。
6.mediatek/factory/Android.mk
将ftm_ir_test.c加进TEST_SRC_FILES中。
同样用宏控制是否添加,这里用到CVTE_IRREMOTE_APP_SUPPORT的宏来控制。
7.factory.ini
添加MenuItem=红外;需要和uistr_ir_test 名字一致,否则无法匹配。
这个文件会先去/sdcard目录寻找,再去/etc目录寻找,我们调试的时候直接放进sdcard目录就可以了。
8.mediatek/custom/active_1051j/factory/factory.ini
把修改的ini文件放入custom目录下,使用mk文件将其拷贝至/etc目录下。
custom的factory目录会存在factory.ini和factory_chn.ini两个文件。如果是中文,则把factory_chn.ini拷进去,并重命名为factory.ini;英文则直接拷贝。也可以只留一个factory.ini文件,里面是中文。factory程序只会解析名为factory.ini的文件。
调试小技巧:
1. 烧录eng版本软件,打开USB调试。
2. 重启进入MTK工厂测试。
3. 需要烧录新factory程序的时候,push进/system/bin并chmod 777 /system/bin/factory。
4. 执行ps factory查询当前正在运行的测试程序,kill掉。
5. 在shell中输入factory重新启动MTK工厂测试程序。
6. 再次需要烧录新的factory程序的时候,ctrl+C即可停掉当前的factory程序,然后重新执行步骤3,5。 无需重启。
版权所有,转载请注明出处:
【MT8382/8121】为MTK的工厂测试添加测试项的更多相关文章
- 【干货】利用MVC5+EF6搭建博客系统(二)测试添加数据、集成Autofac依赖注入
PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.测试仓储层.业务层是否能实现对数据库表的操作 1.在52MVCBlog.IRepository程序集下创建IsysUserInf ...
- 从零开始,搭建博客系统MVC5+EF6搭建框架(2),测试添加数据、集成Autofac依赖注入
一.测试仓储层.业务层是否能实现对数据库表的操作 1.创建IsysUserInfoRepository接口来继承IBaseRepository父接口 namespace Wchl.WMBlog.IRe ...
- 如何在MVC_WebAPI项目中的APIController帮助页面添加Web测试工具测试
本文转载自:http://www.cnblogs.com/pmars/p/3673811.html 先看效果图: 以下是原文: 如何在帮助页面添加测试工具 上一篇我在ASP.NET里面添加了一个Hel ...
- ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]
ActiveX 添加测试工程 1.新建工程MFC application, 2.添加完毕,在main Dialog中, 右键[Insert Activex Control],选择你的ActiveX控件 ...
- Mantis Administrator控制密码、注册不用邮件验证、添加测试员[Z]
Mantis默认安装完成后,管理员创建用户,但无法设置用户密码,只有通过邮件由用户自行修改.无法适应某些没有统一邮箱的情况,现将关闭邮箱验证方法和管理员设置用户密码方法验证通过 不用邮件验证: c ...
- [Xcode 实际操作]九、实用进阶-(30)为IAP(支付方式)内购项目添加测试账号,测试内购功能
目录:[Swift]Xcode实际操作 本文将演示如何添加测试账号,以方便对内购功能进行测试. IAP,即in-App Purchase ,是一种智能移动终端应用程序付费的模式, 在苹果(Apple) ...
- java工厂模式的测试
/** * 工厂模式的测试 * <p> * 工厂方法模式 * 工厂方法模式是简单工厂模式的进一步抽象化和推广,工厂方法模式里不再只由一个工厂类决定那一个产品类应当被实例化,这个决定被交给抽 ...
- Apache JMeter开源压力测试/负载测试工具 2.12 官方最新版
软件介绍 Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用. 如何学 ...
- zabbix添加监控项以及常用的键值
zabbix自身提供了丰富的监控项,下面以“cpu空闲值”为例介绍zabbix如何添加新的监控项 1.创建主机群组 配置——主机群组——创建主机群组 2.创建主机 配置——主机——创建主机 3.添 ...
随机推荐
- 问题 C: Goldbach's Conjecture
题目描述 Goldbach's Conjecture: For any even number n greater than or equal to 4, there exists at least ...
- [转载] python 解析xml 文件: SAX方式
环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...
- 容器基础(十): 使用kubernetes部署应用
概述 使用之前的脚本(env/server.py 得到 env/server:v0.1 镜像, env/worker.py 得到 env/worker:v0.1)得到的镜像,在部署好kubernete ...
- Vue折腾记 - (3)写一个不大靠谱的typeahead组件
Vue折腾记 - (3)写一个不大靠谱的typeahead组件 2017年07月20日 15:17:05 阅读数:691 前言 typeahead在网站中的应用很多..今天跟着我来写一个不大靠谱的ty ...
- lintcode-94-二叉树中的最大路径和
94-二叉树中的最大路径和 给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和) 样例 给出一棵二叉树: 返回 6 标签 动态规划 ...
- Partial Class部分类
Partial Class,部分类 或者分布类.顾名思义,就是将一个类分成多个部分.比如说:一个类中有3个方法,在VS 2005将该类中3个方法分别存放在3个不同的.cs文件中.这样做的好处:1.一个 ...
- 【题解】HEOI2013Eden 的新背包问题
这题真的神奇了……蜜汁复杂度(`・ω・´) 应该是一个比较连贯的思维方式:去掉一个物品,那么我们转移的时候不考虑它就好了呗.考虑暴力:每一次都对剩余的n - 1个物品进行多重背包转移,获得答案.既然可 ...
- STL map、set中key为结构体的用法
下面是map定义的结构: // TEMPLATE CLASS map template<class _Kty, class _Ty, class _Pr = less<_Kty>, ...
- 【BZOJ 3165】 [Heoi2013]Segment 李超线段树
所谓李超线段树就是解决此题一类的问题(线段覆盖查询点最大(小)),把原本计算几何的题目变成了简单的线段树,巧妙地结合了线段树的标记永久化与标记下传,在不考虑精度误差的影响下,打法应该是这样的. #in ...
- 【bzoj2038】[国家集训队2010]小Z的袜子 莫队
莫队:就是一坨软软的有弹性的东西Duang~Duang~Duang~ 为了防止以左端点为第一关键字以右端点为第二关键字使右端点弹来弹去,所以让左端点所在块为关键字得到O(n1.5)的时间效率,至于分块 ...