liteos连接器脚本隐藏的指针问题

news2024/11/16 9:20:50

一,数据拷贝引起的指针问题

大家想一下,一个指针指向的内存地址处的数据,假设拷贝到了另外一个地方,那么这个时候我们的指针还是指向原来的位置,那么就会导致问题。为什么提出这个问题呢?因为我们前面讲到了liteos的data段的拷贝,那么对于data段的访问的指针是不是也要改变呢?

前面结合小熊派stm32L431的一个例子讲解了liteos在该实例中使用到的连接器脚本,大家对于编译出来的可执行程序以及烧录的位置以及最终的内存布局应该有了解了。在讲解前奏之前我们先解释一个前面遗留下来的一个问题,data段拷贝引起的指针的问题。我们知道在c语言中指针是数据的存储起始地址,前面我们提到data’段从0x0800xxxx拷贝到0x2000xxxx的位置,那么既然数据段data已经做了拷贝,我们访问的时候访问的是拷贝后的地址,这个时候指针应该变化了!!!但是为什么似乎我们在初始化好之后,可以直接使用,而没有修改指针?可能很多人不会想到这个问题,就认为理所应当。下面我们来解释这个问题:

在这里插入图片描述
如上图的蓝色部分是我们刷机之后,liteos系统在flash中的布局,然后我们上电,text段中的代码开始跑,但是这个时候在data段拷贝之前,我们的data段在蓝色部分,还不是橙色部分。这个时候假设text段中的代码对data段可以访问,那么访问的是蓝色部分,然后很快做了data段的拷贝,这个时候进入内存。我们当然期望我们的访问在内存里面。而不是在flash里面。但是这个时候的指针怎么

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

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

相关文章

供应Pyrene-PEG-Biotin,Biotin-PEG-Pyrene,芘丁酸-聚乙二醇-生物素

一:产品描述 1、名称 英文:Pyrene-PEG-Biotin,Biotin-PEG-Pyrene 中文:芘丁酸-乙二醇-生物素 2、CAS编号:N/A 3、所属分类:Biotin PEG Pyrene PEG 4、分子量:可定制,Pyrene-PE…

知识点15--k8s应用入门

本篇我们用上一篇知识点搭建的k8s集群,认识k8s的入门级使用方法,无法完全体现出k8s的性能,注意不是高级的应用。顺便说一点k8s的操作都依靠于命令,甚至是修改配置文件也提供了编辑命令,命令很像js的选择器,…

视频截图修复方法是什么?这些方法和步骤教会你

在日常的生活中,你是否会遇到过这样的情况:每当在观看一些视频的时候,看到自己喜欢的剧情片段时,就会想要将其截取下来留作收藏,但有时候可能会出现截出来的图片画面是模糊的,这该怎么办呢?其实…

MODBUS-TCP协议

modbus-tcp顾名思义是基于TCP网络连接的MODBUS协议。 和RS485总线不同,TCP协议是通过设备的IP地址和端口来寻址。 modbus-tcp的默认端口号是502,设备端作为TCP服务器监听502端口,主机为TCP客户端主动去连接外设。与RS485一样,主机…

LVI-SAM源码解析(一):论文阅读

1. 摘要 LVI-SAM是一种基于平滑化和映射实现的激光雷达-视觉-IMU紧耦合SLAM方法,能够实现高精度、高鲁棒性地实时状态估计和地图构建。 LVI-SAM建立于包含两个子系统的因子图上:视觉-IMU子系统(VIS)和激光-IMU子系统&#xff…

CMake中target_compile_features的使用

CMake中的target_compile_features命令用向target添加预期的编译器功能(compiler features)&#xff0c;其格式如下&#xff1a; target_compile_features(<target> <PRIVATE|PUBLIC|INTERFACE> <feature> [...]) 指定在编译给定的<target>时所需的编…

SpringBoot+Vue+kkFileView实现文档管理(文档上传、下载、在线预览)

场景 SpringBootVueOpenOffice实现文档管理(文档上传、下载、在线预览)&#xff1a; SpringBootVueOpenOffice实现文档管理(文档上传、下载、在线预览)_霸道流氓气质的博客-CSDN博客_vue openoffice 上面在使用OpenOffice实现doc、excel、ppt等文档的管理和预览。 除此之外…

linux下安装nginx

linux下安装nginx 注&#xff1a;此处需要先安装vmware&#xff0c;下载Centos8等工具&#xff0c;配置好一个虚拟机。 1、下载nginx的linux版本 2、上传至搭建好的linux环境上。 3、解压nginx压缩包 4、安装nginx编译需要的相关 安装 nginx 需要先将官网下载的源码进行编译…

