OpenOCD之flash write_image和program命令的区别

OpenOCD:Open On-Chip Debugger,自由开源的片上调试和编程工具。
OpenOCD所有的命令索引链接:请点击这里
OpenOCD官方使用手册:https://openocd.org/doc-release/pdf/openocd.pdf

[flash write_image]命令
在这里插入图片描述

Command: flash write_image [erase] [unlock] filename [offset] [type]
Write the image filename to the current target’s flash bank(s). Only loadable sections from the image are written. A relocation offset may be specified, in which case it is added to the base address for each section in the image. The file [type] can be specified explicitly as bin (binary), ihex (Intel hex), elf (ELF file), s19 (Motorola s19). mem, or builder. The relevant flash sectors will be erased prior to programming if the erase parameter is given. If unlock is provided, then the flash banks are unlocked before erase and program. The flash bank to use is inferred from the address of each image section.
Warning: Be careful using the erase flag when the flash is holding data you want to preserve. Portions of the flash outside those described in the image’s sections might be erased with no notice.

  • When a section of the image being written does not fill out all the sectors it uses, the unwritten parts of those sectors are necessarily also erased, because sectors can’t be partially erased.
  • Data stored in sector “holes” between image sections are also affected. For example, “flash write_image erase …” of an image with one byte at the beginning of a flash bank and one byte at the end erases the entire bank – not just the two sectors being written.

Also, when flash protection is important, you must re-apply it after it has been removed by the unlock flag.

译文:将 filename 镜像文件写入当前目标的闪存组。仅写入镜像的第二部分。可以指定重定位偏移量,在这种情况下,它将添加到镜像中每个部分的基地址。文件[type]可以显式指定为 bin (二进制)、 ihex (Intel十六进制)、 elf (ELF文件)、 s19 (Motorola s19)。 mem 或 builder 。如果给定 erase 参数,相关 flash 扇区将在编程之前被擦除。如果提供了 unlock ,则 flash 组在擦除和编程之前被解锁。要使用的 flash 库是从每个镜像部分的地址推断出来的。
警告:当 flash 保存您想要保留的数据时,请小心使用 erase 参数。 flash 的部分以外的那些描述在镜像的部分可能会在没有通知的情况下被删除。

  • 当被写入的镜像的一部分没有填满它使用的所有扇区时,这些扇区的未写入部分也必须被擦除,因为扇区不能被部分擦除。
  • 存储在镜像部分之间的扇区“孔”中的数据也会受到影响。例如,在 flash 的开头和结尾各有一个字节的镜像的“ flash write_image erase … “会擦除整个 flash ,而不仅仅是写入的两个扇区。

此外,当 flash 保护很重要时,您必须在它被 unlock 标志删除后重新应用它。
注意:flash write_image指令必须指定烧录文件名和地址,如"STM32F103C8T6.bin 0x08000000"。

[program命令]
在这里插入图片描述

Command: program filename [preverify] [verify] [reset] [exit] [offset]
This is a helper script that simplifies using OpenOCD as a standalone programmer. The only required parameter is filename, the others are optional. See Flash Programming.

译文:这是一个帮助脚本,可以简化作为独立程序员使用OpenOCD的过程。唯一必需的参数是 filename ,其他都是可选的。详情参见Flash编程。
下面给出一个使用示例。参见程序:
// program and verify using elf/hex/s19. verify and reset are optional parameters
openocd -f board/stm32f3discovery.cfg -c "program filename.elf verify reset exit"
// binary files need the flash address passing
openocd -f board/stm32f3discovery.cfg -c "program filename.bin exit 0x08000000"

flash write_image和program有2种下载方式:

  • 使用telnet/tcl端口连接模式,与cmd/powershell终端配合;
  • 使用直链下载模式,一条命令行下载,无需新建cmd/powershell终端。

OpenOCD监听端口的各功能:
OpenOCD配置完成并正确连接上开发板后,就会监听6666,4444,3333端口,分别用于tcl, telnet,gdb-server。

tcl, telnet用于下载,gdb-server用于Debug调试。

在这里插入图片描述

参考博文:OpenOCD如何通过stlink直接下载程序到stm32板子(已解决)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/3870.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

无需懂代码!用AI工具Bolt一键生成网站的入门指南!

​ ​ 随着AI技术的不断发展,许多原本需要技术门槛的操作正在被大大简化,甚至零基础的用户也可以轻松实现。 例如,AI生成网站工具Bolt就是这样一个可以帮助我们快速创建、实时预览并自动部署网站的平台。接下来,本文将带你深入了…

作为一名测试人,快来恶补F12的用法!

浏览器都内嵌了一个神奇的开发助手,只需轻敲 F12,它就能即刻现身,这就是我们常说的F12调试工具。 无论你是前端开发还是测试工程师,F12工具都是不可或缺的伙伴。 F12调试工具,简单、轻量,却功能强大。 一…

开源AI智能语音转写系统,提升法庭效率与透明度:精准记录庭审,助力智能司法

一、系统概述 在司法领域,庭审记录的精准度和完整性直接影响案件处理的公平公正。法庭实时语音转写系统通过思通数科AI多模态平台,结合尖端的语音识别技术和自然语言处理(NLP),实现实时记录和精准转写,为司…

Linux上部署DNS服务器

