LiteOS编译后文件stlink或串口下载工具
背景
本文关于在一些时候我们需要将编译好的hex文件或是bin文件,通过ST-link或是串口进行下载程序,有时也需要将程序文件从MCU中读出来,用来版本对比或是反编译的工作,这时候就需要stm32最新推出的程序下载工具--SMT32CubeProgrammer
STM32CubeProg简介
STM32CubeProgrammer(STM32CubeProg)是用于对STM32产品进行编程的多合一多操作系统软件工具。
STM32CubeProgrammer Picture它提供了一个易于使用且高效的环境,用于通过调试接口(JTAG和SWD)和引导程序接口(UART,USB DFU,I2C,SPI和CAN)读取,写入和验证设备存储器 提供了广泛的功能来对STM32内部存储器(例如闪存,RAM和OTP)以及外部存储器进行编程。 STM32CubeProgrammer还允许通过脚本编写选项编程和上传,编程内容验证以及编程自动化。 STM32CubeProgrammer以GUI(图形用户界面)和CLI(命令行界面)版本提供。
主要特性
- 擦除,编程,查看和验证设备闪存的内容
- 支持Motorola S19,Intel HEX,ELF和二进制格式
- 支持调试和引导加载程序接口:ST-LINK调试探针(JTAG / SWD)UART,USB DFU,I2C,SPI和CAN Bootloader接口
对外部存储器进行编程,擦除和验证,并带有外部闪存加载器的示例,以帮助用户开发特定外部存储器的加载器 - 自动化STM32编程(擦除,验证,编程,配置选项字节)
- 允许OTP存储器编程
- 支持选项字节的编程和配置
- 提供命令行界面以通过脚本进行自动化
- ST-LINK固件更新
- 使用STM32 Trusted Package Creator工具启用安全的固件创建
- STM32MP1系列外设引导和闪烁
- 支持STM32WB系列的OTA编程
- 多操作系统支持:Windows,Linux,macOS
文件下载地址:https://www.st.com/zh/development-tools/stm32cubeprog.html
BOOT
引导加载程序存储在STM32设备的内部引导ROM(系统存储器)中,并由ST在生产过程中进行编程。 它的主要任务是通过可用的串行外设之一(例如USART,CAN,USB,I2C,SPI)将应用程序下载到内部闪存中。 为每个串行接口定义了一个通信协议,具有兼容的命令集和顺序。现在STM32CubeProg支持的BOOT模式有ST-Link、UART、USB、OTA这几种模式;其中ST-LINK支持V2、V3的版本,同时可以对下载器进行升级;UART模式,当把MCU的BOOT设置到UART BOOT模式上STM32CubeProg可以直接连接到MCU内置的程序引导固件,进行flash的读写;USB和OTA支持部分支持到UDF和OTA的芯片,同时讲BOOT设置到这两模式上, 就可以利用STM32CubeProg直接连接芯片进行USB和云端远程flash操作。本文主要以ST-LINK模式进行MCU BOOT下的操作。
STM32CubeProg基本功能
STM32CubeProg基本功能是对MCU的FLASH进行读写功能,下图简要介绍一下软件基本窗口
Memory&Flie deition菜单下,我们可以进行FLASH的读和写的操作;下载器选择中我们可以选择ST-LINK、UART、USB、OTA等模式;ST-LINK配置中可以对已经连接的ST-LINK进行端口配置,速度配置,模式配置、复位模式等操作,同时可以读取仿真器版本和电压信息;同时当连接芯片后我可以读在Target information中看到连接的MCU的型号和MCU的flash信息。
STM32CubeProg支持的固件文件格式有;bin、binary、hex、srec、elf、out、axf、tsv这几种格式,LiteOS-studio在编译后可以生成bin、hex、elf三种格式,所以我们可以选择其中一个用STM32CubeProg进行程序下载。
STM32CubeProg文件读取后,可以进行二进制和16进制文件的保存,可以直接保存为bin、hex、srec三种格式,我们在保存芯片程序一般可以选择hex文件格式,可以很好地进行对比和反编译。
STM32CubeProg高级功能
除了上述的说明的对程序的简单读取,STM32CubeProg还可以基于ST-LINK仿真器,进行更进行的flash和MCU的设置。
MCU内核设置中,我们可以对MCU进行运行,停止、复位等操作,同时可以直接配置内核寄存器的数值、SP指针和PC指针的配置,可以看到程序运行的位置,及判断是否有跑飞的情况。
上图STM32CubeProg提供了串口示波器功能,可以通过仿真器带的虚拟串口对串口数据采样数据进行收集同时播放在界面上。
STM32CubeProg还提供,FLASH分片擦写功能,可以选择要擦除的区域进行擦除操作,在官方的开发板还只是SPI外部FLASH的操作,可以对其进行写入和擦除的操作。
- 点赞
- 收藏
- 关注作者
评论(0)