Spring源码深度解析十五:@Aspect方式的AOP中篇 - getAdvicesAndAdvisorsForBean

一、前言 文章目录&#xff1a;Spring源码深度解析&#xff1a;文章目录 在上篇中我们概述了Aop 实现的逻辑&#xff0c;但是由于篇幅原因&#xff0c;我们将一部分内容拆成了中篇和下篇内容。本篇即中篇&#xff0c;内容主要是讲述 在 Bean创建过程中Aop 挑选适用于当前Bean…

html简洁风格的个人博客网站模板(源码)

文章目录1.设计来源1.1 博客首界面1.2 个人简介界面1.3 日常记录界面1.4 文章列表界面1.5 文章信息界面2.结构源码2.1 目录结构2.2 源代码源码下载作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/128288153 html简洁风格…

qtday1:2、重新手动实现对象树模型

代码段加注释 #include <iostream> #include<list> using namespace std; class A { public:list<A *> child; //创建一个链表 public:A(A *parent nullptr){if(parent !nullptr) //说明有父组件{parent->child.push_back(this); //有父组件就将该…

数商云SRM供应商系统询比价采购业务流程介绍,重塑汽修企业核心竞争力

众所周知&#xff0c;采购供应是关系企业经营效益的重要工作。在汽修行业&#xff0c;由于汽车配件的车型规格繁多&#xff0c;技术业务性强&#xff0c;各种类商品采购过程的艰难性、销售状况的复杂性等等&#xff0c;汽配采购往往容易陷入种种困境&#xff0c;极大降低汽修企…

Qt-Web混合开发-QWebEngineView加载网页最小示例(1)

Qt-Web混合开发-QWebEngineView加载网页最小示例&#x1f4a5; 文章目录Qt-Web混合开发-QWebEngineView加载网页最小示例&#x1f4a5;1、概述&#x1f4af;2、实现效果&#x1f4a6;3、实现功能&#x1f4ac;4、关键代码&#x1f4a4;5、源代码&#x1f648;更多精彩内容&…

【20天快速掌握Python】day01-Python入门

1、什么是Python&#xff1f; Python是一门解释型的编程语言&#xff0c;而且是现在世界上最流行的编程语言之一。 2、Python优缺点 优点 简单&#xff1a;Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样&#xff0c;尽管这个英语的要…

driftingblues靶机(0ok编码)

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;oylc 虚拟机网络链接模式&#xff1a;桥接模式 攻击机系统&#xff1a;kali linux 2021.1 信息收集 1.探测目标靶机ip arp-scan -l 2.探测目标靶机开放端口和服务情况 nmap -A -sV -p- 192.168.…

SpringCloud之微服务环境搭建

目录 1、微服务介绍 1.1.微服务架构介绍 1.2.微服务架构的常见问题 1.3.微服务架构的常见解决方案 1.3.1.ServiceComb ​ 1.3.2.SpringCloud 1.3.3.SpringCloud Alibaba 2、微服务环境搭建 2.1案例准备 技术选项&#xff1a; 模块设计&#xff1a; …

pyqt5打包后的exe文件在网吧windoes7系统运行报错问题

方案一 用录屏软件录个视频&#xff0c;然后用播放软件打开逐帧查看&#xff0c;找到报错原因&#xff0c;一般是某个包导入错误&#xff0c;重新安装下对应的包。(忒麻烦) 方案二 生成的exe文件你们执行的话&#xff0c;cmd黑框肯定会一闪而过&#xff0c;但是没有关系&…

[附源码]Nodejs计算机毕业设计基于Java的在线点餐系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

使用 VADER 对股票新闻进行情绪分析

什么是情感分析&#xff1f; 提示&#xff1a;情感分析 定义&#xff1a; 情感分析或意见挖掘是自然语言处理 (NLP)的一个子领域&#xff0c;它试图在给定文本中识别和提取意见。情感分析的目的是根据文本中主观性的计算处理来衡量说话者/作者的态度、情绪、评价、态度和情绪…

WIN10 共享文件夹并取消密码访问

目录 一、前言 二、共享文件过程 1、选择需要共享的文件夹右键-授予访问权限-特定用户 2、选择共享用户Everyone并点击添加 3、再点击右下角共享&#xff0c;一个共享目录就生成了 4、但是别人访问还需要提供密码&#xff0c;非常不方便&#xff0c;此时需要关闭密码 一、…