0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个Bin适配STM32全系列的通用BOOT

RT-Thread官方账号 2025-09-15 17:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

使用zig编写的,一个bin文件适配STM32全系列的通用BootLoader!

c1e9da86-9219-11f0-8ce9-92fbcf53809c.png

代码仓库:

github//github.com/puppy-rtos/stm32-zboot

gitee//gitee.com/puppy-rtos/stm32-zboot

功能特性

自动探测芯片架构、片上flash容量

支持配置uart、spi管脚信息

支持crc、hash校验固件

默认使用FastLZ压缩固件

支持SPI Flash,自动探测型号、容量

自带配置工具:支持生成boot,打包更新包,生成测试app

固件体积极小,仅14.6KB

依托于zig强大的性能和跨平台构建能力,zboot在功能性和固件体积之间取得了良好的平衡!

使用方式

下面以星火1号开发板(主控:stm32f407)为例,展示zboot的使用方法。

1. 下载zboot工具

https://gitee.com/puppy-rtos/stm32-zboot/releases/tag/v0.0.6

目前默认提供了Linux和Windows上的二进制包,MAC的可通过源码编译获取。

c204029e-9219-11f0-8ce9-92fbcf53809c.png

2. 生成stm32-zboot.bin

使用zboot工具生成对应的stm32-zboot.bin和config.json配置文件,运行zboot boot 命令,即可生成这两份文件,如下所示:

c215d6d6-9219-11f0-8ce9-92fbcf53809c.png

stm32-zboot.bin:stm32全系列通用的boot镜像,需要下载到芯片的起始地址。

config.json:stm32 boot配置文件,用来配置boot文件的参数,具体参数的意义看下面的图片。可以按照自己硬件的参数,修改配置文件。修改完之后,再次运行 zboot boot 命令即可更新stm32-zboot.bin的参数配置。

c2279e98-9219-11f0-8ce9-92fbcf53809c.png

下面是我修改过的配置文件。

c249202c-9219-11f0-8ce9-92fbcf53809c.png

烧录配置好的stm32-zboot.bin到开发板,即可通过配置的uart引脚,查看到启动信息。

c254b34c-9219-11f0-8ce9-92fbcf53809c.png

3. 测试引导功能

使用命令 zboot app可以生成测试应用固件。

(默认生成的app.bin加载地址是0x08008000,如果要生成其他地址的测试应用,需要修改项目源码,重新编译。)

c268b608-9219-11f0-8ce9-92fbcf53809c.png

烧录测试固件到0x08008000地址处,然后重启硬件,测试跳转正常。

c27afd5e-9219-11f0-8ce9-92fbcf53809c.png

4. 测试OTA功能

使用命令 zboot rbl 可以打包app固件。默认使用fastlz算法压缩固件体积。

c28a595c-9219-11f0-8ce9-92fbcf53809c.png

然后将stm32-app.bin.rbl烧录到swap分区对应的位置0x08040000。重启硬件,zboot会自动完成应用固件的更新。

c295238c-9219-11f0-8ce9-92fbcf53809c.png

zboot默认集成了SFUD功能,会自动探测外部flash,如果硬件有外部SPI Flash的话,也可以修改配置文件中的引脚信息,并使能外部Flash。

