QT调用jlink.exe对Flash指定区域修改升级和下发其他指令

文章目录

概要

本文档通过QT,调用jlink.exe 实现对Flash的自定义操作吗,例如对某个特定位置的读写修改或者其他操作。
程序主要是通过QT调用jlink.exe,依据jlink command的相关命令完成。

技术细节

` QT 主要通过调用外部的可执行程序,相关函数为

QProcess process;
QString programPath;
QStringList arguments;
process.start(programPath, arguments);

其中,programPath是可执行程序的位置。arguments是调用时的参数。
以cmd.exe 为例,arguments可以为直接运行的命令,例如:ipconfig,会打印出对应的数据。但是,jlink存在例外的情况,当我们直接输入命令,例如:jlink.exe中的connect命令,到arguments时,会出现以下的错误提示:
Unknown command line option connect

所以,不能直接将arguments设置为直接的命令,后面,发现需要通过脚本的方式进行命令下发,即如下的形式:
arguments << “-CommanderScript” << “script.txt”;通过这样的方式,就可以正常调用和下发命令。

script.txt的内容需要参考jlink command的相关命令,去了解相关命令的含义和左右。作者采用的相关命令如下

si 1 
speed 4000 
device -AT32F403AVGT7
r 
h
erase
loadbin xxx.bin 0x8000000
q

烧录过程
在这里插入图片描述

后续的功能需求,通过修改script.txt中的内容即可完成。
主要代码如下:
执行jlink.exe调用

	programPath=ui->lineEdit->text();
    // 设置要执行的外部程序的路径和参数
    QString script=ui->lineEdit_6->text();
    arguments << "-CommanderScript" << script;
    // 启动外部程序
    process.start(programPath, arguments)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值