前言
众所都周知,固件固件就是固定不动的软件,所以不用升级,此贴完结。
。
。
。
。
。
哎,话虽如此固件一般情况下不需要更新,毕竟主要功能是为控制一些底层的硬件,但是你永远不知道明天和需求哪个先来。所以在一些必要时刻需要给你的单片机留一个后门用于应对各种需求。
理论
以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线)
详细步骤如下:文章来源:https://www.toymoban.com/news/detail-662192.html
- 启动芯片自带的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当中。文章来源地址https://www.toymoban.com/news/detail-662192.html
到了这里,关于stm32、gd32等芯片固件升级思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!