期待您的测试反馈!!!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11123

    浏览量

    371210
  • bin
    bin
    +关注

    关注

    1

    文章

    34

    浏览量

    13881
  • Boot
    +关注

    关注

    0

    文章

    154

    浏览量

    37498
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    fn_u-boot-spl.bin和u-boot-spl.bin区别是什么?请问如何从u-boot-spl.bin生成fn_u-boot-spl.bin

    fn_u-boot-spl.bin = bootrom头 + u-boot-spl.bin ;生成过程见后面代码片段; bootrom头(格式详见) + u-boot-spl.bin(标准的
    发表于 07-11 07:58

    SUPERPRO全系列通用操作手册 (中文版 SP3000U

    SUPERPRO全系列通用操作手册 (SP3000U/580U/280U/) SUPERPRO全系列通用操作手册包括三部分:第部分介绍
    发表于 12-27 18:34 0次下载

    STM32单片机的BOOT0和BOOT1应用原理

    STM32单片机的BOOT0和BOOT1应用原理。
    发表于 07-14 18:14 69次下载

    Zynq 7015 linux跑起来之导入之BOOT.bin生成详解

    本文主要介绍Zynq 7015 linux跑起来之导入之BOOT.bin生成,具体的跟随小编起来了解下。
    的头像 发表于 06-27 10:01 8373次阅读

    PIC® MCU全系列通用开发板简介

    Microchip公司本次讲座将讲:PIC® MCU全系列通用开发板简介。
    的头像 发表于 06-06 01:45 5297次阅读

    MPSOC案例:petalinux打包和BOOT.BIN开发流程

    ,限制太死了,不用。 2 windows环境SDK打包 2.1 制作BOOT.bin 用SDK的图形界面搞定也是样的。(markdown显示本地图片,路径里的/要换成/,蛋疼)         为啥必须
    的头像 发表于 12-30 14:15 6082次阅读
    MPSOC案例:petalinux打包和<b class='flag-5'>BOOT.BIN</b>开发流程

    试图构建便于适配不同平台mcu的通用

    试图构建便于适配不同平台mcu的通用
    发表于 11-26 15:21 10次下载
    试图构建<b class='flag-5'>一</b><b class='flag-5'>个</b>便于<b class='flag-5'>适配</b>不同平台mcu的<b class='flag-5'>通用</b>库

    分享通过STM32bin文件逆向分析代码的工具

    关注、星标公众号,不错过精彩内容转载:芯片之家来源 |阿莫论坛,作者 | ilovepp首先你要有bin文件(bin文件的获取方法不在此展开介绍,今后有机会可以专门开
    发表于 12-09 14:36 22次下载
    分享<b class='flag-5'>一</b><b class='flag-5'>个</b>通过<b class='flag-5'>STM32</b>的<b class='flag-5'>bin</b>文件逆向分析代码的工具

    学技术 | STM32F系列向G系列切换应用总结—Boot mode及Option byte

    很多客户在使用STM32G系列替代STM32F系列时,我们经常会收到客户反馈如果使用串口下载程序?如何修改boot模式?如何将特殊IO复用成
    的头像 发表于 12-19 15:31 1.4w次阅读
    学技术 | <b class='flag-5'>STM32</b>F<b class='flag-5'>系列</b>向G<b class='flag-5'>系列</b>切换应用总结—<b class='flag-5'>Boot</b> mode及Option byte

    STM32全系列支持功能安全应用

    电子发烧友网站提供《STM32全系列支持功能安全应用.pdf》资料免费下载
    发表于 07-31 15:26 0次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>全系列</b>支持功能安全应用

    STM32F0系列MCU硬件电路boot设计

    Boot配置的作用是用于选择芯片上电后从何处读取可执行代码运行,STM32F0系列MCU可以从Main flash memory、System memory、Embedded SRAM三
    的头像 发表于 09-27 14:21 5077次阅读
    <b class='flag-5'>STM32</b>F0<b class='flag-5'>系列</b>MCU硬件电路<b class='flag-5'>boot</b>设计

    bin文件怎么烧录到stm32

    烧录bin文件到STM32微控制器是相对复杂的过程,涉及到硬件连接、软件配置和固件烧录等多个方面。 、硬件准备
    的头像 发表于 08-22 09:38 5787次阅读

    stm32boot0和boot1对应哪个p引脚

    STM32系列微控制器是种广泛应用于嵌入式系统领域的32位微控制器。在STM32系列微控制器中,BOO
    的头像 发表于 08-22 09:40 7981次阅读

    STM32引脚中的BOOT1在哪里

    STM32是STMicroelectronics(意法半导体)推出的一系列32位微控制器,广泛应用于嵌入式系统设计。关于STM32BOOT1引脚,它主要与系统的启动模式有关。
    的头像 发表于 08-22 09:43 6848次阅读

    stm32读取boot引脚状态

    启动源)。 读取Boot引脚状态 在STM32中,Boot引脚的状态并不是直接通过寄存器读取的,因为它们
    的头像 发表于 08-22 09:48 3696次阅读