一、概述
1、功能描述
2、功能规格
软件版本规则定义
软件版本检查规则
软件升级方式
二、版本命名规则
1、内容
版本命名包含三个版本,产品名称+硬件版本信息+软件版本信息,产品名称为一字符串
硬件版本 规则
硬件版本为: XX. XXXX XX两为大版本 , XXXX四位为小版本 ,都为字符串,00或0000为起始版本 ,依次递增;数字使用完可以使用字母
软件版本 规则
软件版本为: XX. XXXX XX两位为大版本 , XXXX四位为小版本 ,都为字符串,00或0000为起始版本 ,依次递增;数字使用完可以使用字母
序 |
名称 |
解释 |
备注 |
1 |
产品名称 |
32个字符 |
|
2 |
硬件版本 |
10个字符 |
HW+XX.XXXX |
3 |
软件版本 |
10个字符 |
SW+XX.XXXX |
2、实例
完整的版本命名:
T1 HW 00.0000 SW 00.0000
T2 HW 00.0001 SW 01.0000
T1 HW 00.000A SW F1.ABCD
三、软件升级内容定义
1、分区升级
可以进行分区表的更新,分区内容的更新,可以一个或多个分区进行更新升级
2、文件升级
可以对特定分区文件系统中的一个或多个进行升级
3、参数升级
对特定设备上的数据进行更新,如E2PROM, 安全芯片数据区, OTP区的数据进行添加或更新,目前只用SN和版本信息需要写入到E2PROM上
4、版本升级版本检测规则
版本升级原则:终端机获得升级的版本信息,进行版本比对,产品名称对应相等,硬件版本对应相等,软件版本大过当前版本;
例外情况: 当软件升级信息中有强制升级方式的情况下,软件版本不进行比对,但硬件版本和产品名称还是要进行比对;
四、软件版本升级
1、升级方式
主要有TOOLS, USB, ONLINE三种,升级中又分一般升级和强制升级(软件版本不检查);
2、TOOLS升级
使用工具进行IMG烧写,不进行版本检查,用于调试过程中烧写,以及用于BOOT有问题的情况下进行BOOT恢复,。
3、USB升级
通过U盘进行升级,主要是按分区进行升级,可以进行分区更改。需要进行版本检查,安全检查的功能。
4、在线升级
通过 络进行版本检查和升级
五、软件版本制作过程
1、配置文件格式定义
序 |
名称 |
解释 |
备注 |
1 |
STARTCODE |
起始码 |
|
2 |
CFGTYPE |
配置信息类型 |
区分不同类型的配置信息 |
3 |
Update mode |
升级方式 |
强制和非强制 |
4 |
versioninfo |
产品版本信息 |
|
5 |
imginfolen |
Imginfo长度(从imginfolen域后计算开始) |
|
6 |
Imginfo |
Img分区或文件信息 |
|
7 |
CRC |
校验(从STARTCODE后算起,到CRC前的数据内容) |
|
8 |
EOF |
结束码 |
|
升级的配置信息文件包含的内容有:升级方式,版本信息,升级IMG信息,通过下载升级配置文件获得升级的版本信息和分区信息;
2、版本信息
序 |
名称 |
说明 |
备注 |
1 |
Product name |
产品名称 |
定长字节数 |
2 |
HW VERSION |
硬件版本 |
|
3 |
SW VERSION |
软件版本 |
|
4 |
DATE |
版本时间 |
|
3、IMGINFO信息
序 |
名称 |
解释 |
备注 |
1 |
imgnum |
IMG数量 |
|
2 |
imgtype |
IMG类型 |
分区,文件,数据类型 |
3 |
fstype |
文件系统类型 |
|
4 |
Flash startaddress |
分区起始地址 |
|
5 |
Flash endaddress |
分区终止地址 |
|
6 |
imgfilename |
IMG文件名称 |
|
7 |
NEXT/EOF |
间隔标记 / 结束标记 |
|
4、IMG文件格式定义
序 |
名称 |
解释 |
备注 |
1 |
IMG START CODE |
起始码 |
|
2 |
Img cfg type |
Img 配置类型 |
|
3 |
Img cfg len |
Img 配置数据的长度 |
|
4 |
CFG INFO |
配置数据内容 |
|
5 |
CFG CRC |
配置数据的CRC |
|
6 |
IMG LEN |
IMG的长度 |
|
7 |
IMG |
加密的IMG数据 |
由CFG INFO中的KEY 进行加密 |
8 |
IMG CRC |
校验 |
|
9 |
EOF |
结束 |
|
通过文件打包将IMG的内容进行加密和校验,BOOT程序和在线升级程序获得后进行解密和校验。
5、定义的CFG INFO
OTPSOURCE的内容通过OPT KEY进行加密,生成OTPENCRYPT内容;取OTPENCRYPT中的某些数据作为IMG的IMG KEY, 用IMGKEY对IMG的内容进行加密。
六、USB升级流程
升级流程图
升级说明
升级过程中对IMG的检查和校验,使用OTP区存的KEY进行IMG合法性检查
当OTP KEY 区是空的情况,第一次BOOT升级进行OTP KEY的烧写,将OTP KEY进行变换填写到文件头,OTPSOURCE 和 OTPENCRYPT的内容生成, OTPSOURCE的内容通过OPT KEY进行加密,生成OTPENCRYPT内容;取OTPENCRYPT中的某些数据作为IMG的IMG KEY, 用IMGKEY对IMG的内容进行加密。
BOOT进行升级的过程中,首先检查OPT KEY是否烧写,只第一次进行烧写,后续升级不可操作; BOOT在进行OTPSOURCE 加密生成的数据和IMG FILE中OTPENCRYPT的内容进行比对,相同就是合法版本,不同就是非法软件;
判断为合法软件后通过OTPencrypted中包含的IMG KEY 对IMG内容进行解密形成真实的IMG内容,然后进行烧写对应的分区或改写文件;
七、在线升级流程
升级流程图
升级说明
升级触发是通过APP的程序进行升级触发,APP程序通过查询版本信息交易获得版本信息,进行版本升级的触发,设置升级标记(存入E2PROM中),获得URL地址,将此URL地址传递给升级程序;
升级程序读取升级标记,同时根据URL进行CFG和IMG文件的下载,升级异常机器重新启动进行升级有URL没有的情况,这个时要进行URL的获取操作,再重新进行CFG和IMG的下载;
E2PROM格式定义
格式定义
序 |
名称 |
解释 |
备注 |
1 |
STARTCODE |
起始码(0XFE) |
1个字节 |
2 |
CFGTYPE |
配置类型(0X00) |
1个字节 |
3 |
PRODUCT NAME |
产品名称 |
32个字节 |
4 |
HW VERSION |
硬件版本 |
6个字节 |
5 |
SW VERSION |
软件版本 |
6个字节 |
6 |
SN |
序列 |
8个字节 |
7 |
UPDATEFLAG |
升级类型标记 |
1个字节 |
8 |
UPDATEFINISHFLAG |
升级完成标记 |
1个字节 |
9 |
CRC |
CRC域前的所有数据进行CRC |
4个字节 |
10 |
LOGID |
流水 |
根据项目确定 |
11 |
CFG |
XX数据 |
根据项目确定 |
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!