ARM基础知识(强烈推荐)

上传人:豆*** 文档编号:201710061 上传时间:2023-04-20 格式:DOC 页数:22 大小:49KB
收藏 版权申诉 举报 下载
ARM基础知识(强烈推荐)_第1页
第1页 / 共22页
ARM基础知识(强烈推荐)_第2页
第2页 / 共22页
ARM基础知识(强烈推荐)_第3页
第3页 / 共22页
资源描述:

《ARM基础知识(强烈推荐)》由会员分享,可在线阅读,更多相关《ARM基础知识(强烈推荐)(22页珍藏版)》请在装配图网上搜索。

1、AR基本知识(强烈推荐).txt有谁会对着自己的裤裆傻笑。不敢跟她说话却一遍一遍打开她的资料又关上。用了心旳感情,真旳能让人懂得诸多事。如果有一天,我的签名不再频繁更新,那便证明我过的较好。R基本知识(强烈推荐)ARM基本知识一AM解决器共有个寄存器。其中涉及: *1个通用寄存器,涉及程序计数器(C)在内。这些寄存器都是32位寄存器。 *6个状态寄存器。这些寄存器都是32位寄存器。 R解决器共有7种不同的解决器模式,每一种模式中均有一组相应的寄存器组。在任何时刻,可见的寄存器涉及5个通用寄存器(R0-R14),一种或两个状态寄存器及程序计数器(P)。在所有的寄存器中,有些是各模式公用一种物理寄

2、存器,有某些寄存器各模式拥有自己独立的物理寄存器。 *通用寄存器 *8 通用寄存器分为如下三类:备份寄存器、未备份寄存器、程序计数器PC 未备份寄存器 未备份寄存器涉及-R。对于每一种未备份寄存器来说,所有解决器模式下都是使用同一种物理寄存器。未备份寄存器没有被系统用于特别的用途,任何可采用通用寄存器的场合都可以使用未备份寄存器。备份寄存器对于R8-12备份寄存器来说,每个寄存器相应两个不同的物理寄存器。系统为将备份寄存器用于任何的特殊用途,但是当中断解决非常简朴,仅仅使用R-R1寄存器时,FQ解决程序可以不必执行保存和恢复中断现场的指令,从而可以使中断解决非常迅速。对于R1,R14备份寄存器

3、来说,每个寄存器相应六个不同的物理寄存器,其中的一种是系统模式和顾客模式共用的;此外的五个相应于其她的五种解决器模式。采用下面的记号来辨别各个物理寄存器: R13_ 其中MO可以是下面几种模式之一:usr,vc,ab,ud,irq,iq 程序计数器C 可以作为一般的通用寄存器使用,但有某些指令在使用R15时有某些限制。由于ARM采用了流水线解决器机制,当对的读取了PC的值时,该值为目前指令地址值加上8个字节。也就是说,对于ARM指令集来说,指向目前指令的下两条指令的地址。由于ARM指令是字对齐的,C值的第0位和第一位总为 0。 需要注意的是,当使用tr/st保存15时,保存的也许是目前指令地址

4、值加8个字节,也也许保存的是目前指令地址值加12个字节。究竟哪种方式取决于芯片的具体设计。对于顾客来说,尽量避免使用SR/SM指令来保存R15的值。 当成功的向R1写入一种数值时,程序将跳转到该地址执行。由于ARM指令是字对齐的,写入1的值应满足bi:0为b0,具体规定rm个版本有所不同: *对于am以及更低的版本,写入R15的地址值bits:0被忽视,即写入1的地址值将与FFFFFC做与操作。 对于A4以及更高的版本,程序必须保证写入R5的地址值b:为0b00,否则将产生不可预知的后果。对于m指令集来说,指令是班子对齐的,解决器将忽视bi。ARM基本知识二* 程序状态寄存器*PS(目前程序状

5、态寄存器)在任何解决器模式下被访问。它涉及了条件标志位、中断严禁位、目前解决器模式标志以及其她的某些控制和状态位。每一种解决器模式下均有一种专用的物理状态寄存器,称为SSR(备份程序状态寄存器) 。当特定的异常中断发生时,这个寄存器用于寄存目前程序状态寄存器的内容。在异常中断退出时,可以用SPSR来恢复CPS。由于顾客模式和系统模式不是异常 中断模式,因此她没有PSR。当顾客在顾客模式或系统模式访问SPSR,将产生不可预知的后果。 CPSR格式如下所示。SPSR和PR格式相似。 1 928 26 64 3 2 1N Z V Q M(RA)IF TM4 M3 M2 0 *条件标志位* N本位设立

