STM32之HAL库的Bootloader跳转到APP
前言:需要用到OTA固件升级,必须借助Bootloader搬运新固件到旧固件的Flash区,从而完成程序升级
- 制作Bootloader程序
- 使用cubeMX工具,新建Bootloader工程,其中需要打开时钟,打开UART1进行调试信息输出
1.1、打开RCC
1.2、打开看门狗
1.3、打开jlink调试口
1.4、 打开USART1输出调试信息
1.4、设置输出工程文件名,最后点击【GENERATE CODE】
- keil配置
- 配置代码区域
- 配置输出hex和bin文件
- 配置代码区域
- 编写代码
- 跳转到APP代码,跳转前一定要关总中断__disable_irq();
__asm void MSR_MSP (uint32_t ulAddr) {MSR MSP, r0 //set Main Stack value BX r14 }typedef void (*Jump_Fun)(void); void IAP_ExecuteApp(uint32_t App_Addr) {Jump_Fun JumpToApp;if (((*(__IO uint32_t *)App_Addr) & 0x2FFE0000) == 0x20000000) {JumpToApp = (Jump_Fun) * (__IO uint32_t *)(App_Addr + 4);MSR_MSP( * (__IO uint32_t *) App_Addr);JumpToApp();}else{printf("There is None APP to jump,ERROR!!!\r\n");} }int main() {__disable_irq(); //很重要,跳转之前必须关总中断,否则APP中重新设置中断向量表会出错printf("> Start Running APP1 ......\r\n\r\n"); IAP_ExecuteApp(OTA_FLASH_APP1_ADDR); }
- 使用cubeMX工具,新建Bootloader工程,其中需要打开时钟,打开UART1进行调试信息输出
- 制作APP程序
- 使用cubeMX生成工程,可参考Bootloader生成过程,此处不再重复
- 代码中修改APP中断向量表,APP程序从0x3000开始
- keil配置
- 配置代码区域
- 配置代码区域
如果对您有帮助,麻烦动一下您发财的小手,帮忙点个赞,谢谢!!!
STM32之HAL库的Bootloader跳转到APP相关推荐
- 正点原子STM32(基于HAL库)0
目录 开发环境搭建与使用 常用开发工具简介 MDK 安装 仿真器驱动安装 CH340 USB 虚拟串口驱动安装 使用MDK5 编译例程 使用串口下载程序 使用DAP 下载与调试程序 使用DAP 下载程 ...
- 【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(二)
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 上一讲我们说了CubeMX配置SDRAM的一些基本配置,还有FMC跟SDRAM的讲解,这一讲我们 ...
- 【STM32】HAL库 STM32CubeMX教程十四---SPI
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在我们的HAL库中,对硬件SPI函数做了很好的集成,使得之前SPI几百行代码,在HAL库中,只需 ...
- STM32的HAL库及其使用
随着时代的逐步发展,联网.USB.文件系统.加密算法.RTOS.GUI等第三方组件变得越来越重要,简陋的标准库已经很难满足当代单片机开发需求了. 事实上,单片机开发在走PC.手机等以CPU为核心的产品 ...
- STM32的HAL库分析及使用
STM32的三种开发方式 通常新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程的架构是完全不一样的.一般大多数都会选用标准库和HAL库,而极少部分人会通过直接配 ...
- STM32之HAL库详解 及 手动移植
转载出处:http://blog.csdn.net/zcshoucsdn/article/details/55213616 HAL库结构 说到STM32的HAL库,就不得不提STM32CubeMX ...
- STM32系列(HAL库)——F103C8T6通过MFRC522、RFID射频卡、门禁卡模块读取卡片ID(二)
本文继上一篇:STM32系列(HAL库)--F103C8T6通过MFRC522.RFID射频卡.门禁卡模块读取卡片ID 本文介绍在运用RC522模块时,运用链表结构存储数据的操作 Let's go! ...
- 【STM32】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用. 但是 ...
- 【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(一)
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 本文 1首先讲解什么是FMC及SDRAM,W9825G6KH芯片原理,2基于CubeMx创建工程 ...
最新文章
- 用GAN来做图像生成,这是最好的方法
- 1%学者拥有21%引用量,全球学术圈两极分化扩大
- 微软2011 Build大会:Windows 8盛大出场(转)
- Unable to lock JVM Memory: error=12--elasticsearch
- html php滚动代码,html中滚动条的代码是什么?如何设置html滚动条?
- 逐行对比两个文件内容的好用软件
- drupal ajax 分页,在drupal中使用Ajax时要保持一个404
- SentinelResource注解配置上_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0045
- C++设计模式--观察员
- 全球闪存供应紧张 新iPhone涨价只是开始
- Android 经常使用设计模式(一)
- 汉字转换为拼音 第一篇
- Linux PCI和PCIe总线
- 理一理Maven的phase, goal, surefire, failsafe
- Python中的六种基本数据类型
- ZYNQ PS使用中遇到问题
- 微信8.0.3:做重了群公告,再也不能@所有人了!
- 苏州银行信息技术面试
- 问答间了解ISO27701隐私信息管理体系
- 普通话测试app怎么样可以不交钱_普通话水平测试攻略(西安)