当前位置: 首页 > news >正文

STM32 IAP 需要关注的一些事

1、首先要知道STM32的程序是如何分布在FLASH中的。
2、升级的时候涉及到两个程序,一个是bootloader,一个是user程序,这两个程序的功能分别的什么作用的?
3、编译的固件是怎么分布的?通过那个配置文件去指导编译器去排布代码的放置?
在编译的时候一般有一个.ld文件去指导,代码是如何分布在固件中,包括堆栈的指定,比如STM32在工程中就有这个文件STM32F100RB_FLASH.ld,用来配置代码编译生成的固件如何分布在那个地址。
在这里插入图片描述
4、startup_stm32f100xb.s文件是什么作用的?
用于芯片启动的时候还没有跑到main函数之前的初始化作用,指定中断函数的地址。
在这里插入图片描述

5、那里下载工程
git clone https://github.com/ferenc-nemeth/stm32-bootloader.git

6、bootloader和user程序有两个中断向量表,user程序需要设备中断向量表和bootloader的不一样。
方法一可以在代码启动的时候调用库函数设置偏移:
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x5000);__ASM(“CPSIE I”); //将中断向量表偏移0x5000个字节,原始的位置为0x08000000,偏移后位置为0x080005000。
方法二 修改system_stm32f1xx.c文件中的宏定义#define VECT_TAB_OFFSET 0x00005000U

相关文章:

  • 捷配总结的SMT工厂安全防静电规则
  • CSS3实现提示工具的渐入渐出效果及CSS3动画简介
  • k8s一些名词解释
  • 240717.LeetCode——2974.最小数字游戏
  • 数据结构day2
  • 【区块链 + 智慧政务】涉税行政事业性收费“e 链通”项目 | FISCO BCOS应用案例
  • Golang | Leetcode Golang题解之第234题回文链表
  • Qt Style Sheets-样式表语法
  • vue检测页面手指滑动距离,执行回调函数,使用混入的语法,多个组件都可以使用
  • 微信小程序与本地MySQL数据库通信
  • 2024.7.17 ABAP面试题目总结
  • Hadoop-34 HBase 安装部署 单节点配置 hbase-env hbase-site 超详细图文 附带配置文件
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • 3D问界—MAYA制作铁丝栅栏(透明贴图法)
  • 用Python轻松批量生成Word合同:解放双手,喝口咖啡就搞定!☕
  • 2017 年终总结 —— 在路上
  • 2018一半小结一波
  • CentOS从零开始部署Nodejs项目
  • Consul Config 使用Git做版本控制的实现
  • HTTP中的ETag在移动客户端的应用
  • ng6--错误信息小结(持续更新)
  • Python十分钟制作属于你自己的个性logo
  • Sass 快速入门教程
  • SwizzleMethod 黑魔法
  • vue-cli在webpack的配置文件探究
  • zookeeper系列(七)实战分布式命名服务
  • 缓存与缓冲
  • 基于webpack 的 vue 多页架构
  • 简单基于spring的redis配置(单机和集群模式)
  • 聊聊redis的数据结构的应用
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 如何合理的规划jvm性能调优
  • 如何在 Tornado 中实现 Middleware
  • 推荐一个React的管理后台框架
  • 小而合理的前端理论:rscss和rsjs
  • 如何在招聘中考核.NET架构师
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #《AI中文版》V3 第 1 章 概述
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (python)数据结构---字典
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (四)js前端开发中设计模式之工厂方法模式
  • (转)项目管理杂谈-我所期望的新人
  • **PHP二维数组遍历时同时赋值
  • .env.development、.env.production、.env.staging