6、成目前指令运算成果的bit31的值。当两个表达的有符号整数运算时,n=表达运算成果为负数,n=0表达到果为正书或零。 z=表达运算的成果为零;=0表达运算的成果不为零。对于CMP指令,Z=1表达进行比较的两个数大小相等。C下面分四种状况讨论C的设立措施:在加法指令中(涉及比较指令MP),当成果产生了进位,则C=1,表达无符号运算发生上溢出;其她状况C=。 在减法指令中(涉及减法指令CMP),当运算中发生错位,则=0,表达无符号运算数发生下溢出;其她状况下C=。 对于涉及移位操作的非加碱运算指令,C中涉及最后一次溢出的的位的数值对于其她非加减运算指令,C位的值一般不受影响 对于加减运算指令,当操

7、作数和运算成果为二进制的补码表达的带符号数时,V=表达符号为溢出;一般其她指令不影响位。 *Q标记位*在ARMV5的E系列解决器中,CPSR的bit27称为q标记位,重要用于批示增强的dsp指令与否发生了溢出。同样的ssr的bit27位也称为q标记位,用于在异常中 断发生时保存和恢复PSR中的标记位。 在ARMV5此前的版本及M的非E系列的解决器中,标记位没有被定义。*CPSR中的控制位* CPSR的低八位I、F、T、4:0统称为控制位。当异常中断发生时这些位发生变化。在特权级的解决器模式下,软件可以修改这些控制位。 *中断严禁位:当=时严禁RQ中断,当F1时严禁FIQ中断 *T控制位:T控制

8、位用于控制指令执行的状态,即阐明本指令是ARM指令还是hub指令。对于ARV4以更高版本的T系列A解决器,T控制位含义如下: =0表达执行ARM指令 T表达执行Thmb指令对于ARM V5以及更高版本的非T系列解决器,T控制位的含义如下 T=0表达执行AM指令T=1表达强制下一条执行的指令产生未定指令中断 *M控制位* 控制位控制解决器模式,具体含义如下: 4:0 解决器模式 可访问的寄存器 ob10000 usr p,14r0,CPSR 0b1001 FIQ PC,14_FIQ-_FQ,R,CPSR,SR_FIQ 0b1001 IQ,R14_IRQR_IRQ,R12R0,CPSR,PSRIR

9、Q B1011SPERVISRPC,R14_SVC-R13_,RR,CR,SSR_SV 011 ABORT C,R1_-R13A,120,R,SSR_AT 0110UDEFINED PC,R14UN-R8_UND,R12R0,CPS,PSR_UNDb11111 SYTM PC,R4-R0,CPS(ARM V以及更高版本) *SR中的其她位*这些位用于将来扩展。应用软件不要操作这些位。AM基本知识三在AM体系中一般有如下3种方式控制程序的执行流程: *在正常执行过程中,每执行一条AR指令,程序计数器(PC)的值加4个字节;每执行一条Thm指令,程序计数器寄存器(PC)加2个字节。整个过程是按顺序

10、执行 。 *跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作同步,保存子程序的返回地址;BX指令在执行跳转操作同步,根据目的地址为可以将程序切换到Th状态;BLX指令执行3个操作,跳转到目的地址处执行,保存子程序的返回地址,根据目的地址为可以将程序切换到Thumb状态。*当异常中断发生时,系统执行完目前指令后,将跳转到相应的异常中断解决程序处执行。当异常中断解决程序执行完毕后,程序返回到发生中断指令的下条指 令处执行。在进入异常中断解决程序时,要保存被中断程序的执行现场,从异常中断解决程序退出时,要恢复被中断程序的

11、执行现场。AM基本知识四AM中异常中断的种类复位(REST) 当解决器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断解决程序处执行。复位异常中断一般用在下面几种状况下:系统加电时;系统复位时;跳转到复位中断向量处执行成为软复位。 *未定义的指令* 当ARM解决器或者是系统中的协解决器觉得目前指令未定义时,产生未定义的指令异常中断,可以通过改异常中断机制仿真浮点向量运算。 *软件中断 这是一种由顾客定义的中断指令。可用于顾客模式下的程序调用特权操作指令。在实时操作系统中可以通过该机制西线系统功能调用。*指令与取终结(PrechAort)* 如果解决器预取的指令的地址不存在,或者该地

