一、目的
一般而言,嵌入式设备有一个很重要的软件功能需要关注,那就是生产的产测软件。对于产测软件的编写,我们应该怎么做设计呢?
很容易想到的一个点是将产测功能和用户功能做隔离,这种隔离可以降低复杂度。
那么此时将嵌入式系统搞成两种模式,分别是工厂模式和用户模式,完全隔离起来,便于开发及调试问题。
业内也是同样的操作,比如高通使用FastMMI (Fast Man Machine Interface),RK有PCBA模式。
二、高通的FastMMI模式
我们先了解一下高通是如何来做的?高通在kernel起动之后,通过boot mode的方式来做判断,如果是Android模式,则直接进入正常系统。如果是FFBM模式的话,则进入到工厂产测模式。
三、我们的设计
考虑到单独做一个FastMMI的难度,我们决定通过做一个android app的方式来实现所有的产测功能,这个android app叫做“ProductionTest”
默认我们就在工厂模式,启动ProductionTest,进入产测模式。
如果生产完成之后,将嵌入式设备切换成用户模式。
上面的设计是基于Android系统的嵌入式设备,对于其它系统的嵌入式设备,也可以做同样的设计,原理类似。
针对两种模式的设计,有如下需要思考:
1.产测软件的功能有哪些?需要做哪些测试项?
2.产测软件如何实现?比如是android app,还是c开发的可执行程序
3.如何来进行模式的切换?是使用标志位,还是命令切换
4.产测结果如何保存?
5.产测log要保存哪些内容?同时这些产测log保存到什么地方?
6.生产的数据分析方法
7.产测之后,要进行恢复出厂设置
8.产测的数据,包括产测结果和产测log,需要控制,不能超过某一个值