ARM 位置无关代码PIC的分析理解

发布者:清新心情最新更新时间:2016-06-21 来源: eefocus关键字:ARM  位置无关代码  PIC 手机看文章 扫描二维码
随时随地手机看文章
PIC的特点是:

        它被加载到任意地址空间都可以正确的执行。其原理是PIC对常量和函数入口地址的操作都是基于PC+偏移量的寻址方式。即使程序被移动,但是PC也变化了,而偏移量是不变的,所以程序仍然可以找到正确的入口地址或者常量。

 

 

加载域:是代码存放的地址

运行域:是代码运行时的地址

链接地址:运行时,程序应该位于的地址

在一些场合,一些代码并不在储存这部分代码的地址上执行,比如说,放在norflash中的代码可能最终是放在RAM中运行,那么在norflash中的地址就是加载域,而在RAM中的地址就是运行域。

 

在汇编代码中我们常常会看到一些跳转指令,比如说b、bl(是位置无关的指令)等这些指令后面是一个相对地址而不是绝对地址,比如说b main,这个指令应该怎么理解呢?main这里究竟是一个什么东西呢?

       这时候就需要涉及到链接地址的概念了,链接地址实际上就是链接器对代码中的变量名、函数名等东西进行一个地址的编排,赋予这些抽象的东西一个地址,然后在程序中访问这些变量名、函数名就是在访问一些地址。一般所说的链接地址都是指链接这些代码的起始地址,代码必须放在这个地址开始的地方才可以正常运行,否则的话当代码去访问、执行某个变量名、函数名对应地址上的代码时就会找不到,接着程序无疑就是跑飞。

        但是上面说的那个b main的情形有点特殊,b、bl等跳转指令并不是一个绝对跳转指令,而是一个相对跳转指令,什么意思呢?就是说,这个main标签最后得到的只并不是main被链接器编排后的绝对地址,而是main的绝对地址减去当前的这个指令的绝对地址所得到的值,也就是说b、bl访问到的是一个相对地址,不是绝对地址,因此,包括这个语句和main在内的代码段无论是否放在它的运行域它都能正常运行。这就是所谓的位置无关代码。

由上面的论述可以得知,如果你的这段代码需要实现位置无关,那么你就不能使用绝对寻址指令,否则的话就是位置有关了。

关键字:ARM  位置无关代码  PIC 引用地址:ARM 位置无关代码PIC的分析理解

上一篇:uboot之ARM位置无关代码设计
下一篇:arm中驱动模块加载并由应用程序调用

推荐阅读最新更新时间:2024-03-16 14:58

ARM回顾市场发展 高效能、低耗表现成主流
    在于台湾的活动里,ARM企业行销与投资人关系副总裁Ian Thornton与大中华区总裁吴雄昂 (Allen Wu)分享近期ARM主要发展,以及针对2012年间的发展做了回顾,并且针对明年展望做相关分享。 ARM大中华区总裁吴雄昂 (Allen Wu) 2012年成功创造市场生态 根据ARM表示,在2012年间推出的64位元ARMv8架构技术,目前已经获得17项技术授权,同时至今也已经有多达100项技术授权。在2012年的ARM架构产品出货量也累积达87亿,总累积数量也已经超过400亿,目前整体市占为32%,与2011年增长约3%比例,主要授权营收来源分别是Cortex-A系列处理器产品,以及Mali绘图处理器技术授权。