12、址不容许目前指令访问,当被预取的指令执行时,解决器产生指令预取终结异常中断。 *数据访问终结(DAABORT) 如果数据访问指令的目的地址不存在,,或者该地址不容许目前指令访问,解决器产生数据访问终结异常中断 *外部中断祈求(IRQ)* 当解决器的外部中断祈求引脚有效,并且CPS的寄存器的I控制位被清除时,解决器产生外部中断祈求异常中断。系统中个外设通过该异常中断祈求解决服务。*迅速中断祈求(IQ)*当解决器的外部迅速中断祈求引脚有效,并且CPR的F控制位被清除时,解决器产生外部中断祈求异常中断 异常中断向量表及异常中断优先级 中断向量表指定了个异常中断及其解决程序的相应关系。她一般寄存在存储

13、地址的低端。在ARM体系中,异常中断向量表的大小为字节,其中每个异常中断占据4个字节大小,保存了4个字节空间。 每个异常中断相应的中断向量表中的4个字节的空间中寄存了一种跳转指令或者一种向PC寄存器中赋值的数据访问指令。通过这两种指令,程序将跳转到相应的异常中断解决程序处执行。当几种异常中断同步发生时,就必须按照一定的顺序来解决这些异常中断。 各个异常中断的中断向量地址以及中断的解决优先级 中断向量地址 异常中断类型 异常中断模式 优先级(最低)0x00 复位 特权模式 1 0x04 未定义的指令 未定义指令终结模式 008 软件中断 特权模式 6 0C 指令预取终结 终结模式 5 0x10

14、数据访问终结终结模式 2 x14 保存 未使用未使用0x1 外部中断祈求IRQ模式40xC 迅速中断祈求 FIQ模式 3A基本知识五在应用程序中安装异常中断解决程序 1.使用跳转指令:可以在异常中断相应异常向量表中特定位置放置一条跳转指令,直接跳转到该异常中断的解决程序。这种措施有一种缺陷,即只能在2M空间范畴内跳转。 2.使用数据读取指令:使用数据读取指令LDR向程序计数器C中直接赋值。这种措施分为两步:先将异常中断解决程序的绝对地址寄存在寄存在距离向量表4范畴内的一种存储单元中;再使用数据读取指令LDR将该单元的内容读取到程序计数器PC中。*在系统复位时安装异常中断解决程序* 1.地址0x

15、00处为OM的状况 使用数据读取指令LDR示例如下所示: Vector_ItBlck LDR PC, Rst_AdrLD PC,ndefd_Adr LDR PC, SWAdd LRPC, Preeth_Addr LR PC, Abot_dr NP LDR, IRQ_AdrLDR PC,FIQAddr et_dr DCD Start_Bo UndefnedAd DC UndfinedHandlSW_Addr DCD WI_andle refth_AddrDCD PrfehHanlAbot_Adr D AotHandlDC 0 RQ_Ad DC QHanlFQ_Addr DCD IQ_Hndle

16、使用跳转指令的示例如下所示:Vecr_Iit_lok BL Ree_HanlBL DD nined_Handle BL SWI_andleBL Prefet_dleBLAbort_Handl OP BLIRQ_andle FIQ_Hanle 2.地址0处为R的状况 地址0x0处为RA时,中断向量表必须使用数据读取指令直接指向PC中赋值的形式。并且,必须使用下面的代码巴中断向量表从O中复制到AM中地址0x0开始处的存储空间中: MV 8,#0 ADR r9,Vetor_it_Blk ;复制中断向量表(字) LDr9!,(r-r7)STMI r8!,(-);复制保存各中断解决函数地址的表(8字wo

17、s)LDMIAr9!,(r-r7)SM 8!,(r0-r7)ARM基本知识六*A存储系统概述* RM存储系统的体系构造适应不同的嵌入式应用系统的需要差别很大。最简朴的存储系统使用平办事的地址映射机制,就像某些简朴的弹片机系统中同样,地址空间的分派方式是固定的,系统各部分都使用物理地址。而某些复杂系统也许涉及下面的一种或几种技术,从而提供更为强大的存储系统。 *系统中也许涉及多种类型的存储器,如FLSH,RO,RM,EPRO等,不同类型的存储器的速度和宽度等各不相似。 *通过使用CACHE及W BUFFE技术缩小解决器和存储系统速度差别,从而提高系统的整体性能。 *内存管理部件通过内存映射技术实

