关于MCU的BootLoader的一些理解

news2024/11/27 10:26:29

一、关于STM32单片机IAP升级中if(((*(__IO uint32_t*)Addr_App) & 0x2FFE0000) == 0x20000000)语句的理解

参考自:https://blog.csdn.net/weixin_45394120/article/details/122732203?spm=1001.2014.3001.5502

疑问:

1、为什么要用Addr_App里的数据跟0x2FFE0000相与呢?

因为Addr_App指向的数据是RAM地址,而0x20000000是RAM的首地址,假如你的STM32单片机RAM有128K,那RAM的末地址就是0x2001FFFF。所以与0x2FFE0000相与就是确保Addr_App指向的数据在0x20000000~0x2001FFFF之间;假如你的STM32单片机RAM有64K,那RAM的末地址就是0x2000FFFF。则只要与0x2FFF0000相与确保Addr_App指向的数据在0x20000000~0x2000FFFF之间;

2、为什么Addr_App里存的是RAM地址呢?

MSP的初始值是程序占用RAM的大小,按地址理解就是MSP的初始值是程序在RAM中的末地址+1。

小结:

程序存储在flash的首地址指向的是MSP的初始值,而这个初始值是程序占用RAM的大小,也是程序在RAM中的末地址+1。

二、关于中断向量表的重新映射

参考来自:(90条消息) stm32带BootLoader情况下,需要重新映射中断向量表_Surpas-HC的博客-CSDN博客_stm32重映射中断向量表

从ARM官网上的信息得知(Documentation – Arm Developer ),在Coretext-M3与Coretext-M4核中,在System Control Block中存在一个向量表偏移量寄存器 VTOR(0xE000ED08),系统产生中断后,内核通过这个寄存器的值来找到中断向量表的地址,进而执行中断例程代码,当然,此寄存器的值是可以修改的,它的默认值为0。实际上在大部分的M3和M4的工程中,一般都是在SystemInit函数中对此寄存器的值进行设置,当此之前,它的值为默认值0,由于映射关系,实际上就是指向映射地址,比如0x0800 0000. 如下图所示: 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web操作系统漏洞发现——工具使用总结

目录 (一)web层面 1、信息收集 0x01 网站源码自己开发 0x02 网站源码使用开源CMS 2、可维护Poc 0x01 pocassist 0x02 afrog 3、APP渗透 0x01 在BP上添加转发端口 0x02 Xray进行监听 0x03 触发数据 4、Goby (二)操作系统层…

xss.haozi靶场通关

做完xss-labs靶场后,再继续做这个靶场,感觉这个不是很难,毕竟在第一个靶场也获取了一些经验,但是这个靶场偏向技巧,所以还是以了解为主。 0x00: 分析:对我们的代码未作出限制,因此这里可以使用…

如何用 nodejs 进行 sha1 加密验证,微信公众号开发验证

如何用 nodejs 进行 sha1 加密验证,微信公众号开发验证 一、问题 今天在摆弄微信公众号的时候,遇到这样一个问题: 我的后台是 nodejs 写的,express 框架,官方开发接入的验证代码是 php 写的,其中有一个部…

C语言之蓝桥杯习题(3)☞暴力求解版(思路写在解题过程中)

第一题.1.问题:小蓝数字卡片题小蓝有很多数字卡片,每张卡片上都是数字0到9。 小蓝准备用这些卡片来拼一些数,他想从1开始拼现在小蓝手里有0到9的卡片各2021张,共20210张,请问小蓝可以从1拼到多少?2.解题过程&#xff…

【Docker】(三)使用registry远程镜像仓库管理镜像

1.前言 本系列文章记录了从0开始学习Docker的过程,Docker系列历史文章: (一)基本概念与安装使用 (二)如何使用Docker发布一个SpringBoot服务 在上一篇中留下了一个问题,使用Docker发布服务的方…

【开源代码 | MATLAB线性阵列仿真】

本文编辑:调皮哥的小助理 1、16阵元均匀线阵方向图 %8阵元均匀线阵方向图,来波方向为0度 clc; clear all; close all; element_num16;%阵元数为16 d_lamda1/2;%阵元间距d与波长lamda的关系 thetalinspace(-pi/2,pi/2,200); theta0[0.2 0.1];%来波方向 w…

systemd wsl 测试笔记

文章目录systemd 简介WSL systemdsystemctljournalctlhello serviceSleep 与 Timeout 测试Requires 测试After 测试systemd 简介 Linux 从关闭到运行, 完整的启动和启动过程有三个主要部分: 硬件启动(Hardware boot): 初始化系统硬件Linux 引导(Linux boot): 加载 Linux 内核&…

