单片机中的BootLoader(重要的概念讲解)
文章目录
- 一、链接地址和执行地址
- 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段(代码段)
相关文章:
单片机中的BootLoader(重要的概念讲解)
文章目录 一、链接地址和执行地址1. 链接地址(Load Address)2. 执行地址(Execution Address)链接地址与执行地址的关系实际工作流程总结二、相对跳转和绝对跳转1. 相对跳转(Relative Jump)2. 绝对跳转(Absolute Jump)3. `BX` 和 `BL` 指令总结三、散列文件1. 散列文件的…...
【数据分享】中国食品工业年鉴(1984-2023) PDF
数据介绍 一、《中国食品工业年鉴》(以下简称《年鉴》)是一部全面反映上一年度全国食品工业发展情况纪年性、资料性、权威大型年刊。《年鉴(2023)》系统收录了全国食品行业各专业和 31个省(自治区、直辖市)2022年食品工业经济运行情况的综述,《年鉴》是由中国食品工…...
优选算法 - 1 ( 双指针 移动窗口 8000 字详解 )
一:双指针 1.1 移动零 题目链接:283.移动零 class Solution {public void moveZeroes(int[] nums) {for(int cur 0, dest -1 ; cur < nums.length ; cur){if(nums[cur] 0){}else{dest; // dest 先向后移动⼀位int tmp nums[cur];nums[cur] num…...
FairyGUI和Unity联动(入门篇)
一、FairyGUI编辑器中 1.新建按钮、新建组件 编辑器中界面简易设计如下 2.文件-发布设置-发布路径:自己unity项目Resources所在的路径 二、Unity 使用代码展示UI using FairyGUI; using System.Collections; using System.Collections.Generic; using UnityEngi…...
Go:文件输入输出以及json解析
文章目录 读取用户的输入文件读写读文件写文件 文件拷贝io包中接口的概念JSON 数据格式编码解码任意的数据: 读取用户的输入 从键盘和标准输入 os.Stdin 读取输入,最简单的办法是使用 fmt 包提供的 Scan… 和 Sscan… 开头的函数 看如下的程序 func t…...
编写红绿起爆线指标(附带源码下载)
编写需求: 想问问有没有能标注行情起爆点的指标。 效果展示: 红线上,出现绿柱转红柱做多。 蓝线下,出现红柱转绿柱做空。 源码展示(部分源码,完整源码需下载源码文件): IsMainIn…...
设计模式(四)装饰器模式与命令模式
一、装饰器模式 1、意图 动态增加功能,相比于继承更加灵活 2、类图 Component(VisualComponent):定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent(TextView):定义一个对象,可以给这个对象添加一…...
Android11 修改系统语言
1.定义一个view <RelativeLayoutandroid:id"id/rlChooseLanguage"style"style/SettingAboutItem"><TextViewstyle"style/SettingAboutItemTextView"android:text"string/choose_language" /><ImageView style"st…...
vue3 查看word pdf excel文件
也是在网上找的基础上修改的 可以直接使用 npm install vue-office/docx npm install vue-office/excel npm install vue-office/pdf<template><divclass"Office-Preview"v-loading"loading"element-loading-text"文件加载中...">…...
java八股-垃圾回收机制-垃圾回收算法,分代回收,垃圾回收器
文章目录 垃圾回收算法引用计数法可达性分析算法 jvm垃圾回收算法标记清除算法标记整理算法复制算法本章总结 JVM中的分代回收本章总结 JVM有哪些垃圾回收器?1.串行垃圾收集器2.并行垃圾收集器3.CMS(并发)垃圾收集器本章小结 详细聊一下G1垃圾…...
iSCSI 和FC的概述
一、技术基础与架构 iSCSI 技术基础:iSCSI是基于TCP/IP协议的存储网络协议,它实现了在IP网络上运行SCSI协议。架构:iSCSI协议栈包括SCSI层、iSCSI层、TCP/IP层等,通过标准的以太网技术实现存储数据的传输。 FC 技术基础࿱…...
一文了解Android中的AudioFlinger
AudioFlinger 是 Android 音频框架中的一个核心组件,负责管理音频流的混合和输出。它是 Android 音频系统服务的一部分,作为音频框架和硬件之间的桥梁,接收应用程序的音频请求、进行混音处理,并最终通过音频硬件输出声音。 ![在这…...
超全面!一文带你快速入门HTML,CSS和JavaScript!
作为一名后端程序员,在开发过程中避免不了和前端打交道,所以就要了解一些前端的基础知识,比如三剑客HTML,CSS,JavaScript,甚至有必要学习一下Vue、React等前端主流框架。 学习文档:https://www.w3school.com.cn/ 一…...
C语言 | Leetcode C语言题解之第557题反转字符串中的单词III
题目: 题解: char* reverseWords(char* s) {int length strlen(s);char* ret (char*)malloc(sizeof(char) * (length 1));ret[length] 0;int i 0;while (i < length) {int start i;while (i < length && s[i] ! ) {i;}for (int p …...
408笔记合集
操作系统 《王道操作系统》-BitHachi 计算机网络 《王道计算机网络》--BitHachi 组成原理 《王道计算机组成原理》--BitHachi...
智慧医疗:纹理特征VS卷积特征
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
OPC学习笔记
一. 解决使用milo读取OPC设备字符串类型时,出现中文和特殊符号乱码的情况 解决前,读取字符串:你好 2. 解决后,读取字符串:你好 3. 解决前,读取字符串:165℃ 解决后,读取字符串&am…...
数据结构的时间复杂度和空间复杂度
目录 时间复杂度 空间复杂度 时间复杂度 基本操作的执行次数,为时间复杂度。 我们使用大O的渐进表示法来表示时间复杂度。 怎么使用? 先看例子: 在这个例子中, 基本操作为变量 count 的 加加 操作,并且,执行…...
HBase理论_背景特点及数据单元及与Hive对比
本文结合了个人的笔记以及工作中实践经验以及参考HBase官网,我尽可能把自己的知识点呈现出来,如果有误,还请指正。 1. HBase背景 HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随机读写操作,HBase正是为此而出现。…...
生产模式打包
在生产模式下打包 Node.js 和前端(例如 Vue 或 React)应用时,通常需要对代码进行优化,使其在生产环境中运行更高效。以下是如何在生产模式下配置和打包项目的步骤: 1. Node.js 生产模式打包 Node.js 本身不需要像前端…...
Blender Python API实战:AI辅助3D建模自动化脚本开发
1. 为什么需要AI辅助Blender脚本开发 第一次打开Blender时,相信很多人都会被它复杂的界面吓到。密密麻麻的菜单栏、数不清的快捷键、各种专业术语...作为一个从Maya转战Blender的老3D设计师,我完全理解这种挫败感。但后来发现,Blender最强大的…...
CogVideoX-2b CSDN专用版:5分钟部署你的本地AI视频导演
CogVideoX-2b CSDN专用版:5分钟部署你的本地AI视频导演 1. 从想法到画面,只差一个启动按钮 想象一下这样的场景:你脑子里闪过一个绝妙的视频创意——也许是“一只戴着宇航员头盔的柴犬在月球表面蹦跳”,也许是“赛博朋克都市的雨…...
突破音频加密壁垒:qmc-decoder的技术创新与应用价值
突破音频加密壁垒:qmc-decoder的技术创新与应用价值 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 技术痛点分析:加密音频格式的行业困境 为什么主…...
Android与SpringBoot的轻量级数据桥梁——OkHttp3实战解析
1. OkHttp3与SpringBoot的黄金组合 第一次用OkHttp3对接SpringBoot后端时,我盯着满屏的404错误差点崩溃。后来才发现,原来是因为手机和电脑不在同一个WiFi下。这种看似低级的错误,恰恰是新手最容易踩的坑。OkHttp3作为Android端最流行的网络请…...
Keil开发中printf重定向的常见陷阱与高效配置指南
1. 为什么你的printf在Keil里"装死"? 第一次在Keil里用printf的新手,八成会遇到这样的灵异事件:明明代码逻辑没问题,烧录后串口助手却像黑洞一样安静。我当年调试STM32F103时,整整两天都在和这个"哑巴&…...
3步轻松让老旧Mac电脑升级最新macOS焕发新生
3步轻松让老旧Mac电脑升级最新macOS焕发新生 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧Mac电脑升级最新macOS不再是难题!OpenCore Legacy Patcher是一…...
开源扩展开发指南:构建个性化Notion工作空间
开源扩展开发指南:构建个性化Notion工作空间 【免费下载链接】notion-enhancer an enhancer/customiser for the all-in-one productivity workspace notion.so 项目地址: https://gitcode.com/gh_mirrors/no/notion-enhancer 在数字化工作环境日益复杂的今天…...
3D Face HRN快速上手:无需代码,Gradio界面三步完成人脸重建
3D Face HRN快速上手:无需代码,Gradio界面三步完成人脸重建 1. 从一张照片到3D人脸,只需三步点击 你是否曾想过,将一张普通的自拍照或证件照,瞬间转化为一张可用于3D建模、游戏角色或虚拟形象的“皮肤地图”…...
多模态扩展:OpenClaw结合Qwen3.5-4B-Claude处理截图信息
多模态扩展:OpenClaw结合Qwen3.5-4B-Claude处理截图信息 1. 为什么需要多模态能力 作为一个长期依赖文本交互的技术爱好者,我最初对OpenClaw的理解停留在"能通过自然语言控制电脑的AI助手"层面。直到上个月需要处理大量产品截图中的文字信息…...
PROJECT MOGFACE镜像部署详解:针对STM32开发者的AI赋能入门
PROJECT MOGFACE镜像部署详解:针对STM32开发者的AI赋能入门 很多做嵌入式开发的朋友,尤其是玩STM32的,可能都动过接触AI的念头。但一看到那些复杂的Python环境、动辄几十G的模型文件、还有各种依赖冲突,头就大了。心想࿱…...