18、现虚拟空间到物理空间的映射。在系统加电时,将OM/LASH影射为地址0,这样可以进行某些初始化解决;当这些初始化完毕后将RAM地址影射为,并把系统程序加载到RAM中运营,这样较好地解决了嵌入式系统的需要。 *引入存储保护机制,增强系统的安全性。 *引入某些机制保证/O操作应设成内存操作后,多种IO操作可以得到对的的成果。*与存储系统有关的程序设计指南*本节从外部来看AM存储系统,及ARM存储系统提供的对外接口。本节简介顾客通过这些接口来访问ARM存储系统时需要遵守的规则。 1地址空间 RM体系使用单一的和平板地址空间。该地址空间大小为232个8位字节,这些字节的单元地址是一种无符号的32位数值

19、,其取值范畴为0232-1。ARM地址空间也可以看作是30个3位的字单元。这些字单元的地址可以被整除,也就是说该地址低两位为0b0。地址为A的字数据涉及地址为A、A+1、A+、A+ 4个字节单元的内容。 各存储单元的地址作为为无符号数,可以进行常规的整数运算。这些运算的成果进行3取模。 程序正常执行时,每执行一条ARM指令,目前指令计数器加个字节;每执行一条Thumb指令,目前指令计数器加个字节。但是,本地址上发生溢出时,执行成果将是不可预知的。 2存储器格式在ARM中,如果地址A是字对齐的,有下面几种: *地址为A的字单元涉及字节单元A,A+1,A+2,A。 *地址为A的班子单元涉及字节单元

20、A,+1。*地址为A+的半字单元涉及字节单元A+,A=3. *地址为A的字单元涉及半字节单元A,+2。 在bg-ndia格式中,对于地址为的字单元其中字节单元由高位到低位字节顺序为A,A+1,A2,A+3;这种存储器格式如下所示: 2 23 1 15 8 7 0 - 字单元- 半字单元A | 半字单元A+2 | -字节单元A 字节单元1 字节单元A+ | 字节单元A+3| - 在l-enian格式中,对于地址为的字单元由高位到低位字节顺序为A3,A2,+1,A,这种存储格式如下所示 3 24 2 16 15 8 -字单元A |- 半字单元+2 | 半字单元A | - 字节单元+ |字节单元A2

21、 | 字节单元A+1 | 字节单元A |- 在M系统中没有提供指令来选择存储器格式。如果系统中涉及原则的ARM控制协解决器C5,则CP15的寄存器C1的位7决定系统中存储器的格式。当系统复位时,寄存器C1的7值为零,这时系统中存储器格式为lttle-edan格式。如果系统中采用的是big-ndia格式,则复位异常中断解决程序中必须设立c1寄存器的7位。 3.非对齐的存储访问操作 非对齐:位于am状态期间,低二位不为0b00;位于Thumb状态期间,最低位不为0b。 1非对齐的指令预取操作 如果系统中指定当发生非对齐的指令预取操作时,忽视地址中相应的位,则由存储系统实现这种忽视。3.2非对齐的数

22、据访问操作 对于OAD/SO操作,系统定义了下面中也许的成果: *执行成果不可预知*忽视字单元地址低两位的值,即访问地址为字单元;忽视半字单元最低位的值,即访问地址为半字单元。 *由存储系统忽视字单元地址中低两位的值,半字单元地址最低位的值。 4.指令预取和自修改代码 当顾客读取PC计数器的值时,返回的是目前指令下面的第二条指令的地址。对于M指令来说,返回目前指令地址值加8个字节;对于Thumb指令来说,返回值为目前指令地址值加4个字节。 自修改代码指的是代码在执行过程中修改自身。应尽量避免使用。.存储器映射的I/O空间在ARM中,I/O操作一般被影射为存储器操作。一般需要将存储器映射的/O空

