一次STM32下的bootloader调试过程记录

STM32的bootloader程序(通过串口更新STM32应用程序) STM32的bootloader程序(通过串口更新STM32应用程序),对bootloader进行浅浅的学习 阅读详情

单片机:STM32F103VCT6

bootlodaer是用keil写,串口1和串口5作为下载app串口

app程序是用rt-thead studio写的,串口4作为控制台串口

程序逻辑:booloader启动程序初始化硬件,等待串口命令5s,超时检查app正确否,正确跳转到app执行,错误复位,继续等待.如果在等待的时候收到串口命令执行串口命令,可以读取参数,修改参数,下载app程序等,下载app程序放到W25Q64里面,下载完成通过校验后搬运到app分区.当跳转到app程序正常运行,收到升级命令后跳转到bootloader程序运行.

调试过程出现的问题:

app程序单独运行可以,加上bootloader后串口串口中断接收卡死

参考一下

RT-Thread-控制台用UART4,不带boot没问题,带boot就有不工作RT-Thread问答社区 - RT-Thread

app程序中串口使用DMA方式的没有问题,串口中断方式的都卡死,UART1-UART4是用DMA可以,但是UART5没有DMA,只能用串口中断接收,

注意一下几点

1.bootloader程序跳转到app前要对串口进行恢复初始化,不然在bootloader程序中使用DMA方式,到app中串口中断打开的时候DMAR寄存器清不掉,会影响串口的接收

2.在带bootloader的App程序中,串口中断接收会卡死在接收中断里面,查了很长时间才发现是IDLE中断清不掉,这个一直没搞明白为什么清不掉,看手册说是只要读取SR,再读DR就能清掉,但是始终清不掉,不知道为什么,没办法只能把IDLEIE关掉,不让他产生中断

 

 

 

keil从非0x08000000地址调试STM32单片机程序方法 在使用stm32单片机的串口IAP升级功能时,需要调试bootloader程序和app程序,一般bootloader的程序都是从0x08000000地址开始运行的,使用keil软件可以直接进行仿真,但是如果调试app程序的话,由于它不是从0x08000000地址开始的,使用keil仿真的时候,仿真不了。为了可以直接使用keil仿真APP程序,在网上找了好多方法,不过好多方法都讲的比较凌乱,看起来也不方便。下面就将自己总结的2种方法分享出来。 阅读详情

相关推荐

STM32-OTA升级-基于STM32CubeMX+STM32F103(一)基础知识

STM32+OTA升级-基本知识

格子格鸽的个人博客 7008

梳理STM32下载调试,三个存储器,bootloader,启动文件,ISP,一键下载电路的联系

所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。

life2colorful的博客 879

【stm32多种系列bootloader项目纪实】

stm32不同芯片bootloader的不同之处

weixin_42962942的博客 1199

stm32 IOT_STM32通用Bootloader——FOTA

1.固件升级简述固件升级,通常称为 OTA(Over the Air)升级或者 FOTA(Firmware Over-The-Air)升级,即固件通过空中下载进行升级的技术。1.1 bootloader 升级模式bootloader 的升级模式常见有以下两种:bootloader 分区 + app1 分区 + app2 分区模式该模式下, bootloader 启动后,检查 app1 和...

weixin_39608748的博客 1170

RT_thread STM32通用Bootloader 做OTA升级

项目上需要做设备的远程升级更新程序,从而避免每次更新程序时都需要去现场烧录的麻烦。从而学习探索了RT提供的OTA功能。 RT-Thread 开发团队提供了通用的 Bootloader。开发者通过该 Bootloader 即可直接使用 RT-Thread OTA 功能,轻松实现对设备端固件的管理、升级与维护。" 引用于官方资料文档。 主要参考资料: 1.官方文档资料ht...

浪迹天涯的博客 2万+

STM32 USB DFU固件升级实战:从原理到自定义Bootloader实现

固件升级是嵌入式设备维护的核心功能,IAP技术允许设备在应用运行中更新自身程序。通过标准化的USB DFU协议,开发者可以利用通用USB接口实现高效、便捷的升级方案。该技术将设备枚举为标准DFU设备,借助主机工具完成固件传输与烧录,极大简化了现场维护流程。对于STM32系列MCU,开发者既可使用芯片内置的ROM DFU引导程序快速验证,也可基于USB协议栈实现高度自定义的Bootloader,从而支持按键触发、安全校验等复杂逻辑。本文聚焦STM32的USB DFU功能,详细解析了其工作原理、硬件连接关键点、

weixin_30410119的博客 2215

STM32 简易Bootloader

主要实现bootloader串口读取app程序 ,将app程序拷贝到对应运行的flash区域,跳转到对应的区域执行代码。本文没有复杂的显示,app只点亮一个灯做测试用。