基于ERNIELayoutPDFplumber-UIEX的多方案学术论文信息抽取

本项目链接:https://aistudio.baidu.com/aistudio/projectdetail/5196032?contributionType1 0.问题描述 可以参考issue: ERNIE-Layout在(人名和邮箱)信息抽取的诸多问题阐述#4031 ERNIE-Layout因为看到功能比较强大就尝试了一…

Linux安装mongodb集群整合SpringBoot

一、Mongodb集群安装 本文介绍基于mongodb的副本机制搭建集群 192.168.139.186CentOS Linux release 7.7.1908 (Core)192.168.139.187CentOS Linux release 7.7.1908 (Core)192.168.139.188CentOS Linux release 7.7.1908 (Core) 准备工作 关闭selinux,关闭防火墙…

近场通信到2027年将达到467.81亿美元

2020年,全球近场通信市场规模为178.75亿美元,预计到2027年将达到467.81亿美元,2021年至2027年的CAGR为14.8%。这是根据Market Statsville Group (MSG)的一份新报告得出的。 近场通信(NFC)是基于无线接口的一系列协议,使得通信设备…

Linux系统的优缺点

相比 Windows 系统,Linux 系统有更好的稳定性,那么除此之外,Linux 系统还有那些优点(或者不足)呢?一、大量的可用软件及免费软件Linux 系统上有着大量的可用软件,且绝大多数是免费的&#xff0c…

2021年第十二届蓝桥杯软件类省赛python组“回路计算“问题

说明 这一题我不会做,看了官方给出的标准答案之后才明白,我把我学到的思路写下来。 题目 蓝桥学院由21栋教学楼组成,教学楼编号1到21。对于两栋教学楼a和b,当a和b互质时,a和b之间有一条走廊直接相连,两个方向皆可通…

CRM之线索管理的demo搭建方法

1、简介 1.1、案例简介 本文将介绍,如何搭建CRM-线索管理。 1.2、应用场景 CRM-线索管理应用完整记录所有线索资料,合理的对线索进行领取、分配、退回、跟进,实现线索管理智能化。 2、设置方法 2.1、表单搭建 1)新建主表【新…

【日常系列】LeetCode《25·贪心2》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 lc 976 &#xff1a;三角形的最大周长 https://leetcode.cn/problems/largest-perimeter-triangle/ 提示&#xff1a; 3 < nums.length < 10^4 1 &l…

Dubbo优雅启动(附源码分析)

Dubbo优雅启动 1. 启动有什么问题 我们知道&#xff0c;应用在运行了一段时间后&#xff0c;执行速度会比刚启动的时候要快。这是因为在 Java 里面&#xff0c;在运行过程中&#xff0c;JVM 虚拟机会把高频的代码编译成机器码&#xff0c;被加载过的类也会被缓存到 JVM 缓存中…

主数据和元数据、数据标准、数据质量有什么关系

企业数据治理涉及的工作很广&#xff0c;包括数据标准、数据质量、数据安全、数据共享机制、元数据管理、主数据管理等。主数据作为企业的黄金数据&#xff0c;对于企业信息化管理具有重要意义。本文将对主数据的概念及主数据与数据治理体系中的几个核心部分的关系和大家做一个…

oracle 查询到的结果在快捷地写入到excel过程中标题部分正确的处理方式

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤羌笛何须怨杨柳&#xff0c;春风不度玉门关。大家好&#xff0c;我是皮皮。一、前言前几天在Python最强王者交流群【粉丝】问了一个pandas数据处理的问题&…

一篇文章让你掌握HTML(上)

目录 前言 1. 基础认知 1.1 HTML概念 1.2 Web标准 2. HTML骨架结构 3. 开发工具的基本使用 4. 语法规范 4.1 HTML的注释 4.2 HTML标签的结构 4.3 HTML标签的关系 5. 排版标签 5.1 标题标签 5.2 段落标签 5.3 换行标签 5.4 水平线标签 6. 文本格式化标签…

清华教授极力推荐的三本入门学习Python书籍

目录 Python入门书&#xff08;适合初学者&#xff09; Python进阶书&#xff08;适合有基础的&#xff09; Python数据科学&#xff08;适合初学者&#xff09; Python入门书&#xff08;适合初学者&#xff09; 这应该是世界上最畅销的Python编程书&#xff0c;没有之一。…

实战|记一次2022某地HVV中的木马逆向分析

声明&#xff1a;本文仅限于技术讨论与分享&#xff0c;严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负&#xff0c;与本号及原作者无关。前言事情是这样的&#xff0c;国庆前期某地HVV&#xff0c;所以接到了客户通知他们收到了钓鱼邮件想要溯源直接下载文件逆…