1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器,对主dns服务器进行数据备份。 一,正反向解析: 关闭防火墙和selinux [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 在…

代码随想录算法训练营第三十三天 | 62.不同路径 63.不同路径

LeetCode 62.不同路径: 文章链接 题目链接:62.不同路径 思路: 动态规划 使用二维数组保存递推结果 ① dp数组及下标含义 dp[i][j]:表明从(0, 0)到下标为(i, j)的点有多少条不同的路径 ② 递推式: 机器人只能向下或向…

模板

1.非类型模板参数 模板参数分为类型形参与非类型形参(都可以用缺省值) 类型形参:出现在模板参数列表中,跟在class或者typename之类的参数类型名称 非类型形参:就是用一个常量作为类(函数)模板…

diffusion model 学习笔记

条件引导的 diffusion 对于无条件的DDPM 而言 p ( x t ∣ x 0 ) ∼ N ( α t ˉ x 0 , 1 − α t ˉ ⋅ I ) p(x_t | x_0) \sim \mathcal{N}( \sqrt{\bar{\alpha_t}} x_0, 1-\bar{\alpha_t} \cdot \mathrm{I} ) p(xt​∣x0​)∼N(αt​ˉ​ ​x0​,1−αt​ˉ​⋅I) 可以得到…

阿里云高并发测试-Redis缓存机制

创建接口 这里使用的是阿里云提供的接口服务直接做的测试,接口地址 curl http://localhost:8080/initData?tokenAppWithRedis 这里主要通过参数cacheFirstfalse和true来区分是否走缓存,正常的业务机制可能是通过后台代码逻辑自行控制的,这…

设计卷积神经网络CNN为什么不是编程?

上一篇:《搞清楚这个老六的真面目!逐层‘剥开’人工智能中的卷积神经网络(CNN)》 序言:现在让我们开始走进卷积神经网络(CNN)的世界里。和传统编程完全不同,在人工智能的程序代码里…

气象仿真数据在光伏行业里面的作用

选址与规划 确定资源潜力区域:不同地区的太阳能资源、气候条件差异很大。通过对大量的气象仿真数据进行分析,可以准确评估不同地区的太阳辐射强度、日照时长、温度、湿度、风速风向以及降水情况等气象要素。规避潜在风险:一些地区可能存在极…

鸿蒙开发——进程模型与进程通信

1、进程模型 ❓ 什么是进程? 进程是一个正在执行的程序的实例。当我们启动一个程序时,操作系统会创建一个进程,分配给它所需的资源,如内存和CPU时间。每个进程至少有一个线程,即执行线程,负责执行程序的指…

Pod安装软件将CDN改为国内的镜像

1、碰到错误 在pod install的时候碰到以下的下载错误: 文字错误如下: CDN: trunk URL couldnt be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/5/b/d/OpenCV/2.4.11/OpenCV.podspec.json Response: Timeout was reached CDN: trunk URL couldn…

Windows常用命令-病毒

1.常见端口对应的服务 ftp 21 tenlnet 23 80 web 80-89可能是web 443 ssl心脏滴血漏洞以及一些web漏洞测试 445 smb 1433 mssql 1521 oracle 2082/2083 cpanel主机管理系统登陆(国外用的较多) 2222 da虚拟主机管理系统登陆(国外较多) 3128 squid代理默认端口-漫游内…

DDD中的一些基础概念 观点摘录

系统复杂度来源于哪?也就是DDD存在意义 软件系统的复杂性主要体现在三个方面。 隐晦:一是抽象层面的隐晦,抽象系统时,每个人都有自己特定的视角,你需要站在对方的角度才能明白他为什么这么做;其次是实现层…

统信UOS开发环境支持shell

内置了Bash等流行的Shell环境,用户可编写自动化脚本,极大地提高了系统管理和应用开发效率。 文章目录 一、环境部署1. shell开发环境安装2. shell开发环境配置二、代码示例shell开发案例三、常见问题1. 文件处理2. 错误处理3. 跨平台兼容性一、环境部署 1. shell开发环境安装…

使用compare做简单的点云滤波,并另存为文件

一、打开compare软件后,打开一个pcd文件 二、点击显示的pcd文件对象,出现如图黄色框框 三、点击上边的菜单栏的这个标志 四、出现如下图,此时调整红绿蓝就可以简单的做一下背景的滤波操作 五、我调整蓝色按钮后将背景点云去除,点…

布谷语音源码服务器搭建环境及配置流程

布谷语音源码部署环境安装要求(只有在相同的环境下才更容易避免一些不必要的麻烦):●安装Center OS 7.9,我们自己的服务器使用的是7.9建议相同系统,非强制●安装宝塔环境(强烈推荐使用)●安装软…

奥数与C++小学四年级(第二十题 猜猜看)

参考程序代码&#xff1a; #include <iostream> using namespace std;int main() {// 集合 {1, 2, 3, 4, 5, 6, 7, 8}int set[] {1, 2, 3, 4, 5, 6, 7, 8};// 枚举所有可能的 5 个数for (int i 0; i < 8; i) {for (int j i 1; j < 8; j) {for (int k j 1; k…

关于游戏加加不可以在cs2中显示的解决方案

输入的代码如下 -allow_third_party_software 1.打开steam 右键cs2&#xff0c;打开属性。 然后再这里填上这个代码就可以了

QGIS:HCMGIS插件

插件GitHub地址&#xff1a;https://github.com/thangqd/HCMGIS。 以下对HCMGIS插件进行简单介绍&#xff0c;并演示如何进行地图数据下载。 插件简介 HCMGIS - Basemaps, Download OpenData, Batch Converter, VN-2000 Projections, and Field Calculation Utilities for QGI…