视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
RockChip PCBA 测试工具说明V3.0
2025-09-28 02:04:35 责编:小OO
文档
密级状态:绝密( ) 秘密( ) 内部( ) 公开( √ )

RockChip PCBA 测试工具说明V3.0

(技术部,第一系统产品部)

文件状态:[ ] 正在修改[√] 正式发布当前版本:V3.0

作者:胡卫国

完成日期:2015-01-15

审核:

完成日期:

福州瑞芯微电子有限公司

Fuzhou Rockchips Semiconductor Co . , Ltd

(版本所有,翻版必究)

版本历史

版本号作者修改日期修改说明备注V1.0 2012-10-23 YXJ

V2.4 2013-11-24 胡卫国增加动态库支持说明

V3.0 2015-01-15 胡卫国重新整理文档

目录

1概述 (2)

2PCBA固件编译打包升级 (3)

2.1编译 (3)

2.2打包 (4)

2.3升级 (4)

3测试项 (5)

3.1测试项分类说明: (5)

3.2测试项详细说明: (5)

3.2.1实时时钟(RTC)测试 (5)

3.2.2重力感应(gsensor)测试 (5)

3.2.3无线网络(wifi测试) (5)

3.2.4sd卡(sdcard)测试 (6)

3.2.5屏幕(LCD)测试 (6)

3.2.6相机(Camera)测试 (6)

3.2.7按键(KEY)测试 (6)

3.2.8耳机喇叭(codec)测试 (6)

3.2.9TP测试 (6)

3.2.10USB HOST测试 (6)

3.2.11DDR测试 (7)

3.2.12CPU测试 (7)

4配置文件 (8)

5字体 (14)

6测试样例扩展 (14)

1 概述

PCBA 测试工具用于帮助在量产的过程中快速的甄别PCBA的好坏,提高生产效率。目前包括屏幕(LCD)、相机(Camera)、实时时钟(RTC)、重力感应(gsensor)、

无线(wifi)、SD卡(sdcard)、按键(KEY),喇叭耳机(Codec)测试项目。

这些测试项目包括自动测试项和手动测试项,LCD、Camera、RTC、Gsensor、wifi、sdcard为自动测试项,KEY、Codec、Camera_front(前置摄像头)为手动测试项目。

该工具支持通过配置文件test_config.cfg对测试项进行配置,具体的配置说明请参第4部分“配置文件”

2 PCBA固件编译打包升级

2.1 编译

PCBA测试程序位于Android源码/extenal/rk-pcba-test目录下,编译会生成pcba_core可执行文件,pcba_core和rk-pcab-test/res下的相关文件在编译的时候会被自动拷贝到recovery的sbin目录下。

PCBA程序运行于Recovery系统中,具体测试流程为:开机进入Recovery,启动PCBA测试程序进行各项功能测试。测试界面如下:

编译说明:

修改BoardConfig.mk中的

TARGET_ROCKCHIP_PCBA TEST?=true

make installclean

make

rm -rf out/target/product/rk3288/root/ 删除out下的root目录

make recoveryimage

2.2 打包

由于PCBA运行于Recovery中,因此PCBA固件只要打包loader、misc、recovery这几个部分就可以,因此固件会比较小,有利于提高升级测试效率。打包脚本一般SDK发布时都已经写好,放在RKTools目录下的《PCBA打包工具》中,客户直接使用就可。

2.3 升级

有两种升级方法:一种是通过USB升级,另一种是通过SD卡升级。

USB升级:通过USB升级PCBA update.img,每次开机都会进入PCBA测试。

SD卡升级:插入使用《SD卡升级工具》制作好的PCBA测试卡,再开机,就会进入PCBA 测试。

3 测试项

3.1 测试项分类说明:

测试项分为“自动测试项”和“手动测试项”

自动测试项:由系统自动进行测试并判断测试结果,如:网络,内存,时钟,重力传感器等。

手动测试项:需要由人工配合完成或者配合判断测试结果。如:录音,按键,U盘,SD卡等。

测试项分别有“红”,“黄”,“绿”三种颜色表示不同的测试状态

黄色:未测试项或者正在测试的项

绿色:测试通过项

红色:测试未通过项

3.2 测试项详细说明:

3.2.1 实时时钟(RTC)测试

RTC为自动测试项,实时显示当前RTC读取的时间。

3.2.2 重力感应(gsensor)测试

Gsensor为自动测试项,实时显示读取的Gsensor坐标。

3.2.3 无线网络(wifi测试)

