关闭

位置相关(无关)码 浅谈

标签: 函数嵌入式开发
197人阅读 评论(0) 收藏 举报
分类:

1.前言
在嵌入式开发当中.往往会听到一个概念:代码重定位.

2.重定位
将代码进行重新映射。

3.位置相关/无关码
⑴位置相关码
简单来说,包含全局信息相关的代码。
⑵位置无关码
资源在栈上分配,与位置无关

4.可重入函数
可重入函数当中不能有全局信息及堆区资源,这种函数是线程安全的,也就是可以使用在多线程编程环境当中,而不需要加锁机制。
可重入函数也是归于位置无关的代码。

0
0
查看评论

位置无关码、位置有关码、链接地址、加载地址

在移植 uboot 时,接触到一个概念叫做 位置无关码,那么与它对应的就是位置有关码。提到这两个概念就还得提一提链接地址、加载地址。     链接地址,链接脚本里指定的,理论上程序运行时所处的地址。在编译时,编译器会根据链接地址来翻译位置有关码。     加载...
  • lizuobin2
  • lizuobin2
  • 2016-07-27 23:48
  • 2189

位置无关代码码与位置相关代码

位置无关代码码与位置相关代码     位置无关与位置相关代码是关于arm程序在跳转时的寻址方式的两种,一般情况下两种方法都能达到跳转到目的地址的目标,但是在某些特定的环境下,两种跳转方法得到的结果相关较大。 位置无关代码的跳转可通过“B或BL 标...
  • zhaigch
  • zhaigch
  • 2014-09-20 17:58
  • 1220

位置无关码的理解和使用

1. 位置无关码:CPU取指时用相对地址取指令(比如pc +4),只要其相对地址没有变,都能够取指并运行。 位置相关码:利用绝对地址取指并运行,这就需要你存放程序(链接过程中)需要按照连接脚本的要求那样执行(Makefile里面有 -Ttext xxx指定或连接脚本)。 2. 对于A...
  • badmer
  • badmer
  • 2017-04-10 20:01
  • 211

位置无关码,位置相关码

1:ldr pc,=disbale_watch_dog  @位置相关码 2:bl  disbale_watch_dog  @位置无关码
  • cos_sin_tan
  • cos_sin_tan
  • 2012-02-06 17:57
  • 394

位置无关代码

在本博客中,你将学到的知识: (1):反汇编代码的分析; (2):连接器脚本的分析; (3):运行地址和装载地址的概念和联系,以及什么时候时候才允许实际运行地址和指定运行地址不一样的情况出现; (4):位置无关代码编写涉及到的指令。 (5):什么时候不允许编写位置无关代码,或者说怎...
  • chunlovenan
  • chunlovenan
  • 2014-05-05 21:02
  • 1676

S3C2440的汇编中常用的位置无关和位置相关指令

位置无关与位置相关 看了一段时间的S3C2440的bootloader后,感觉 在bootloder程序中经常会用到B,BL指令。他们是位置无关的代码,指令中所跳转的目标地址用基于当前PC的偏移量来表示,与链接时分配给地址标号的绝对地址值无关,因而代码可以在任何位置进行跳转,实现位置无关性。 ...
  • wuwuhuizheyisheng
  • wuwuhuizheyisheng
  • 2012-11-29 16:07
  • 790

地址有关码和地址无关码

LM2940:
  • u011549260
  • u011549260
  • 2014-11-23 12:53
  • 483

1.1 关于ARM中重定位:位置有关码和位置无关码及运行地址和链接地址

关于ARM中的重定位引入: 要想弄明白重定义的问题,首先我们需要引入4个概念: 链接地址 / 运行地址 / 位置无关码 / 位置有关码 这里我们先简单回顾一下三星S5PV210芯片的启动过程(如果想详细了解,请翻我之前的文章):由于三星芯片设计时IROM为64Kb(存放BL0的位置),I...
  • yz_cfm
  • yz_cfm
  • 2017-08-11 16:15
  • 267

bootloader与linux中位置无关代码的分析理解

声明本文转载http://blog.csdn.net/zhou1232006/article/details/6215361的文章,由于这段时间要深入的分析linux各个环节想收集点资料 首先,需要理解加载域与运行域的概念。加载域是代码存放的地址,运行域是代码运行时的地址。为什么会产生这2个概念?...
  • Soar_dream
  • Soar_dream
  • 2016-06-05 22:55
  • 1203

2440时钟&位置无关码

1.不同的外设需要的时钟频率不一样,所以时钟需要通过不同的分频送到每一个器件。 2.CPU专用的时钟一般称为FCLK,这个一般是最高的频率,因为CPU的速率最快,很好理解的;HCLK是用于AHB总线,也就是高速外设总线,这上面外接的设备频率也比较快,当然也没有2440内核快;另一个就是PCLK用于A...
  • laoniu_c
  • laoniu_c
  • 2013-12-12 12:03
  • 647
    个人资料
    • 访问:20045次
    • 积分:606
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类