m0_46489657的博客 4176

STM32调试必知:RDP、CPUID与Bootloader Version详解

在嵌入式开发和固件安全领域,芯片内部的基础参数直接决定了调试、量产和返修流程是否顺畅。调试接口(如SWD)能否读取Flash,取决于芯片的读保护机制;内核型号的辨识则依赖CPUID这类只读寄存器;而引导程序版本则影响着串口升级协议的兼容性。理解这些概念的原理,有助于工程师规避“连接成功却读不了固件”“UID字节序错乱”等高频问题。以STM32F030C8T6为例,结合STM32CubeProgrammer的实际操作,说明RDP级别、CPUID值以及Bootloader version的读取方法与注意事项,帮

weixin_30715523的博客 308

STM32 Bootloader开发记录

编写一个基础的Bootloader,记录一下开发过程及遇到的问题。

duapple的博客 6913

WS2812呼吸灯效果实战:用STM32的PWM+DMA实现流畅渐变(附完整代码)

本文详细介绍了如何使用STM32的PWM+DMA技术实现WS2812呼吸灯效果,提供完整的代码示例和调试技巧。通过PWM波形编码和DMA传输机制,解决了传统IO模拟控制方式的高CPU占用问题,实现了流畅的LED渐变效果,适用于各种嵌入式开发场景。

weixin_30566063的博客 452

COMSOL仿真分析高压直流GIS/GIL绝缘性能优化

高压直流气体绝缘设备(GIS/GIL)的绝缘性能是保障电网可靠运行的关键。通过COMSOL Multiphysics多物理场仿真,可以深入分析气固界面电场分布与电荷积聚机理。该技术结合静电场、热场和电荷传输耦合计算,能准确模拟温度梯度对SF6气体与环氧树脂界面特性的影响。工程实践中,这类仿真可优化导体结构设计、改进绝缘材料配方,并建立电场-温度关联预警模型。特别是在80℃高温工况下,仿真显示界面电荷密度会显著增加23%,这对设备安全运行具有重要指导价值。

weixin_32075843的博客 191

关于STM32的bootloader无法跳转到RT-Thread的一些总结