Wifi为自动测试项,会自动扫描周边的AP,显示信号最强的那个AP名字。

3.2.4 sd卡(sdcard)测试

Sdcard为自动测试项,插入sdcard,如果SD卡正常识别到,则会提示测试成功。SD card必须为FAT32格式,不支持其他格式!整个卡只能包含一个分区。如果

不符合要求,请通过格式化来格式成标准格式。

3.2.5 屏幕(LCD)测试

LCD为自动测试项,测试的时候会在屏幕的右下方显示红、绿、蓝三原色的方块,需要测试人员自动判断这三种颜色的方块显示是否正常。

3.2.6 相机(Camera)测试

后置Camera为自动测试项,测试成功会在屏幕的右上方实时显示采集到的图像,如果没有正常的图像显示,则为测试失败。前置摄像头为手动测试,在测试的时候需要点击屏幕右上方的摄像头区域,摄像头将自动切换到前置摄像头。

3.2.7 按键(KEY)测试

按键为手动测试项目,点击相应的按键,屏幕上会显示相应的按键信息。

3.2.8 耳机喇叭(codec)测试

Codec为自动测试,有两种模式可以选择:边录边放,先录后放。

3.2.9 TP测试

TP为手动测试,直接在TP上画线就可。

3.2.10 USB HOST测试

类似SD卡测试。

U盘必须为FAT32格式,不支持其他格式!整个卡只能包含一个分区。如果不符

合要求,请通过格式化来格式成标准格式。

3.2.11 DDR测试

DDR检测测试:默认开启,系统软件通过对DDR内存进行不断读写判断DDR地址线是否正常。

DDR变频测试:默认关闭,开启后测试过程中将对DDR进行不断变频测试DDR 的稳定性,用户需要开启DDR变频测试,设置变频范围并且需要配置内核才可支持,详见“配置说明”。

3.2.12 CPU测试

CPU负载测试:默认开启,系统不断进行复杂运算,保持系统处于满负载或过载状态,来测试系统稳定性。

CPU变频测试:默认开启,系统软件通过对多个CPU进行不断变频,来测试CPU 在变频过程中的稳定性。

(由于系统持续处于过载状态,一些处理命令可能延迟,如重力感应器的夹角数值的跳变将会有延迟)

所有项测试完成后,请长按任意一个按键3s后松开,则停止测试,移除sdcard,然后系统才会继续升级。

4 配置文件

PCBA所有的测试项目通过一个配置脚本test_config.cfg来配置,位于Androidsrc/external/rk-pcba-test/res/test_config.cfg,用户可以根据项目

的硬件配置来配置test_config.cfg文件,决定要对哪些模块进行测试,以及给自己的测试程序传递相关的参数。

该脚本使用ini文件格式,由段、键和值三者组成,通常一个段表示一个模块配置。目前要求该配置文件使用UTF-8编码,其他编译格式可能会导致未知错误。

模块配置示例:

测试模块配置模板

[example]

display_name= "Example"

activated = 1

program = "example.sh"

category = 0

(1)[example]

Example 表示一个配置模块的名称,如果是cfg文件中自带的模块名称,则不能改动,否则会导致某个测试项不被测试系统启动。

(2)display_name

display_name表示该测试模块在屏幕上显示的名称,可以根据自己的需要修改。该名称最长为字节,如果为空,则测试程序不会运行。

(3)activated

activated表示是否测试该模块

0:不测试该模块

1:测试该模块

(4)program

该键值目前没用到,可以不用配置

(5)category

category 表示测试方式

0:自动测试

1:手动测试

屏幕测试

[Lcd]

display_name= "lcd"

activated = 1 //测试该项

program = "lcdtester.sh"

category = 0 //自动测试

run_type = 1

实时时钟测试

[rtc]

display_name= "rtc"

activated = 1 //测试该项

program = "rtctester.sh"

category = 0 //自动测试

run_type = 1

module_args = "20121113.160145" //测试rtc的时候设置的时间

无线测试

[wifi]

display_name= "wlan"

activated = 1 //测试该项

program = "wifitester.sh"

category = 0 //自动测试

run_type = 1

module_path = "/system/vendor/modules/8192cu.ko"

module_args =

WiFi测试,测试结果测试如下:

“网络:[通过]{ “testap”信号强度 4 格}”

信号强度为实际扫描到的AP的信号强度,与Android上一样,分为0到4格。

重力感应测试

[gsensor]

display_name= "gsensor"

