首页
学习
活动
专区
圈层
工具
发布

Linux下开发stm32 ② | 使用openocd下载程序

2.openocd安装 首先使用命令unzip openocd-0.10.0.zip将下载的zip包解压,然后重命名为openocd: ?...3.使用openocd连接到目标芯片 openocd的一些参数描述如下: 参数 描述 -f 使用配置文件 -c 运行命令 使用命令openocd...4.使用telnet连接到openocd openocd连接到目标板后,它的默认telnet端口是4444,所以我们可以新建一个终端(一定不要关闭掉连接到目标板的终端!!!)...连接到openocd的端口,然后使用命令控制。 这里因为要下载文件,所以我将路径切换到之前创建的bin文件的目录下,然后使用命令telnet localhost 4444连接到openocd: ?...在这里插入图片描述 然后使用make download命令,直接实现一键下载: ? ==下一篇==:Linux下开发stm32(三) | 寄存器工程开发

7.1K21

Windows上使用 OpenOCD 给 STM32 下载程序

之前有写过如何在Linux上使用openOCD给STM32下载程序的文章,今天给大家介绍一下如何在Windows上使用openOCD。...Linux下开发stm32(二) | 使用openocd下载程序 一、OpenOCD介绍 openocd全名叫做Open On-Chip Debugger,是一个自由开放的片上调试工具和编程工具,目前已经发布到...目标芯片配置文件是openOCD支持的目标芯片,在 scripts\target 文件夹下; ? 比如这里我使用ST-Link v2-1下载器+STM32L431RCT6,结果如图: ? 2....下载程序 成功连接到目标芯片后,需要使用 telnet 协议连接到 openOCD 终端,端口4444,这里我使用mobaxterm: ? ?...一行命令完成 可以在启动openOCD的时候,使用 -c 参数带上要执行的命令,通过一行命令完成烧写和复位,「无需新建终端使用 telnet 连接openOCD」。