[手机便携]
ARM与晨星半导体再度合作授权ARM Cortex-A9处理器
2012年4月24日,中国上海——ARM®今日宣布,领先的显示器与数字家庭解决方案半导体供货商晨星半导体(MStar)在一系列ARM系统IP授权的基础上,又取得了ARM Cortex™-A9 MPCore™ 处理器和ARM926EJ-S™ 处理器授权,用于开发智能电视、机顶盒与智能手机等相关应用。在此之前,晨星半导体采用ARM Mali™-400MP图形处理器(GPU)所开发的智能电视系统级芯片(SoC)解决方案已经开始量产。这次扩大采用ARM IP授权后,晨星半导体将可通过ARM各种功能丰富的技术开发各类解决方案。 此次授权协议也 包括了ARM CoreSight™ 设计包(Design Kit)。通过采用CoreSigh
[单片机]
简单介绍ARM linux的启动部分源代码
当内核映像被加载到RAM之后,Bootloader的控制权被释放。内核映像并不是可直接运行的目标代码,而是一个压缩过的zImage(小内核)。但是,也并非是zImage映像中的一切均被压缩了,映像中包含未被压缩的部分,这部分中包含解压缩程序,解压缩程序会解压缩映像中被压缩的部分。zImage使用gzip压缩的,它不仅仅是一个压缩文件,而且在这个文件的开头部分内嵌有gzip解压缩代码。当zImage被调用时它从arch/arm/boot/compressed/head.S的start汇编例程开始执行。这个例程进行一些基本的硬件设置,并调用arch/arm/boot/compressed/misc.c中的decompress_kern
[单片机]
微软拥抱高通与ARM,将会强化电脑和手机的融合
微软新品发布会刚刚在美国召开,此次发布会微软迎接几位新的合作伙伴,分别是AMD、ARM和高通。不难看出,微软正在以更为开放的姿态迎接新的战略合作伙伴;同时,微软通过与高通和ARM建立合作,来抓住5G的发展浪潮。并且,与高通和ARM的合作,将有助力推动PC个人电脑与手机的融合。 在PC方面,以往微软都是英特尔进行而作,而此次的Surface Laptop 3,微软则是与AMD公司公司。据悉,在未来几年内,微软将发布更多运用AMD技术的Surface机型。 此外,微软推出了5G的Surface设备,搭载高通骁龙8cx处理器。此前媒体报道,微软正在开发一款代号为Excalibur的Surface设备,这是微软与高通公司密切合作的ARM版
[手机便携]
PIC18**K80配置位详解
pic18f66k80配置寄存器配置示例如下: 开发环境:MPLAB X IDE 芯片:pic18f66k80 // CONFIG1L #pragma config RETEN = OFF // Vreg休眠(禁用) #pragma config INTOSCSEL = HIGH //LF-INTOSC 低功耗使能位(休眠期间 LF-INTOSC 处于高功耗模式) #pragma config SOSCSEL = DIG // SOSC 功耗选择和模式配置位(数字 (SCLKI)模式;使能 RC0 和 RC1 的 I/O 端口功能) #pragma config XINST = OFF // Extended
[单片机]
<font color='red'>PIC</font>18**K80配置位详解
PIC单片机A/D转换过程
PIC单片机A/D转换过程 1、设定ADCON1和TRISx寄存器,配置引脚的工作模式; 2、若需要转换完毕中断响应,需设定相关的中断控制寄存器; 3、设置ADCON0寄存器,选择A/D转换的时钟,选择模拟信号输入通道,打开A/D模块,注意此时GO/DONE位不要置1; 4、等待足够长的采样延时; 5、将ADCON0中的GO/DONE控制位置1,启动一次A/D转换过程; 6、查询A/D转换结束标志:GO/DONE位在A/D转换结束时会自动清0,ADIF标志位在A/D转换结束后会自动置1,这两个位都可以作为软件查询A/D转换是否结束的标志,使用ADIF标志时记得要用软件将其清除; 7、若用中断来响应A/D转换的结束,则上一
[单片机]
海兴电力通过Arm Pelion物联网平台拓展新兴市场
Arm宣布,杭州海兴电力科技股份有限公司(以下简称“海兴电力”)成为Arm物联网的最新战略合作伙伴。Arm通过Pelion物联网平台为海兴电力提供基础技术,协助它为其客户打造全栈式的物联网解决方案,并拓展新市场。 Arm Pelion物联网平台曾协助智能电表厂商与公用事业部署、连接、确保安全与管理下一代高级计量架构(AMI),海兴电力是此类应用的最新案例。该公司通过Pelion设备管理与符合Wi-SUN标准的连接技术,以智能电表与AMI解决方案将业务扩展到包括东南亚、印度、南美与欧洲等新兴市场。Wi-SUN 通过提供mesh网络架构,在不影响带宽、流量或安全性的情况下,最大限度地减少设备直接接入蜂窝通信连接,从根本上降低大规模
[物联网]
ARM设计的高速数据采集远程监控系统技术
随着信息化的不断发展,在工业自动化、电力设备、通信管理、智能终端、智能小区等领域,对数据采集的实时性、可靠性的要求也不断地提高。以往传统的单片机加采集卡的数据采集装置已经不能满足人们使用的要求。随着采集卡的采集频率不断地提升,其所属平台的工作频率也应跟上时代的步伐。同时,在某些情况下,装置的操控人员不可能到工作现场去执行,所以有必要对采集装置进行远程监察和控制。在各种设备的通信方式中,由于以太网具有速度快、通用性好、扩展性强等优点,已13渐成为设备之间进行通信的主要方式。本文提出了基于ARM的高速数据采集装置远程监控系统,在实现对数据的高速采集的同时,能保证数据的可靠性和实时性,并对各帧数据嵌入时间标志为后续数据处理做好准备,
[单片机]
<font color='red'>ARM</font>设计的高速数据采集远程监控系统技术
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved