QCC300x --OTA步骤

2023-10-12 12:30
文章标签 步骤 ota qcc300x

本文主要是介绍QCC300x --OTA步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在sink工程目录下创建一个目录,用来存放公钥和密钥,假设目录名称为<oem_for_ota>;

在该目录下创建两个python脚本,和自动生成ota文件,这里写成脚本文件,方便每次生成OTA生级包。

gen_key.py,用来自动生成密钥,内容如下:

 

Gen_ota.py,用来生成ota文件,该脚本会自动先搜索本地目录来查找目标xuv文件,若本地目录没有.xuv文件,则自动搜索父级目录,若找到则打包ota文件,否则报错退出。

其脚本内容如下:

import os, sys,time
os.chdir(os.path.abspath(os.path.dirname(sys.argv[0])))SRC_DIR = os.path.dirname(os.getcwd())+'\\'
CUR_DIR = os.getcwd()+'\\'
TOOL_DIR = 'C:\\ProgramFilesUser\\Qualcomm\\ADK_QCC300x.WIN.1.0.167\\tools\\bin\\'#
# Source target file defination
#
TARGET_FILE = 'qcc3004.xuv'
UPG_FILE    = 'qcc3004.upg'
UPG_XUV_File= 'qcc3004_upg.xuv'
KEY_FILE    = 'oem.private.key'
SIGNED_FILE = 'qcc3004_upg_signed.xuv'
OTA_FILE    = 'qcc3004_upg_signed.bin'
DUMP_FILE   = 'qcc3004_dump.xuv'
AUDIO_FILE  = 'audio_prompts.xuv'print('***********************************')
print('         Start                     ')
print('***********************************')
#
# check qcc3004.xuv file. if not exist in current folder, will check is in parent
#  folder and copy it to current folder if exist. otherwise ,will exit with 1.
#
ret = os.path.exists(CUR_DIR + TARGET_FILE)
if not ret:ret = os.path.exists(SRC_DIR + TARGET_FILE)if not ret:print('can not find qcc3004.xuv file.')exit(1)else:os.system('XCOPY /Y /F ' + SRC_DIR + TARGET_FILE +' '+ CUR_DIR)#
# check audio_prompts.xuv file. if not exist in current folder, will check is in parent
#  folder and copy it to current folder if exist. otherwise ,will exit with 1.
#
ret = os.path.exists(CUR_DIR + AUDIO_FILE)
if not ret:ret = os.path.exists(SRC_DIR + AUDIO_FILE)if not ret:print('can not find '+AUDIO_FILE+' file.')exit(1)else:os.system('XCOPY /Y /F ' + SRC_DIR + AUDIO_FILE + ' '+CUR_DIR)#
# generate setting files.
#
ret = os.system(TOOL_DIR+'upgradeFileGen.exe ' + CUR_DIR + UPG_FILE + ' ' + CUR_DIR + UPG_XUV_File)
ret = os.system(TOOL_DIR+'dfusign.exe -v -f -u -h '+CUR_DIR + UPG_XUV_File +' -o '+CUR_DIR + SIGNED_FILE+' -ka '+CUR_DIR + KEY_FILE)
ret = os.system(TOOL_DIR+'xuv2bin.exe -d '+CUR_DIR + SIGNED_FILE+' '+CUR_DIR + OTA_FILE)
print('*************END **********************')

 

这篇关于QCC300x --OTA步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195825

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

开启mysql的binlog日志步骤详解

《开启mysql的binlog日志步骤详解》:本文主要介绍MySQL5.7版本中二进制日志(bin_log)的配置和使用,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下... 目录1.查看是否开启bin_log2.数据库会把日志放进logs目录中3.查看log日志总结 mysql版本5.71.查看

deepseek本地部署使用步骤详解

《deepseek本地部署使用步骤详解》DeepSeek是一个开源的深度学习模型,支持自然语言处理和推荐系统,本地部署步骤包括克隆仓库、创建虚拟环境、安装依赖、配置模型和数据、启动服务、调试与优化以及... 目录环境要求部署步骤1. 克隆 DeepSeek 仓库2. 创建虚拟环境3. 安装依赖4. 配置模型