23、间设立成非缓冲的。A基本知识七*M编译器支持的数据类型 * 数据类型 长度(位) 对齐特性 ha8 (字节对齐) hort 2(百字对齐)Int 32(字对齐) ong 3(字对齐) Longlng 4 (字对齐) Float 32 4(字对齐) De 64 (字对齐) Long double 64 4(字对齐) Alpints 34(字对齐) Bo(C+ ony) 3 (字对齐) 1.整数类型 在RM体系中,整数类型是以2的补码形式存储的。对于long lon类型来说,在littl nia内存模式下,其低3位保存在低地址的字单元中,高2为保存在高地址的字单元中;在igeian模式下,其低32

24、位保存在高地址的字单元中,高32为保存在低地址的字单元中。对于整型数据的操作遵守下面的规则: *所有带符号的整型书的运算是按照二进制的补码进行的。 *带符号的整型数的运算不进行符号的扩展。 *带符号的整型数的右移操作是算数移位。 *制定的移位位数的数是位的无符号数。 *进行移位操作的数被作为2位数。 超过31位的逻辑左移的成果为0。 对于无符号数和有符号的正数来说,超过32位的右移操作成果为0;对于有符号的负数来说,超过位的右移操作成果为-1。*整数除法运算的余数和除数有相似的符号。*当把一种整数截断成位数更短的整数类型的数时,并不能保证所得到的成果的最高位的符号位的对的性。*整型数据之间的类

25、型转换不会产生异常中断。 *整型数据的溢出不会产生异常中断。 *整型数据除以0将会产生异常中断。 2浮点数 在M体系中,浮点数是按照EE原则存储的。*类型的数是按照IEEE的单精度数表达的。 *double和long double 是用IEE的双精度数表达的。 对于浮点数的操作遵守下面的规则: *遵守正常的EE754规则。 *当默认状况下严禁浮点数运算异常中断。 *当发生卷绕时,用最接近的数据来表达。 .指针类型的数据 下面的规则合用于处数据成员指针以外的其她指针: *NLL被定义为0。 *相邻的两个存储单元地址相差一。 *在指向函数的指针和指向数据的指针进行数据转换时,编译器将会产生警告信息

26、。 *类型ize_t被定义为unsgedin.*类型prff_被定义为gnedint。 *两个指针类型的数据相减时,成果可以按照下面的公式得到。 (int)-(int))/(int)szef(pepte ) 这时,只要指针所指的对象不是ac的,其对齐特性可以满足整除的规定。AR基本知识八* ARM编译器中预定义的宏*RM编译器预定义了某些宏,这些预定义宏相应一定的数值,有些预定义宏没有相应数值,见下表: rm _ 使用编译器rmcc,c,armpp,tc时 _RMC_VERION Vr 代表编译器版本号,其格式为:Ptbb,其中: 为产品编号(1代表AD) V为副版本号(1代表1)为补丁版本号

27、(0代表11)bb为build号(例如650) PCSNTERORK_ 使用编译选项acs/inrork时 _APCS_ROPI_ 使用编译选项ac/rop时 RWPI _ 使用编译选项-apc/rwp时_PCS_SWST _ 使用编译选项acs/sw时 BIG_IA _ 编译器针对目的系统使用bg-dn内存模式时plulus_编译器工作与+模式时 CAM _ 返回编译器的名称 _DTE de编译源文献的日期 _embddd_clusplus 编译器工作于EC+模式时 EAU_IED_CHA 使用编译设立选项-z时设立该预定义宏 _FLE_ nme 涉及全途径的目前被编译的源文献名称 _fun

28、c_ nme 目前被编译的函数名称 _LE_ nu 目前被编译的代码行号名称 _MOUDLE_ mod 预定义宏FIE_的文献名称部分 _PTIIS_SPAE _ 使用编译选项-OSPCE时 _OPTIMSE_TIME _ 使用编译选项-Otime时 _pretty_unc nme unmled的目前函数名称_ofin 4sizo(it),在预解决体现式中可以使用 _zef_ong4szof(ong),在预解决体现式中可以使用 sizeof_r 4sieo(id)在预解决体现式中可以使用 _SOFTF _ 编译时使用浮点数_在多种编译器模式下 _TDC_ERSIO _原则的版本信息 T_NS_

29、 使用编译选项-STRICT时 RGT_CH_xx xx代表ARM体系编号 _TGE_CP_x x代表PU编号 _TRGE_FATRE_ 当ARM体系支持指令,DRD,RD,MCRR,R时DOUBLEWR 设立该定义宏_ARGET_ATURE_ 当系统中涉及DSP乘法解决器时,设立该 SPMUL 预定义宏 _TARTFAE_ 如果目的AM体系支持半字访问以及有符号的字节数据 HAFWOD ,设立该预定义宏 _TARGETFEATURE_ 如果目的AR体系支持长乘法指令MUL和 ULTIPL MUL,设立该预定义宏 _AGET_FATURE_ 如果目的ARM体系支持HMB指令HUM _TARGE

30、T_FPUxx 表达FU选项,也许取值如下所示: _AG_FU_VFPTAETFPU_FA _TARGE_FPUSOVF TARGET_P_SOFTVP_VFP RGET_PUFFPA _TAGET_U_OE _thum 编译器为t或tcpp时,设立该预定义宏 _IME 源文献编译时间AR基本知识九* AR映像文献 * 1.ELF格式文献的构造 1.1映像文献构成部分 *一种映像文献有一种或多种域构成*每个域涉及一种或多种输出段 *每个输出段涉及一种或多种输入段 *各输入段中涉及了目的文献中的代码和数据输入段中涉及了四类内容:代码、已经初始化的数据、未经初始化的存储区域、内容初始化成0的存储区

31、域。每个输入段有相应的属性,可觉得只读的(RO)、可读写的(RW)以及初始化成0的(ZI)。AR连接器根据个输入段的属性将这些输入段分组,再构成不同的输出段及域。 一种输出段中涉及了一系列的具有相似的RO、R和属性的输入段。输出段的属性与其中涉及的输入段的属性相似。在一种输出段的内部,各输入段是按照一定的规则排序的,这将在3节油具体地简介。 一种域中涉及1-个输出段,其中个输出段的属性各不相似。各输出段的排列顺序是由其属性决定的。其中RO属性的输出段排在最前面,另一方面是RW属性的输出段,最后是属性的输出段。一种域一般映射到一种物理存储器上,如R或RAM。 1.2AM映像文献各构成部分的地址影

32、射 映像文献各构成部分在存储系统中的地址有两种:一种是映像文献位于存储器中时(也就是该映像文献运营之前)的地址,称之为加载地址;一种是映像文献运营时的地址,称之为运营时地址。之因此有这两种地址,是由于映像文献在运营时,其中的有些域是可以移动的新的存储区域。例如,已经初始化的R属性的数据所在的段运营之前也许保存系统的ROM中,在运营时,她被移动至RAM中。 一般,一种映像文献涉及若干个域,各域又涉及若干的输出段。ARM连接器需要懂得如下的信息,已决定如何生成相应的映像文献。 *分组信息 决定如何将个输入段组织成相应的输出段和域。 定位信息决定个域在存储空间地址中的起始地址。 根据映像文献中地址映

33、射的复杂限度,有两种措施来告诉m连接器这些有关信息。对于映像文献中地址映射关系比较简朴的状况,可以使用命令行选项;对于映像文献中地址映射关系比较复杂的状况,可以使用一种配备文献。 rm映像文献的入口点 .1arm映像文献的入口点有两种类型:一种是映像文献运营时的入口点,称为初始入口点(initial entry oin),另一种是一般入口点(ery point)初始入口点是映像文献运营时的入口点,每个映像文献只有一种唯一的初始入口点,它保存在ELF头文献中。如果映像文献是被操作系统加载的,操作系统是通过跳转到该初始入口点处来加载该映像文献。 一般的入口点是在汇编中用N伪操作定义。她一般用于标志

34、该段代码是通过异常中断解决程序进入的。这样连接器删除无用的段时不会将该段代码删除。一种映像文献中可以定义多种一般入口点。 应当注意的是,初始入口点可以使一般入口点,但也可以不是一般入口点。 2定义初始入口点 初始入口点必须满足下面两个条件: *初始入口点必须位于映像文献的运营时域内。 *饱含初始入口点的运营时域不能被覆盖,她的加载地址和运营地址必须是相似的。 可以使用连接选项-entry adress来指定映像文献的初始入口点。这时,addrss指定了映像文献的初始入口点的地址值。对于地址00处为rm的嵌入式应用系统,可以使用-ntry 00来指定映像文献的初始入口点。这样当系统复位后,自动跳