最近由于工作需要,在调试STM32的bootloader,中间遇到了很多问题。 之前没有接触过BootLoader,跟着原子哥的IAP来学习的Bootlader原理。写了裸机程序来进行调试,过程还算比较顺利。最后在更新APP(基于RT-Thread的程序)时出现了问题,一直调试了好几天。 裸机bootloader跳转裸机的APP程序没有问题,跳转自身也没有问题。通过JLINK直接读取整个芯片,把APP程序的第二个字(reset_handler的地址)直接写入到0x08000004(默认的reset_hand

mazhongguang的博客 2692

非root用户如何在CentOS7集群上编译安装OpenFOAM6

本文详细介绍了在CentOS7集群上以非root用户身份编译安装OpenFOAM6的完整流程。通过环境准备、依赖包离线获取、源码编译安装等步骤,解决了集群环境下权限和依赖问题,特别针对OpenMPI和Boost库提供了优化配置建议,帮助用户高效完成安装并优化性能。

weixin_28826961的博客 681

N32替换STM32记录

N32替换STM32记录 前言 目前大形势影响,芯片价格日益上涨,采购周期变长,导致国产芯片替代进口芯片成为大趋势,该文章记录了使用国民技术的N32替换STM32的操作流程。 话不多说,上步骤。 一、工程配置 1.安装硬件库 2. 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns im...

zhang421412170的博客 8102

PX4飞控与MAVROS实战:从零搭建无人机ROS通信环境(附常见报错解决)

本文详细介绍了如何从零搭建PX4飞控与ROS的通信环境,重点解析了MAVROS的安装、硬件连接、串口权限配置以及坐标系转换等核心步骤。针对GeographicLib数据下载失败、串口权限不足等常见报错提供了实用解决方案,并附有Offboard模式控制的代码示例,帮助开发者快速建立稳定的无人机ROS开发环境。

dapp9builder的博客 335

Oasys安装教程

在基环境下执行然后去 C:\Users.condarc打开 .condarc这个文件 删除干净里面的东西。

weixin_44254178的博客 1294

在CLion上实现STM32H750VBT6的Bootloader

平常使用的环境是CLion,在使用WeAct的STM32H750VBT6的时候发现这个芯片内部的Flash太小,根本不能移植一些库,如LVGL。事无巨细地介绍了实现Bootloader的全部过程,并且还包含有对使用openocd的一些问题的解决办法。所有代码提供百度网盘以及Github仓库链接。目的在于让大家少踩坑,帮助大家实现Bootloader。自己也记录一下学习中的困难和感受。CLion STM32H750VBT6 WeAct 反客 Flash Bootloader openocd perl。

qq_44656481的博客 4466

测试 Wi-Fi、蓝牙性能

前几天去原厂测试了 Wi-Fi 和蓝牙的性能,现在把了解到的知识总结一下 RF通路新理解 RF通路一般分为两部分:芯片端、天线端 芯片端 芯片端包括芯片+芯片出来的RF匹配电路,是来调芯片的阻抗匹配的。 天线端 天线前一般也会有一段天线匹配电路,是留给天线调天线的阻抗匹配的。 调试的时候是两部分分开调试的,下面调试的就是芯片端。 测试“阻抗匹配”用网络分析仪看史密斯圆图 测试...

撒哈拉的初学者的博客 1万+

STM32 Bootloader跳转到APP程序中无法启动实时系统

STM32 Bootloader跳转到APP程序中无法启动实时系统 一、问题描述: STM32G431 bootloader跳转到APP中执行,能够进入APP的main函数,但main函数里创建实时系统(CMSIS-RTOS2)失败。 二、问题解决过程: 首先明确:APP程序稍作修改(去掉中断向量偏移,flash起始地址改为0x08000000),不用bootloader,直接烧录到单片机里是肯定可以执行的,实时系统也是可以运行的。 以下是bootloader跳转处的程序(bootloader也用的是CMS

u011790904的博客 6210

uniapp - [全端兼容] 实现精美Editor富文本编辑器功能,uniApp全平台兼容的富文本插件组件用户可上传图片及对接服务器存储文件等,手机移动端H5网页富文本/小程序富文本/App富文本!

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniapp富文本编辑器,uniapp中如何实现各平台都兼容的富文本编辑器,Editor富文本插件,uniApp微信小程序富文本,UNI-APP安卓苹果ios系统App端富文本组件,editor富文本编辑器如何实现上传图片,图片上传后不显示怎么办,如何配置图像上传功能,富文本图片上传怎么传到服务器中,获取图片路径,editor插入图片,富文本编辑器上传图片,报错怎么办,跨域CORS处理,配置不行无效

🏆 前端领域优质创作者 1万+

virtuoso如何导出def?

在DEF Out界面,填写def name,library name以及cell name ,cell view既layout,把Output "Floating Shapes" into SPECIAL NETS Section勾上,OK即可。2)在要导出的layout界面选中PAD和prBoundary(shift+左键),快捷键C copy到空cell里,这时需要调整copy过来的object坐标,让两边prBoundary的坐标相同。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 2304

STM32/GD32 BootLoader升级 IAP升级

如果我们的App 程序起始地址在0x08006000 ,并且App 的中断向量表在起始地址,那么BootLoader 程序下载App 后,为了App 程序能正确运行,开始App 程序的运行后第一步,就要把中断向量表重定位到0x08006000 那里。我们的BootLoader下载App程序后,App程序就需要做同样的事情。

weixin_39939185的博客 4989

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

STM32G070 使用 OpenBLT 记录。

STM32G070 使用 OpenBLT 进行程序引导和更新。

还没想好 3853

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

浅谈STM32 bootloader异常

近日在公司项目中,现场遇到STM32L431设备启动起来之后设备屏幕显示异常,无法正常启动,对此故障原因进行分析定位,设备代码分为bootloader、与APP应用两部分,定位之后异常原因为设备启动进入bootloader之后,进行一系列操作,随后跳转APP应用,跳转之后APP无法启动,调试发现原因为APP部分全局变量初始化数值被异常更改。因此有了此次记录。

2301_76232658的博客 1677

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

bootloader学习笔记---第一篇以stm32为例

本系列笔记主要记录我学习汽车电子的bootloader程序开发中做的笔记,我学习的芯片是英飞凌的aurix系列的tc377,tc234,tc222,这主要是涉及到两块的东西,驱动程序和协议栈(我学习的是uds协议),前面几篇笔记是我学习的stm32的bootloader。bootloader的目的是OTA,即为了给板子上面的...

Embedded learner的博客 7711

设备树、Bootloader、NAND Flash与STM32启动流程详解

在嵌入式系统开发中,设备树(Device Tree)、Bootloader(引导加载程序)和NAND Flash是三个常见的概念,它们在不同的嵌入式平台中扮演着不同的角色。对于STM32微控制器,理解这些概念以及启动流程对于开发稳定可靠的应用至关重要。本文将详细介绍这些概念,并重点解析STM32微控制器的启动过程。

kanhao100的博客 1726
上一篇: RT-THREAD + HC32F460 + AIR724 + ALIIOT
下一篇: BH1750程序测试
cloudstep
博客等级 码龄22年 14粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值