21.7K55
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    STM32系统中2种数据掉电保护的方法

    如果单从实用性来讲,在stm32的系统中,诸如此类的应用,笔者推荐如下2个方法可以去尝试和借鉴。...,以一个项目中常用的case为例: 功能初始化: 备份寄存器写入: void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data) 备份寄存器读出...在stm32芯片中,Flash的读写单位都是以“页”为单位的,以STM32F103C8T6为例,它的每页大小为2K bytes; 软件编程要点 读写保护解除:使用这种方法前提是,当前读和写Flash的允许的...所以暂时一些关于OptionBytes的操作和Flash的读写保护操作等API暂时不做讨论。...考虑到flash读写保护的逻辑机制,该方法最好在不考虑数据的安全性问题前提下,才使用这种方法。 对于诸如此类的掉电保护数据方法,这里仅仅是抛砖引玉,欢迎大家多多提出更好的方案。

    2.8K31

    使用OpenOCD

    openocd使用介绍 一款调试工具 1.环境 默认已经搭建好了开发环境,使用brew安装好了openocd 各种介绍网上有很多这里就不多说 下面是我的openocd的安装路径/usr/local/...Homebrew/share/openocd 一会要用到 2.使用 这部分仅介绍使用,具体更深层次的介绍,可以看以后的介绍 a.连接设备 连接stm32开发板之后使用命令连接openocd -f /usr.../local/Homebrew/share/openocd/scripts/interface/stlink-v2-1.cfg -f /usr/local/Homebrew/share/openocd/.../scripts/interface   stable  openocd -f /usr/local/Homebrew/share/openocd/scripts/interface/stlink-v2...gdb connections b.使用telnet连接openocd 在openocd连接成功后会发现这条信息,就可以使用telnet通过4444端口,连接openocd了 Info : Listening

    3.2K30

    抛弃IDE — 在window下使用VScode搭建ARM开发环境

    c init 初始化 -c reset 芯片复位 (因为在实际使用中发现烧录完成后会给芯片写保护,导致再次使用此方法无法烧录,必须复位一次) 经过后来测试发现使用 program...xx.hex 指令烧录是不需要在前面在 reset 的,而且每次都能章程烧录 使用 flash write_image erase xx.hex 有时候会失败,写入以后也会给芯片写保护,需要加reset...的操作窗口 7、使用 Jlink 烧录问题说明 以上的步骤我在使用 ST-LINK 的时候一切正常,但是在用到Jlink 的时候,也是遇到了问题,主要是2个问题,一个是Jlink使用SWD模式的问题,另外一个是...,这主要是STM32设置的调试模式问题,我们现在开发一般使用的都是SWD模式: 然而我们可以看看 在openocd的相关路径下面 openocd\scripts\interface\jlink.cfg...8、gcc下pirntf 的重定义 我们以前在Keil开发STM32的时候,printf都需要重定义才能正常观察打印结果,在gcc下和Keil下的重定义是不一样的,我直接给出我使用的方式: /* USER

    8K50

    《安富莱嵌入式周报》第256期:2022.03.07--2022.03.13

    不喜欢硬件厂家倒腾一堆开源组件ARM GCC,CMake,Git,OpenOCD等大杂烩,使用VisualGDB,一招制敌 像树莓派单片机就是典型的代表,好家伙,安装一堆东西,一路Git命令行,卡的卡...上周莫名其妙的想读取下地址0x1FF0 9800,竟然有惊喜: 读出来了。...(2)Matlab生成任意波形数据给H7-TOOL的信号发生器使用 详细操作说明贴:https://www.armbbs.cn/forum.php?...mod=viewthread&tid=111397 VisualGBD做的OpenOCD魔改非常好用,配合完美,使用TOOL直接就可以连接使用。...(4)使用H7-TOOL的高速DAPLINK配合OpenOCD做芯片读写保护和解除保护也非常方便 详细说明帖:https://www.armbbs.cn/forum.php?

    1.2K50

    使用 CLion 实现 stm32F103 点亮 LED

    CLion帮助开发人员使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。...工具安装: STM32CubeMX:https://www.st.com/en/development-tools/stm32cubemx.html OpenOCD:OpenOCD是用于对STM32进行下载仿真的工具...,是一个开源软件包,Windows版本下从这里下载 环境配置: 在Clion中配置OpenOCD和STM32CubeMX 点击File -> Setting 配置OpenOCD和STM32CubeMX...\bin到系统Path中,并重启系统 最后,打开命令行窗口,输入 gcc -v查看是否安装成功 编译环境2:arm-none-eabi-gcc Windows到这里下载:https://developer.arm.com...MinGW和CMake环境 打开 File -> Settings -> Build,Execution,Deployment,在ToolChain下添加MinGW和arm-none-eabi-gcc环境 2.

    1.7K20

    【技术干货】GD32VF103C-START 入门

    na=quickstart&app=quickstart&ac=index&u=GD32VF103 GD32VF103C-START 学习板使用 GD32VF103CBT6 作为主控制器,你看名字很像stm32...https://xpack.github.io/riscv-none-embed-gcc/ 2、安装IDE 很多基于Eclipse的IDE都是直接解压即可,无需安装,里面包含了gcc、build、openocd...(2)gcc交叉编译器等路径设置,其实openocd是开源的调试软件,类似于jlink,英文:Open On-Chip Debugger,另外IDE也是可以设置jlink的路径的。...顺带提一下,ELF格式在非Windows平台上使用得比较多,在 Windows平台基本上没见过,通常使用的elf文件,全称:Executable and Linking Format,这个使用stm32...五、总结 这个评测写了3天,从熟悉单片机到IDE到下载,遇到了一点小坑,不过好在解决了,其实很多内核与外设都没有熟悉,毕竟是riscv内核,与arm的是有区别的,而且openocd的使用也是有待学习的。

    1.4K10

    Linux下开发stm32 ③ | 寄存器工程开发

    先来回顾一下前两篇 Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译 Linux下开发stm32(二) | 使用openocd下载与调试 前两篇我们介绍了如何创建一个空的裸机工程...(只有启动文件和main文件),并编译工程生成elf文件,然后将其转为bin格式或hex格式,使用openocd下载,最后编写了一个makefile雏形,并成功点亮了一个LED~ 但是这个LED我们是通过指针直接操作寄存器地址来完成的...,接下来,我们在此基础上,引入stm32头文件,其中包含了寄存器的宏定义,也就是使用寄存器进行开发~ 1.创建寄存器工程 首先将上一节中创建的裸机工程00-template-reg复制一份出来,改名为01...stm32f10x.h" int main() { /* 开启GPIOB时钟 */ //*(unsigned int*)(0x40021000+0x18) |= 1<<3; RCC->APB2ENR...<<0); GPIOB->ODR &= ~(1<<0); while(1); } void SystemInit(void) { } 至此,寄存器工程创建完毕,接下来开始编译~ 2.

    1.6K30

    arm裸板驱动总结(makefile+lds链接脚本+裸板调试)

    OpenOCD:既可以烧写nor flash,也可以烧写nand flash,并可以通过JTAG调试器来进行调试 接上OpenJTAG,并安装OpenJTAG驱动 2)使用OpenOCD工具连接OpenJTAG...addr> [hw] 在地址 addr 处设置断点,hw 表示硬件断点,length为指令集字节长度,,若未指定表示软件断点,比如: stm32是2个字节长,2440是4个字节长,部分...MCU拥有多套指令集,长度不固定,如下图所示:  rbp 删除地址 addr 处的断点 bp 打印断点信息 3.3.2通过GDB对JATG实现源码级别的调试  在linux中,使用arm-linux-gdb...,找到i=0所在的运行地址,然后通过命令在地址上打断点 GDB调试: 则可以直接在i=0处的源码上打断点,后台会通过带调试信息的编译文件,来找到i=0处的运行地址,并向OpenOCD发送打断点命令 2)...: 1.调试的源码里面的内容必须位于同一个链接地址上, 各个段也要分开存储,调试的链接脚本和上面第2节的类似, 2.如果程序的链接地址是SDRAM, 使用openocd初始化SDRAM 4)常用命令如下所示

    1.7K90

    【STM32笔记】使用STM32内部Flash额外的空间来存储数据

    STM32 复位后, FPEC 模块是被保护的, 不能写入 FLASH_CR 寄存器; 通过写入特定的序列到 FLASH_KEYR 寄存器可以打开 FPEC 模块(即写入 KEY1 和KEY2) , 只有在写保护被解除后...STM32 的闪存擦除分为两种:页擦除和整片擦除。 也就是其最小擦除单位为1页,尽管你只需往某页里写10个字节数据或者更少的数据,你也必须先擦除该页(2*1024个字节)。...我们这里使用按页擦除,固件库中按页擦除的函数为: FLASH_Status FLASH_ErasePage(uint32_t Page_Address); 其返回值为枚举: typedef enum {...32 位字节写入实际上是写入的两次 16 位数据,写完第一次后地址+2,这与我们前面讲解的 STM32 闪存的编程每次必须写入 16 位并不矛盾。...可见,读出的数据与写入的数据一致,表明读写测试成功。 最后 STM32的内部FLASH读写步骤大致如上,有时候我们还需要封装一些读写函数,但步骤大都如上。写入数据之前需要先进行擦除操作。

    9.6K31

    057_逆向工程高级技术:硬件辅助逆向分析实战指南——从CPU特性到固件提取的全方位解析

    :硬件辅助可以访问更低级别的系统信息 绕过能力:能够绕过大多数软件保护机制 实时性:可以捕获系统的实时状态和行为 复杂性:需要更深入的硬件知识和专业工具 成本:通常需要专用硬件设备,成本较高 第二章:CPU...,不受操作系统限制 适用于加密系统和高保护级别环境 取证工具与方法: Passware Forensic Memory Toolkit Volatility与DMA结合 PyVolatility DMA...Black Magic Probe SWD接口利用示例: # 使用OpenOCD通过SWD访问ARM设备 openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg...# 在OpenOCD控制台中提取固件 > halt > dump_image firmware.bin 0x08000000 0x80000 5.4 调试接口保护与绕过 许多设备尝试保护JTAG/SWD...接口,需要特殊的绕过技术: 常见保护措施: 熔丝位禁用 调试访问密码 物理接口隐藏 软件锁定 保护绕过技术: 熔丝位重置 密码破解或提取 直接访问芯片内部测试点 固件级别的保护旁路 第六章:

    53211
    领券