uboot解决重定位后链接地址和运行地址不一致的方法

简介: uboot解决重定位后链接地址和运行地址不一致的方法
//示例代码 arch/arm/config.mk文件代码段
 needed for relocation
//设置 uboot 链接选项,加入了“-pie”选项,编译链接 uboot 的时候就会使用到“-pie”
 LDFLAGS_u-boot += -pie

uboot 对于重定位后链接地址和运行地址不一致的解决方法就是采用位置无关码

使用“-pie”选项以后会生成一个.rel.dyn 段,

uboot 就是靠这个.rel.dyn 来解决重定位问题的,在 u-bot.dis 的.rel.dyn 段中有如下所示内容

//示例代码 .rel.dyn 段代码段
Disassembly of section .rel.dyn: 
8785da44 <__rel_dyn_end-0x8ba0>:
8785da44: 87800020 strhi r0, [r0, r0, lsr #32]
8785da48: 00000017 andeq r0, r0, r7, lsl r0
......
8785dfb4: 87804198 ; <UNDEFINED> instruction: 0x87804198
8785dfb8: 00000017 andeq r0, r0, r7, lsl r0

先来看一下.rel.dyn 段的格式,类似第 7 行和第 8 行这样的是一组,也就是两个 4 字节数据为一组。

高 4 字节是 Label 地址标识 0X17,低 4 字节就是 Label 的地址,首先判断 Label 地址标识是否正确,也就是判断高 4 字节是否为 0X17,如果是的话高 4 字节就是 Label 值。

第 7 行值为 0X87804198,第 8 行为 0X00000017,说明第 7 行的 0X87804198 是个 Label,

这个正是示例代码  中存放变量 rel_a 地址的那个 Label。

目录
相关文章
|
算法 搜索推荐 Android开发
android的A/B到底是什么?OTA升级又是什么?
android的A/B到底是什么?OTA升级又是什么?
1796 0
|
Ubuntu Linux 虚拟化
Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)
Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)
1417 0
Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)
|
Ubuntu 安全 Unix
Linux和Ubuntu有什么区别
综上所述,Linux和Ubuntu之间存在明显的区别。Linux是一种操作系统内核,而Ubuntu是基于Linux内核的发行版本,具有更好的易用性、社区支持和软件仓库。用户可以根据自己的需求选择不同的Linux发行版本,如果需要一个稳定、易于使用的桌面环境,Ubuntu是一个不错的选择。如果需要更加灵活和定制性强的系统,其他Linux发行版本可能更加适合。
|
XML 存储 编解码
浅浅地优化下视频流播放体验
浅浅地优化下视频流播放体验
1676 0
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
777 9
|
存储 缓存 Linux
Ramfs、rootfs和initramfs【ChatGPT】
Ramfs、rootfs和initramfs【ChatGPT】
1278 2
|
Linux
Linux命令(130)之hwclock
Linux命令(130)之hwclock
1323 1
|
芯片 异构计算 算法
芯片验证 | Formal验证技术总结
芯片验证 | Formal验证技术总结
1827 0
芯片验证 | Formal验证技术总结
|
存储 缓存 负载均衡
CC攻击解析与防御策略
CC攻击是DDoS的一种,利用代理服务器向目标发送大量合法请求,消耗服务器资源。识别特征包括命令行大量&quot;SYN_RECEIVED&quot;连接、IP批量异常连接和日志中异常访问模式。防御策略包括提升服务器性能、数据缓存优化、页面静态化、请求速率限制、IP访问限制及使用CDN。专业高防产品提供智能识别和响应,帮助企业构建全面防御体系。
1672 2

热门文章

最新文章