单片机中的BootLoader(重要的概念讲解)

news/2024/11/15 19:04:07/

文章目录

  • 一、链接地址和执行地址
      • 1. 链接地址(Load Address)
      • 2. 执行地址(Execution Address)
      • 链接地址与执行地址的关系
      • 实际工作流程
      • 总结
  • 二、相对跳转和绝对跳转
      • 1. 相对跳转(Relative Jump)
      • 2. 绝对跳转(Absolute Jump)
      • 3. `BX` 和 `BL` 指令
      • 总结
  • 三、散列文件
      • 1. 散列文件的作用
      • 2. 散列文件的基本结构
        • 示例散列文件
      • 3. 关键字说明
      • 4. 散列文件的例子详解
        • 解释:
      • 5. 使用散列文件的优点
      • 总结


一、链接地址和执行地址

链接地址执行地址是嵌入式系统和操作系统中的两个重要概念,它们定义了程序代码和数据在内存中的布局与使用方式。理解它们有助于配置嵌入式应用,尤其是在资源受限的设备上更为关键。

1. 链接地址(Load Address)

链接地址(有时称为加载地址或加载时地址)是编译器在链接阶段确定的内存地址,用来告诉程序和硬件在加载时将各个程序段放置到哪里。在嵌入式系统中,链接地址通常指定在 Flash 存储区,因为代码通常被存储在 Flash 中,以便设备启动后能直接从该地址读取。

  • 功能:链接地址决定程序的加载位置,即代码和数据存储的位置。
  • 使用场景:大部分情况下,链接地址指向非易失性存储(如 Flash),这样代码在设备掉电或重启后不会丢失。
  • 例子:在 Cortex-M 微控制器上,Flash 地址一般从 0x08000000 开始,常作为链接地址。这意味着 .text 段(代码段)

http://www.ppmy.cn/news/1547257.html

相关文章

C++实现用户分组--学习

第一步实现:ETL的设计分三部分:数据抽取(Data Extraction)、数据的清洗转换(Data Transformation)、数据的加载(Data Loading). 构建一个数据容器类,其中包含转换后的MNIST手写数据。还实现了一个数据处理程序,该数据处理程序将提…

HCIP快速生成树 RSTP

STP(Spanning Tree Protocol,生成树协议)和RSTP(Rapid Spanning Tree Protocol,快速生成树协议)都是用于在局域网中消除环路的网络协议。 STP(生成树协议) 基本概念: ST…

python 怎么在模块和文件夹名称不一致的情况下,安装自己的模块

问题 项目的目录如下 root src model resnet.py README.gitignore.gitpyproject.toml 其中 src 是项目实现的模块 假如这个模块的名称叫 my_module 我们想实现 from my_module.model.resnet import Resnet 但是 my_module 源码所在的文件夹名称是 src, 不是 my_module&…

Oracle Instant Client 23.5安装配置完整教程

Oracle Instant Client 23.5安装配置完整教程 简介环境要求安装步骤1. 准备工作目录2. 下载Oracle Instant Client3. 解压Instant Client4. 安装依赖包5. 配置系统环境5.1 配置库文件路径5.2 配置环境变量 6. 配置Oracle钱包(可选) 验证安装常见问题解决…

javaCV流媒体处理demo

JavaCV 的实现原理 JavaCV 是一个基于 FFmpeg、OpenCV 和其他计算机视觉和多媒体处理库的 Java 封装库,提供了丰富的 API 以供 Java 程序调用这些底层库的功能。JavaCV 的实现原理主要体现在以下几个方面: JNI 封装:JavaCV 通过 Java Nativ…

Java 基础知识

一.泛型编程 1. 泛型的概念和作用是什么? 概念:泛型(Generics)是在 JDK 5.0 引入的新特性,允许在定义类、接口和方法时使用类型参数。类型参数在使用时被具体的类型替换。作用: 类型安全性:避…

华为机试HJ41 称砝码

首先看一下题 描述 现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ; 每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。 注: 称重重量包括 0 数据范围&a…

【AlphaFold3】开源本地的安装及使用

文章目录 安装安装DockerInstalling Docker on Host启用Rootless Docker 安装 GPU 支持安装 NVIDIA 驱动程序安装 NVIDIA 对 Docker 的支持 获取 AlphaFold 3 源代码获取基因数据库获取模型参数构建将运行 AlphaFold 3 的 Docker 容器 参考 AlphaFold3: https://github.com/goo…