stm32、gd32等芯片固件升级思路

单片机固件升级相关

前言

众所都周知,固件固件就是固定不动的软件,所以不用升级,此贴完结。





哎,话虽如此固件一般情况下不需要更新,毕竟主要功能是为控制一些底层的硬件,但是你永远不知道明天和需求哪个先来。所以在一些必要时刻需要给你的单片机留一个后门用于应对各种需求。

理论

以stm32举例,默认情况下固件程序烧写在ROM上,所以只要使用一些手段在对应地址写上对应数据就可以了。废话不多说下面举几个常见工具和常用的下载和更新固件的方式。

实践

1通过下载器下载和更新固件程序:
stm32或者其他arm内核下载常用的下载仿真器有
j-link :在这里插入图片描述
更简洁的有jlink ob:
在这里插入图片描述
当然还有ST自家的st-link、TI的XDS等这种面向自家芯片的下载调试器。
进几年随着国产arm内核的芯片增多,一些国产的CMSIS-DAP调试器也多了起来(表扬创芯工坊PWlink)。
虽然下载器和芯片数量繁多,但是下载接口一般都较为统一,接线方式如下:
接线(使用SW口):
VCC – VCC 一般为3.3V
GND-- GND
SWCLK–CLK 时钟
SWDIO–DIO 信号

2通过串口或USB下载和更新固件程序:
当然并非所有人都是开发,手中没有下载器才是常态。这时可以借助其他工具来下载固件程序。这时可按照如下步骤操作(使用工具串口转USB,简单的一根USB线)
在这里插入图片描述
详细步骤如下:

  • 启动芯片自带的bootloader来下载程序。以stm32为例,进入芯片自带bootloader一般只需要将boot引脚拉高之后上电或复位。
  • 如果使用串口下载(又叫ISP),串口接线TX --RX RX–TX VCC --VCC GND–GND。接好线后打开软件,选择串口 波特率和要升级的固件后,下载即可。升级过程一般就发一些指令如连接状态,芯片号,擦除和写入flash等。常用的下载软件有flyMCU。
  • 一些自带USB功能的单片机除了支持串口下载(ISP)外,还支持一种叫DUF的下载方式。插上USB进入系统带bootloader下,使用DUF工具打开.duf文件下载。听说是在stm32上广泛使用。
  • 烧写后,别忘了将boot引脚拉低。复位重启

第三方bootloader下载
这种方式就不是使用官方自带的bootloader了,需要我们自己写个bootloader来控制升级。这种方式更加灵活,可以通过任意能过获取到升级固件的方式都可以进行升级,比如网口,SD卡,U盘,串口等等。
与官方自带bootloader区别就是,官方的一般烧录在system memory中不可更改。而第三方bootloader我们自己写的一段应用,烧录在rom当中。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值