35、转到该入口开始执行。如果映像文献是被一种加载器加载的,该映像文献该映像文献必须涉及一种初始化入口点。这种映像文献一般还涉及了其她一般入口点,这些一般入口点一般为异常中断解决程序的入口地址。 当顾客没有指定-enty ddres时,连接器根据下面的规则决定映像文献的初始入口点。 *如果输入的目的文献中只有一种一般入口点,该一般入口点被连接器当成映像文献的初始入口点。*如果输入的目的文献中没有一种一般入口点,或者其中的一般入口点多于一种,则连接器生成的映像文献中不涉及初始入口点,并产生警告信息。2.3一般入口点的用法 一般入口点是在汇编中用ENTRY 伪操作定义。在嵌入式应用中,各异常中断的解决程

36、序入口使用一般入口点标示。这样连接器在删除无用段时不会将该段代码删除。 一种映像文献中可以定义多种一般入口点。没有指定连接选项-ey addre时,如果输入的目的文献中只有一种一般入口点,该入口点被连接器当成映像文献的初始入口点。3输入段的排序规则 连接器根据输入段的属性来组织这些输入段,具有相似属性的输入段被放到域中一段持续的空间中,构成一种输出段。在一种输出段中,各输入段的起始地址与输出段的起始地址和该输出段中个输入段的排列顺序有关。 一般状况下,一种输出段中个输入段的排列顺序由下面几种因素决定的。顾客可以通过连接选项-r和last来变化这些规则。*输入段的属性。 *输入段的名称 *各输入

37、段在连接命令行的输入段列表中的排列顺序 按照输入段的属性,其排列顺序如下所示: *只读的代码段 *只读的数据段 *可读写的代码段 *其她已经初始化的数据段*未出世化的数据 对于具有相似属性的输入段,按照其名称来排序。这是输入段名称是辨别大小写的,按照其ASCII码顺序进行排序。 对于具有相似属性和名城的输入段,按照其在输入段列表中的顺序进行排序。也就是说,几十个输入段的属性和名称保持不变,如果其在编译时,各输入段在输 入段列表中的排列顺序不同,生成的映像文献也将不同。 可以通过连接选项-st和-as来变化这些规则。如果连接时使用了配备文献,可以在配备文献中通过伪属性FIRST和LAS达到相似的

38、效果。连接选项rst和last不能变化根据输入段进行排序的规则,它只能变化根据输入段名称和其在输入列表中的顺序的排序规则。也就是说,如果使用frst指定 一种输入段,只有该输入段所在的输出段位于运营时域的开始位置时,该输入段才干位于整个运营时域的开始位置。各个输入段排好顺序后,在拟定各个输入段的起始地址之前,何以通过填充补丁是个输入段满足地址对齐的规定。 * AR连接器简介* ARM连接器rmlink将编译得到的EL格式文献以及有关的C/+运营时库连接生成相应的成果文献。amlnk可以完毕下面的操作: *连接编译后得到的目的文献相应的cc运营时库,生成可执行的影像文献。 *将某些目的文献进行连

39、接,生成一种新的目的文献,供将来进一步连接时使用,这成为部分连接。 *指定代码和数据在内存中的位置。生成被连接文献的调试信息和互相间的引用信息。 Armik在进行部分连接和完全生成可执行文献时作进行的操作是不同的。下面分别简介:()解析输入的目的文献之间的符号引用关系。 (2)根据输入目的文献对cc+函数的调用关系,从c/c+运营时库中提取相应模块。 ()将各个输入段排序,构成相应的输出段。 (4)删除反复的调试信息。 (5)根据顾客指定的分组和定位信息,建立映像文献的地址映射关系。 (6)重定位需要重定位的值。 ()生成可执行的映像文献。 arik在进行部分连接生成新的目的文献时执行下面的操作。 (1)删除反复的调试信息 (2)最小化符号表的大小()保存那些未被解析的符号 (4)生成新的目的文献下面根据各arlnk的命令行选项的功能分类列举了arlink的命令行选项,各选项的具体用法将在背面有具体地简介。 *提供有关alin的协助信息 *指定输出文献的名称和类型:*output;-atil;*-ef *使用选项文献,其中可以涉及某些连接选项。制定可执行映像文献的内存映射关系。*-wpi;*-ropi;*-rase;*robase;*-spi;-sctte *控制可执行映射文献的内容。*-frt;*-ls *生成与映像文献的有关信息 *控制mlin生成有关的诊断信息。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!