目录
1. 设计
-
- 调试接口预留,生产之后Disable
- 芯片低功耗
- 失能不使用的外设模块
- 根据芯片引脚特性拉高拉低不使用的io
- 不超频
- 电路板开发测试程序
- EMC/EMI测试程序
- 压力测试程序
- 老化测试程序
- FCT测试程序
- 远程升级
- 回滚
- 双bank切换
- 返厂维修
- 网络安全/硬件安全/固件安全/软件安全
- root用户处理
- 密码16位随机数处理
- 调试口处理: 不焊/软件disable
- 关键数据加密
- 加密芯片: ECC508(Atmel)
- 加密算法:RSA+AES
- Secure Boot
- 模块Reset接口预留
- 4G/wifi/zigbee等模块复位接口预留
- 模块定时自检
2. 设备接口
-
- Wifi
- Tools:wireshark, wifi analyzer, iperf, NetworkManager, nmcli
- DDR
- Stress Test: memtester Tool (open source)
- Burst mode
eMMC
- Stress Test
- cache disable
- MMC总线:
- 数据保护
- 掉电数据保护:PFO
- 只读分区
- EMMC slc模式,镁光半导体工程师建议,现在一般不建议slc模式,直接mlc,在新的eMMC5.0下,固件已经可以很好的处理写入和读出的同步,且用户不用关心eMMC掉电,上电遇到的damage相关的问题,直接使用即可。
- EMMC cache Disable
- Partition划分
- 总线特性
- 有HighSpeed和NormalSpeed
- 有SDIO/SPI...
- EMMC
- Stress Test: stressapptest(但是不支持armv7l), https://github.com/stressapptest/stressapptest
- cache disable
- EMMC速率设置:查看信号线波形
- EMMC 产品Release FCT校验,一般来说整片校验EMMC设备的情况话费时间太久,所以FCT只会做小文件的读写校验
- SD card/Wifi
- SD通信速率: 信号线上的波形如果呈现三角波或者正弦波,则需要降低频率
- Wifi由原来的24M设置为8M,波形明显变好
- SD卡在uboot内由原来的52M设置为10M才勉强启动起来,当然由于排线外接SD卡座导致,正常同一块PCB板52M没有问题
- 数据保护
- Wifi
- I2C总线
- 总线特性
- HighSpeed/NormalSpeed
- 总线地址
- 通常需要在地址高位补
- I2C转GPIO
- 在MCU/MPU GPIO资源不足的情况下,使用I2C-GPIO转换芯片转换GPIO,如PCA9555
- Ethernet
- Phy芯片功耗过高,或者RE/CE过不了,需要通过将芯片的Power Down掉,简单的拉低所有gpio无法做到上述目的
- phy地址由硬件电路决定,和I2C的地址一样,需要通过devicetree传给驱动
- SPI总线
- SPI转Uart
- 1路SPI转2路Uart,如SC16..
- SPI转Uart
- GPIO
3. 开发术语
- 回归测试:代码修改之后测试
- 冒烟测试:版本验证测试
4. 产品开发周期
- 前期硬件的FEMA/DEFEMA,项目的FEMA/DEFEMA
- 硬件芯片选型
- 原理图设计/Layout
- 结构设计
- 软件的预研/评估
- 硬件打板调试
- 软件的新板调试代码
- 软件的设计文档
- 软件的coding
- 软件的测试用例/TestCase
- 样机
- 硬件的EMC/EMI
- CQC
- 工厂的FCT/ATS
- 镜像
- 小批试制
- 量产爬坡
5. 工厂流程
- ICT/FCT/ATS
- 程序烧写:串口Bootloader+网口kernel/rootfs
- 返厂维修
6. 开发工具
- Countour:需求管理
- Atlassian Bamboo: 自动编译/测试/Release,可以通过SVN或者GIT打tag的方式,获取tag, 自动Release出镜像结果文件
- Atlassian JIRA:Task/Issue管理工具
- Atlassian Fisheye: 线上追踪/查看代码
- Atlassian Confluence: 线上分享开会结论等
- Atlassian Crucible:code review
- Atlassian Bitbucket: GIT server
- TestLink: 一款开源的TestCase工具
- GIT/SVN:版本管理
- PLM:产品生命周期管理,料号/设计文档/ReleaseBinary等
- gitlab:用于仓库管理的开源项目
- gerrit: 免费开源的代码审核系统
7. 常见测试
- 软件的回归测试
- V&V: Validation Test/Verification Test: 确认/验证
- Power on/off: 2000次随机on/off
- 黑盒测试/白盒测试
- Engineer Test/QA
- ICT/FCT/ATS
- EMC/EMI,Surge/EFT/ESD/Transient
- CQC,提前的摸底测试
- 跌落测试