activated = 1 //测试该项目

program = "gsensortester.sh"

category = 0 //自动测试

run_type = 1

蓝牙测试

[bluetooth]

display_name= "bluetooth"

activated = 1

program =

category =

chip_type = "" ; rk903, mt6622, rda587x, rda5990,rtk8723as // 选择相应的BT芯片型号,默认为空,也就是不测试BT,Android 5.0后不需要选择,系统会自动识别。

SD卡测试

[sdcard]

display_name= "SDcard"

activated = 1 //测试该项目

program = "mmctester.sh"

category = 0 //自动测试

run_type = 1

USB HOST测试

[udisk]

display_name= "Udisk"

activated = 1 //测试该项目

program = "udisktester.sh"

category = 0 //自动测试

run_type = 1

按键测试

[Key]

display_name= "Key"

activated = 1 //测试该项目

program = "keytester"

category = 1 //手动测试音频测试

[Codec]

display_name= "Codec"

activated = 1 //测试该项目

program = "case1" ; case1, case2

category = 1 //手动测试

run_type = 1

delay = 5

volume = 40

case1 :

先放后录模式,测试效率相对低,使用喇叭时不会有啸叫,可在使用喇叭时选择此模式

case2 :

边录边放模式,测试效率高,使用喇叭时会有啸叫,可在使用耳机时选择此模式

录音音量测试,测试结果显示如下,音量根据实际输入变化,范围从0-100%:

“录音音量:[25%]”

该配置脚本可以扩展,如果某个模块需要通过配置脚本传递相关参数,可以扩展相关的键值,比如RTC配置项如下

实时时钟测试

[rtc]

display_name= "rtc"

activated = 1 //测试该项

program = "rtctester.sh"

category = 0 //自动测试

run_type = 1

module_args = "20121113.160145" //测试rtc的时候设置的时间

在具体的测试程序中,可以通过script_fetch api获得设置的相关键值:

int script_fetch(char *main_name, char *sub_name, int value[], int count)

main_name:测试模块的名称,在test_config.cfg文件中[xxxx]

sub_name:键值,比如activated、display_name、module_args等等。

if(script_fetch("rtc

{

trncpy(s, dt, 32);

}

这里,可获取在配置文件中设置的rtc测试时module_args设置的值。

测试程序中可以通过ui_print_xy_rgba()接口,打印测试结果到屏幕上,由于屏幕空间有限,原则上,尽量打印简单的结果,一个测试项打印一行,成功用蓝色打印,失败用红色打印。

内存测试

[ddr]

display_name= "ddr"

activated = 1 //1:开启内存测试,0:关闭内存测试

program = "memtester.sh" //预留

category = 0 //自动测试项

freq_test = 0 //1: 允许变频,0:禁止变频

min_freq = 0 //变频范围-最小值

max_freq = 0 //变频方位-最大值

(

1.需要内核开启如下配置:DDR_TEST = y ,DDR_FREQ = y

2.实际能变频的频率范围是受到board 文件中的dvfs_ddr_table中的ddr上下限频率决定的。

3.如果需要加快ddr变频测试速度的话可以将ddr_freq.c中变频测试函数中变频间隔间的延迟时间减短。

)

5 字体

说明:PCBA 2.0以后的版本增加了对中文的支持,并可以支持多种字体大小的配置,包括18*18, 20*20, 24*24, 28*28, 32*32, 36*36,可以通过修改minuitwrp/graphics.c 的头文件来包含修改使用不同大小的字库

(输出到屏幕的中文必须是UTF-8编码格式)

6 测试样例扩展

该测试程序允许用户扩展自己的测试样例。如果因为项目需要,用到了该测试程序中目前还未支持到的模块,可以自己添加测试程序,然后集成到测试框架中。

集成方法如下:

(1)先写好自己的测试程序和头文件。测试程序要封装成

void * xxxx_test(void *argv)格式的接口。

(2)确定该测试项为手动测试项或者是自动测试项,并在test_config.cfg里面加入想要的配置。

(3)如果是手动测试,在pretest.c的init_manual_test_item()函数中注册自己的测试代码:

strcmp函数中的“xxx”为在test_config.cfg中定义的测试模块名称[xxxx]

xxx_test是在测试代码中定义的测试函数。

(4)如果是自动测试代码,在pcba测试程序启动的时候,会作为一个线程去启动所有的测试代码,需要在pretest.c的start_auto_test_item()函数中注册自己的测试函数:

_______________下载本文

显示全文
专题