上面理论+实践当初花了3天时间弄完的,但是,当你真正做项目的时候,你会发现,只有上面的这些知识还不够,还有更多的细节要去处理:APP程序怎么跳转到BootLoader程序?APP程序和BootLoader之间是否会互相影响?APP和BootLoader之间如何传递参数?固件更新一到一半,因为某种原因失败了(通信错误、掉电),该如何处理?如何确保更新的APP是你需要的APP,而不是别的一个APP?经
概述本教程主要根据官方推荐的教程进行改编,详细信息请参考OTA Downloader软件包STM32 通用 Bootloader本例程的模板使用通用模板环境搭建里面的模板RT-Thread—STM32—FAL库 文末也有我移植好的例程,不过建议大家从头开始移植,加深印象^_^bootloader的制作 文末有我已经做好的Bootloader文件,可供参考打开bootloader制作的
升级方式启动方式在STM32F10xxx里有三种启动方式:BOOT0BOOT1启动模式说明0X用户闪存存储器用户闪存存储器,也就是flash启动10系统存储器系统存储器自动,用于串口下载11SRAM启动SRAM启动,用于再SRAM中调试代码系统存储器是厂家固化好的一片存储区,地址为0x1FFFF000,具有串口升级的功能,并把程序引导至用户闪存存储区。用户闪存存储区是保存用户代码及数据的存储区吗,
转载
2024-10-24 14:32:46
393阅读
文章目录前言一、使用STM32CubeMX1. 安装固件库2. 工程设置二、USART串口通信1.UART函数库介绍2.线路连接3.代码编写4.测试结果5.软件调试三、总结四、参考资料 前言使用STM32CubeMX实现串口通信硬件:stm32f103c8t6 核心板软件:STM32CubeMX 6.3.0软件:keil5 mdk一、使用STM32CubeMX1. 安装固件库若点击Manage
STM32 OTA升级原理分析程序运行流程正常程序运行流程程序结构程序启动流程含bootloader程序运行流程程序结构含bootloader程序启动流程程序编程重点存储分区常见分区方案无备份区升级有备份区升级AB对称升级有工厂代码区升级TC397 SOTABootloader升级判断处理程序跳转函数APP程序存储地址设置程序中断向量表偏移 程序运行流程正常程序运行流程程序结构正常程序从起始地址
转载
2024-10-21 23:10:33
322阅读
1、Cubemx 2、stm32Hal库 3、同步串口收发 4、阻塞式收发stm32串口配置过程1、创建工程,详情请看我的第一篇博文2、配置Sys3、查看原理图找到使用的串口所在的引脚4、配置串口工作方式5、生成工程,见上一篇链接链接:6、生成的usart初始化如图7、接下来就是配置主函数了,配置之前我要先讲解两个函数(1)发送函数(2)接收函数8、我的主函数实现的功能是轮询的进行接收,并且在接受
目录前言一、系统架构二、启动配置三、启动流程1.首先复位MCU,获取栈顶指针MSP和PC指针的内容2.根据PC的值找到复位中断处理函数Reset_Handler1.进入中断处理函数Reset_Handler2.进入SystemInit函数3._main函数3.进入main函数总结前言 通过查阅
STM32升级功能分为2部分,一部分是bootloader程序,另一部分是用户应用程序组成(以STM32F103C8为例来说明 )bootloader工程分析启动文件的复位部分; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __m
STM32F407 Bootloader Ymodem 协议实现 相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。 根据Ymodem协议,实现了一个STM32F407的Bootloader,该Bootloader能使用SecureCRT8中的Send Ymodem协议进行固
转载
2024-03-01 10:52:37
658阅读
官方固件库中的对应函数为:void SystemInit (void)
{
/* Reset the RCC clock configuration to the default reset state(for debug purpose) */
/* Set HSION bit */
RCC->CR |= (uint32_t)0x00000001;
/* Reset SW
转载
2024-09-19 07:15:07
93阅读
在最近的ctf比赛中,开始出现以stm32系列固件分析为代表的物联网安全类题目,由于这类问题涉及到嵌入式硬件、嵌入式系统等多方面的知识,未来出题、研究空间都非常广阔,这次就让我们借助题目一起来学习一下。由于考研失踪了很久,很多联系我的同学我也没能回复,希望大家原谅,之后一段时间我就正式回来啦。啥是stm32?STM32是一种功能强大的32位的单片机,它基于低功耗的ARM内核,由于它采取的
STM32从傻子到智障你今天有的时间是后来的你所梦寐以求的,加油哇!通讯协议,百度下,大同小异。USART,通用同步异步收发器 左边引脚部分:TX发送数据输出引脚RX:接收数据输入引脚SCLK发送时钟输出引脚上面寄存器部分:USART_DR包含一个发送用的TDR寄存器和一个接收用的RDR寄存器。 发送时,将TDR寄存器内容发送到移位寄存器,一位位发出。接收时把收到的每一位保存到接收移位寄存器,然后
转载
2024-07-01 06:03:52
163阅读
本章将实现的功能: ① STM32F1通过串口和上位机对话; ② STM32F1在收到上位机发过来的字符串后,原本地返回给上位机。
本章目录: 9.1 STM32串口简介 9.2 硬件设计 9.3 软件设计 9.4 下载验证
前言在单片机方面,针对于通讯常用的协议之一modbus,这里将modbus协议和硬件之间的关系完全独立出来,硬件和协议之间的联系采用的是回调的方式进行一个关联。说明1、此协议可直接移植,并不需要关心硬件相关的。 2、modbus相关协议概念自行查找,本文只做代码的实现。代码宏定义(modbus_core_define)modbus_core_define.h此头文件定义枚举和回调以及相关的功具类#
转载
2024-03-12 00:53:46
494阅读
fat文件系统的所有外部接口都在ff.h中物理驱动器、逻辑驱动器一个物理驱动器就是一个真实的存储设备,例如一个硬盘、一个内存卡。逻辑驱动器就是一个虚拟概念,一个硬盘可以分成CDEF共4个盘,每个盘就是一个逻辑驱动器。在FAT源码中有个宏 _VOLUMES,这个宏被用于配置FAT源码支持多少个逻辑驱动器。具体要配置成多少,看业务需求。FAT源码中有个全局指针数组如上*FatFs,这个指针
转载
2024-07-26 01:36:08
134阅读
基础知识这里以 KEIL 开发环境和 STM32F103RET6 为例。上电时单片机首先进入复位中断 Reset_Handler,即汇编文件的复位中断处理函数。 并且有一个中断向量表默认存在于 flash 地址开始处。 为什么说是默认呢?这是因为如果没有特殊要求的话很少会去改中断向量表。实际上这个中断向量表是可以更改的。但是在更改向量表之前必须在地址开始处建立一个向量表,因为在复位后,程序默认(硬
转载
2024-05-23 22:55:17
231阅读
了解了基础知识之后就可以使用某种传输方式进行 bin 文件的传输,这里介绍 YModem 协议进行下载程序
转载
2022-01-05 10:22:35
1519阅读
文章目录串口简介串口的数据传输奇偶校验STM32的串口特点STM32串口工作原理STM32的串口中断串口1和串口6互相通信(实验)配置外设代码编写时钟树参考资料 串口简介通用异步收发传输器Universal Asynchronous Receiver/Transmitter,UART具有TX和RX俩个信号线可以将数据串行地发送给接收方
串口的数据是按照每一位依次发送的,同时只有一条信号线用
前言硬件:单片机:stm32f072CB,sram大小16k。(其他单片机只要sram>8k即可通用)SPIFlash:W25Q128FV,16Mbyte,单次擦除最小4k。程序使用Keil编译器,C99标准。程序已经全部完成并测试通过,目前没出现明显问题。程序使用的FatFs库版本:R0.13b。下文所有内容仅保证在此版本可行。添加文件获取FatFs库(官网)将source文件夹全部复制到
转载
2024-05-10 18:59:12
436阅读
相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。 前段时间有项目关于Bootload设计。所以就仔细的去了研究了一翻。以前都是用的stm32官方的,没有去深入了解。这次做完了过后,发现官方的版本存在一些问题。比如说YModem传送过程中,完全
转载
2019-02-11 16:55:00
1642阅读
2评论