项目需要编写了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相关推荐

  1. stm32 中bootloader、startup_stm32f10x_md.s的作用

     stm32 中bootloader.startup_stm32f10x_md.s的作用 转载 2016-09-12 10:47:39 一.启动文件的作用是: 1.  初始化堆栈指针 SP; 2. ...

  2. 嵌入式IAP开发笔记之一:面向STM32的BootLoader程序

    对于很多人来说,BootLoader并不是一个陌生的词,甚至会经常用到它.因为在很多情况下我们都需要BootLoader程序,比如我们需要对系统在线升级时就需要它,还有当我们需要在外部存储器中运行程序 ...

  3. STM32的BootLoader 从SD卡更新固件

    目  录 1. 前言 2. 初识BootLoader 2.1      百度百科的BootLoader 2.2      BootLoader的简单理解 2.3      BootLoader的作用 ...

  4. STM32构建BootLoader实现多系统OTA

    STM32构建BootLoader实现多系统OTA 目录 STM32构建BootLoader实现多系统OTA 引言 一.基本概念 二.基础参考 三.认识STM32内置存储器扇区分布 四.构建BootL ...

  5. 【STM32】BootLoader介绍、编写 以及 OTA常见方案分析(差分升级 全量升级 AB面升级)

    参考博客:STM32 BootLoader升级固件_cyang's blog-CSDN博客 STM32固件升级详解(BootLoader)_EmbeddedOsprey-CSDN博客_stm32升级b ...

  6. RT_thread STM32通用Bootloader 做OTA升级

    项目上需要做设备的远程升级更新程序,从而避免每次更新程序时都需要去现场烧录的麻烦.从而学习探索了RT提供的OTA功能. RT-Thread 开发团队提供了通用的 Bootloader.开发者通过该 B ...

  7. stm32带BootLoader情况下,需要重新映射中断向量表

    应用程序起来第一件事,映射中断向量表.因为M0中断向量表在0x0,所以起来的时候把程序首地址0x8004000映射到ram0x200000000,然后配置一下__HAL_SYSCFG_REMAPMEM ...

  8. STM32通用Bootloader——FOTA

    1.固件升级简述 固件升级,通常称为 OTA(Over the Air)升级或者 FOTA(Firmware Over-The-Air)升级,即固件通过空中下载进行升级的技术. 1.1 bootloa ...

  9. 第二章 C#+STM32实现设备远程管理与IAP—STM32的BootLoader

    整体思路 STM32复位先读取flash的固定区域,该区域存有升级相关信息,包含固件长度.下载地址.升级类型等,根据升级类型,开始升级.由于本次只用到http下载,所以升级类型是固定的.通过http下 ...

最新文章

  1. 谷歌对Deepfake亮剑:打造鉴假新工具,帮助媒体识别AI造假
  2. 重新理解@Resource注解
  3. Android 实现静默安装
  4. 使用gdb进行调试入门篇
  5. 诡异的json包含bom头
  6. 中国成为「研究生大国」,99%研究生背后的焦虑:就业更难了!
  7. ASP.Net Mvc 发布网站 (样式+图片问题)
  8. MarkDown编辑器中数学公式与符号-LaTeX 各种数学命令,符号
  9. 免费的科研论文画图软件drawio以及Mermaid
  10. 贝塞尔曲线(Bezier Curve)
  11. C# 生成多张excel 并打包
  12. Unity3d之Quaternion 学习与应用
  13. Linux系统或服务器运行Fastqc
  14. VS下报LNK1104的一种解决方法
  15. 万字长文:五年数据洞察中国餐饮大趋势
  16. FAQ(88): The HTTP response from the server [404] did not permit the HTTP upgrade to WebSocket?
  17. InfoPath 系列:表单的发布与共享
  18. java环境搭建及概述
  19. xp输入法不见了的解决方法
  20. linux禁止普通用户切换,扣丁学堂Linux培训简述Linux禁止普通用户切换至root用户的实例...

热门文章

  1. 1101. 献给阿尔吉侬的花束 (bfs
  2. 由梅西控球助攻联想到的......
  3. mqtt报文逐条解析
  4. 袁萌发表最早的一篇博文
  5. 网页颜色对照表 - 4ngel's blog -京华志
  6. 仿魅族应用商店下载进度控件
  7. 一些JavaScript特性
  8. 家用医疗仪器行业发展前景分析
  9. 支持swift3.0的开源库
  10. 山东大学网安学院2022-2023学年【算法分析与设计】期末考试