STM32之bootloader
项目需要编写了STM32的bootloader,其实编写bootloader主要事项有以下:
1、为你的bootloader程序选择存储器地址,因为STM32的存储器FLASH存储程序代码空间为512K,需要进行划分。
2、如果需要使用JTAG在线调试,则需要配置区域:
3、为您的用户程序选择合适的存储空间:
同时配置在线调试区域:
4、bootloader程序编写基本流程如下:
1)检测有无需要更新的标志,用户可自定义。比如说读取flash某位置存储的字节作为标志位。
2)如需更新,则调用STM32的FLASH程序擦鞋用户代码部分。
3)将新的bin文件(即2进制文件直接烧写进去,需要将keil生成的hex文件转换为bin文件,然后存储到外扩展的flash中)写入到STM32自带的FLASH中去,记住需要与上述设置的用户代码存储区一致。
4)更新成功后再跳转至用户程序。
5、用户程序需要注意一点,需要在程序运行前重新设置中断向量表,即:NVIC_SetVectorTable()。
6、用STM32自带的烧录软件进行烧录时,需要修改项目如下:
1)打开安装后目标文件中的map文件夹,我们所用的STM32为512Kflash,所以选取STM32_High-density_512K.STmap,将其分解为两个STmap文件(此文件可用记事本 打开)
STmap文件中,扇区是以每2K为一page来显示的,所以boot区我们只需要到page7,用户区我们需要page8到最后。
修改完成后再次打开此软件会发现多出了两个flash选项,可以根据此处来选择需要存储的代码区。
然后还有一处需要修改:
STM32之bootloader相关推荐
- stm32 中bootloader、startup_stm32f10x_md.s的作用
stm32 中bootloader.startup_stm32f10x_md.s的作用 转载 2016-09-12 10:47:39 一.启动文件的作用是: 1. 初始化堆栈指针 SP; 2. ...
- 嵌入式IAP开发笔记之一:面向STM32的BootLoader程序
对于很多人来说,BootLoader并不是一个陌生的词,甚至会经常用到它.因为在很多情况下我们都需要BootLoader程序,比如我们需要对系统在线升级时就需要它,还有当我们需要在外部存储器中运行程序 ...
- STM32的BootLoader 从SD卡更新固件
目 录 1. 前言 2. 初识BootLoader 2.1 百度百科的BootLoader 2.2 BootLoader的简单理解 2.3 BootLoader的作用 ...
- STM32构建BootLoader实现多系统OTA
STM32构建BootLoader实现多系统OTA 目录 STM32构建BootLoader实现多系统OTA 引言 一.基本概念 二.基础参考 三.认识STM32内置存储器扇区分布 四.构建BootL ...
- 【STM32】BootLoader介绍、编写 以及 OTA常见方案分析(差分升级 全量升级 AB面升级)
参考博客:STM32 BootLoader升级固件_cyang's blog-CSDN博客 STM32固件升级详解(BootLoader)_EmbeddedOsprey-CSDN博客_stm32升级b ...
- RT_thread STM32通用Bootloader 做OTA升级
项目上需要做设备的远程升级更新程序,从而避免每次更新程序时都需要去现场烧录的麻烦.从而学习探索了RT提供的OTA功能. RT-Thread 开发团队提供了通用的 Bootloader.开发者通过该 B ...
- stm32带BootLoader情况下,需要重新映射中断向量表
应用程序起来第一件事,映射中断向量表.因为M0中断向量表在0x0,所以起来的时候把程序首地址0x8004000映射到ram0x200000000,然后配置一下__HAL_SYSCFG_REMAPMEM ...
- STM32通用Bootloader——FOTA
1.固件升级简述 固件升级,通常称为 OTA(Over the Air)升级或者 FOTA(Firmware Over-The-Air)升级,即固件通过空中下载进行升级的技术. 1.1 bootloa ...
- 第二章 C#+STM32实现设备远程管理与IAP—STM32的BootLoader
整体思路 STM32复位先读取flash的固定区域,该区域存有升级相关信息,包含固件长度.下载地址.升级类型等,根据升级类型,开始升级.由于本次只用到http下载,所以升级类型是固定的.通过http下 ...
最新文章
- 谷歌对Deepfake亮剑:打造鉴假新工具,帮助媒体识别AI造假
- 重新理解@Resource注解
- Android 实现静默安装
- 使用gdb进行调试入门篇
- 诡异的json包含bom头
- 中国成为「研究生大国」,99%研究生背后的焦虑:就业更难了!
- ASP.Net Mvc 发布网站 (样式+图片问题)
- MarkDown编辑器中数学公式与符号-LaTeX 各种数学命令,符号
- 免费的科研论文画图软件drawio以及Mermaid
- 贝塞尔曲线(Bezier Curve)
- C# 生成多张excel 并打包
- Unity3d之Quaternion 学习与应用
- Linux系统或服务器运行Fastqc
- VS下报LNK1104的一种解决方法
- 万字长文:五年数据洞察中国餐饮大趋势
- FAQ(88): The HTTP response from the server [404] did not permit the HTTP upgrade to WebSocket?
- InfoPath 系列:表单的发布与共享
- java环境搭建及概述
- xp输入法不见了的解决方法
- linux禁止普通用户切换,扣丁学堂Linux培训简述Linux禁止普通用户切换至root用户的实例...