stm8和stm32的烧写程序的区别
stm8和stm32的烧写程序的区别
STM8 和 STM32 是意法半导体(STMicroelectronics)不同的单片机系列,它们在架构、性能和开发工具链上都有显著差异,这也导致了它们的烧写程序(编程/下载程序到芯片的过程)存在关键区别。主要区别总结如下:
-
内核架构不同:
- STM8:基于 8位 STM8 核心(CISC 指令集)。
- STM32:基于 32位 ARM Cortex-M 核心(RISC 指令集)。这是最根本的区别,决定了底层通信协议和工具链。
-
主要烧写接口不同:
- STM8:
- 主要接口:SWIM (Single Wire Interface Module)。这是 ST 为 STM8 系列开发的专用单线调试和编程接口。只需一根数据线(SWIM)和地线(GND)即可进行编程和调试(有时需要一根复位线 RESET 用于强制进入编程模式)。
- 备用接口:部分型号支持 UART Bootloader(通过特定引脚进入)。
- STM32:
- 主要接口:JTAG / SWD (Serial Wire Debug)。这是 ARM Cortex 内核的标准调试接口。
- SWD:更常用,只需两根线(SWDIO 数据线、SWCLK 时钟线)和地线(GND)。功能强大,支持编程和高级调试。
- JTAG:较老的并行接口,需要更多引脚(TMS, TCK, TDI, TDO, nTRST, RESET),功能更全但占用引脚多,在新设计中较少用。
- 备用接口:
- UART Bootloader:几乎所有型号都内置,通过特定引脚(通常是 BOOT0)配置启动模式进入。
- USB DFU (Device Firmware Upgrade):部分型号内置 USB 外设的支持。
- I2C / CAN Bootloader:部分型号支持。
- SPI / QSPI:常用于外部存储器编程或特定引导配置。
- 主要接口:JTAG / SWD (Serial Wire Debug)。这是 ARM Cortex 内核的标准调试接口。
- STM8:
-
烧写工具(编程器/调试器)不同:
- STM8:
- 需要支持 SWIM 协议 的编程器/调试器。
- 常见工具:ST-LINK/V2 (支持STM8和STM32的部分SWIM型号)、ST-LINK/V3SET (支持STM8和STM32)、STVP(ST Visual Programmer软件自带驱动)、第三方支持 SWIM 的编程器。
- STM32:
- 需要支持 JTAG/SWD 协议 的编程器/调试器。
- 常见工具:ST-LINK 系列(V2, V2-1, V3, V3SET等)、J-Link、ULINK、DAP-Link 等所有支持 ARM Cortex-M JTAG/SWD 协议的调试探针。ST-LINK 是 ST 官方的,性价比高且通用。
- STM8:
-
烧写软件不同:
- STM8:
- 主要软件:ST Visual Programmer (STVP)。这是 ST 提供的经典、专用工具,界面相对简单直接,主要用于烧写(擦除、编程、校验、Option Bytes配置)。
- 集成开发环境 (IDE):STVD (ST Visual Develop) + Cosmic/CooCox/IAR 等编译器。STVD 内置 STVP 功能或与之集成。
- 命令行工具:STVP 有命令行版本 (
STVP_CmdLine.exe)。
- STM32:
- 主要软件:
- STM32CubeProgrammer (STM32CubeProg):ST 推出的现代化、统一工具,支持所有 STM32 系列(包括通过 UART/USB DFU/SWD/JTAG 等接口),功能强大(烧写、Option Bytes/OTP 配置、加解密、外部存储器编程等),图形界面和命令行 (
STM32_Programmer_CLI.exe) 都支持。 - ST-LINK Utility (已逐渐被 STM32CubeProgrammer 取代,但仍有用户)。
- STM32CubeProgrammer (STM32CubeProg):ST 推出的现代化、统一工具,支持所有 STM32 系列(包括通过 UART/USB DFU/SWD/JTAG 等接口),功能强大(烧写、Option Bytes/OTP 配置、加解密、外部存储器编程等),图形界面和命令行 (
- 集成开发环境 (IDE):
- STM32CubeIDE (ST 官方,基于 Eclipse,集成了STM32CubeMX配置、编译、调试、CubeProgrammer烧写功能)。
- Keil MDK-ARM (µVision)。
- IAR Embedded Workbench for ARM。
- SEGGER Embedded Studio。
- PlatformIO。
- 这些 IDE 内部都集成了通过 JTAG/SWD 接口进行编程和调试的功能(调用 GDB 或 J-Link 等工具链)。
- 命令行工具:STM32CubeProgrammer CLI, OpenOCD (配合 GDB)。
- 主要软件:
- STM8:
-
启动模式与 Bootloader 配置:
- STM8:通常通过
OPTION BYTE中的ROP(Read-Out Protection) 和AFR(Alternate Function Remapping) 等选项字节来配置保护级别和复位后的启动行为(从主程序启动还是从 RAM 启动)。进入编程模式主要依靠硬件复位序列激活 SWIM。 - STM32:有一个专门的 BOOT0 引脚(有时还有 BOOT1 引脚或通过选项字节配置)。上电或复位时:
- BOOT0 = 0:从主 Flash 启动用户程序(最常见)。
- BOOT0 = 1:从系统存储器启动内置 Bootloader(通常是 UART 或 USB DFU)。这个 Bootloader 是固化在芯片内部的 ROM,独立于用户 Flash。烧写程序通常不需要改变 BOOT0,因为通过 SWD/JTAG 可以直接访问 Flash。选项字节 (
Option Bytes) 则用于配置写保护 (WRP)、读保护 (RDP)、用户选项等。
- STM8:通常通过
-
烧写算法文件:
- STM32:在 Keil/IAR/CubeIDE 等 IDE 中编程时,需要为特定的 STM32 型号及其使用的 Flash 存储器加载对应的 Flash 编程算法文件 (通常是
.FLM,.stldr,.elf等形式)。这个算法文件告诉调试器如何擦除、编程该芯片内部的 Flash。 - STM8:在 STVP 或 STVD 中,这种概念相对较弱或封装得更好,工具通常直接内置了对不同型号 Flash 操作的支持。
- STM32:在 Keil/IAR/CubeIDE 等 IDE 中编程时,需要为特定的 STM32 型号及其使用的 Flash 存储器加载对应的 Flash 编程算法文件 (通常是
总结对比表:
| 特性 | STM8 | STM32 |
|---|---|---|
| 核心 | 8位 STM8 (CISC) | 32位 ARM Cortex-M (RISC) |
| 主接口 | SWIM (单线) | SWD/JTAG (双线/多线) |
| 常用工具 | ST-LINK/V2 (SWIM), STVP | ST-LINK (SWD/JTAG), J-Link, STM32CubeProgrammer |
| 主软件 | ST Visual Programmer (STVP), STVD | STM32CubeProgrammer, STM32CubeIDE, Keil, IAR |
| Boot配置 | 选项字节 (OPTION BYTE) |
BOOT0/BOOT1 引脚 + 选项字节 (Option Bytes) |
| 进入编程 | 硬件复位序列激活 SWIM | 调试器直接通过 SWD/JTAG 连接控制复位和核心 |
| 烧写算法 | 工具内建支持为主 | 需要加载对应型号的 Flash 编程算法文件 |
| IDE集成 | STVD + (Cosmic等) | STM32CubeIDE, Keil, IAR (高度集成调试/烧写) |
| Bootloader | UART (部分型号) | UART, USB DFU, I2C, CAN, SPI (常见且强大) |
简单来说:
- STM8 用 SWIM 接口和 STVP 软件烧写是经典方式。
- STM32 用 SWD 接口和 STM32CubeProgrammer 或 集成IDE (CubeIDE/Keil/IAR) 烧写是标准方式。BOOT0 引脚用于选择启动内置 Bootloader 的方式很有特色。
选择哪种方式取决于你使用的具体芯片型号、手头的工具以及开发环境偏好。
安装最新版的IAR for stm8无法烧写程序怎么解决?
我有两台电脑分别安装win7和win10,并都安装了最新版的IAR for stm8(V3.10)。win10系统那台没有任何问题,win7那台无法烧写
STM32f103c8t6烧写程序后使用STLINK V2无法连接芯片
STM32f103c8t6烧写程序后使用STLINK V2无法连接芯片
资料下载
王毅山
2021-12-27 18:54:57
STM32:程序烧写方式
ST-link下载器烧写程序使用专门的编程器/调试器,具有下载功能和调试功能,还可以和IDE结合,实现一键下载和调试。这种接口是通过引脚直连AR
资料下载
mintsy
2021-12-07 10:51:12
stm8和stm32的区别和特点
STM8和STM32是STMicroelectronics(意法半导体)推出的两个系列的微控制器产品。虽然它们都是由意法半导体生产的,但在架构、功能和特点方面有一些显著的
2023-12-18 16:36:02
stm单片机型号的意义 stm8和stm32的烧写程序的区别 stm8读取程序
STM或STM32或STM8,代表单片机的品牌和系列。STM32系列是基于ARM Cortex-M内核的单片机系列,而
2023-04-08 14:43:49
STM32烧写失败错误的处理方法
STM32烧写失败错误:Contents mismatch at: 08000000H (Flash=FFH Required=00H)
2022-06-21 08:55:32
STM8芯片写程序
STVP提示The device is protected解决方法1234567分步阅读STM8芯片写程序提示The device is pro
新一代烧写工具:STM32 Cube Programmer
: 通过调试接口【JTAG/SWD】来烧写程序,一般要使用STLink Utility或STVP工具软件来完成; 通过UART接口来
2020-12-24 17:26:21
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机