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

《RISC-V体系结构编程与实践》的benos_payload程序——mysbi跳转到benos分析

1、benos_payload.bin结构分析

在这里插入图片描述

韦东山老师提供的开发文档里已经对程序的结构做了分析,这里不再赘述,下面是讨论mysbi跳转到benos的问题;

2、mysbi跳转到benos的代码

在这里插入图片描述

3、跳转产生的疑问

在这里插入图片描述

我认为mysbi.bin最后跳转到0x22000地址处执行,此时benos.bin代码不在0x22000地址处,需要代码重定位,但是在mysbi.bin的源文件中并没有进行代码重定位;

4、实际的程序加载内存布局

在这里插入图片描述

(1)产生疑问的原因:错误的认为benos_payload.bin是紧凑排布的,实际上根据链接脚本,在生成bin文件时已经考虑了偏移量,中间部分被用0填充,可以使用二进制查看软件分析benos_payload.bin,能看到文件0x2000偏移处正好是benos.bin;
(2)结论:将benos_payload.bin加载在IRAM中后,0x22000地址处已经是benos.bin,所以不需要代码重定位;

http://www.lryc.cn/news/191563.html

相关文章:

  • ad5665r STM32 GD32 IIC驱动设计
  • TensorFlow入门(十六、识别模糊手写图片)
  • CSwin Transformer 学习笔记
  • Linux上通过mysqldump命令实现自动备份
  • v-model与.sync的区别
  • Linux---进程(1)
  • C# U2Net Portrait 跨界肖像画
  • 华为云云耀云服务器L实例评测|华为云耀云服务器L实例评测包管理工具安装软件(六)
  • 在PYTHON中用zlib模块对文本进行压缩,写入图片的EXIF中,后在C#中读取EXIF并用SharpZipLib进行解压获取压缩前文本
  • centos / oracle Linux 常用运维命令讲解
  • EMNLP 2023 录用论文公布,速看NLP各领域最新SOTA方案
  • 互联网Java工程师面试题·Java 并发编程篇·第三弹
  • mac jdk的环境变量路径,到底在哪里?
  • PyQt5 PyQt6 Designer 的安装
  • 数据库:Hive转Presto(四)
  • 16基于otsuf方法的图像分割,程序已调通,可更换自己的图片进行分割,程序具有详细的代码注释,可轻松掌握。基于MATLAB平台,需要直接拍下。
  • 2、使用阿里云镜像加速器提升Docker的资源下载速度
  • 贴片电容材质的区别与电容的主要作用
  • flink1.15 savepoint 超时报错 java.util.concurrent.TimeoutException
  • 并发编程——1.java内存图及相关内容
  • Android studio安装详细教程
  • Jetson Orin NX 开发指南(7): EGO-Swarm 的编译与运行
  • nginx的重定向
  • 理解Go中的数组(Array)和切片(Slice)
  • 计算机毕业设计选什么题目好?springboot 高校学生综合测评管理系统
  • 在liunx下读取串口的数据
  • Python中使用IDLE调试程序
  • 发个地区和对应的价格方案
  • 启动Java应用的黑魔法:初始化性能解密@PostConstrut,InitialzingBean,init-method,BeanPostProcessor
  • STM32-C语言结构体地址