诚信经营,质量为首,诚信至上,真诚为您服务
--------------------------------------------------
允许我给您介绍下这个产品和我们的服务:现货 全新原装*** 15天质量问题无条件包退换
一年质保 完善的***服务 雄厚的技术人才后盾 真正的为客户排忧解难
客户的满意 是对我们的肯定 更是我们的动力
单子,得之,我幸。不得,我力争到底 全心服务
--------------------------------------------------
ABB 3HAB7231-1 DSQC 320
优质的产品★优质的价格★优质的***★优质的服务,是您***佳的选择!
(1) 程序设计规范1
引用同一ROPI段或相对位置固定的另一ROPI段中的符号时,必须是基于PC的符号引用,即使用相对于当前PC的偏移量来实现跳转或进行常量访问。
① 位置无关的程序跳转。在ARM汇编程序中,使用相对跳转指令B/BL实现程序跳转。指令中所跳转的目标地址用基于当前PC的偏移量来表示,与链接时分配给地址标号的***地址值无关,因而代码可以在任何位置进行跳转,实现位置无关性。
另外,还可使用ADR或ADRL伪指令将地址标号值读取到PC中实现程序跳转。这是因为ADR或ADRL等伪指令会被编译器替换为对基于PC的地址值进行操作,但这种方式所能读取的地址范围较小,并且会因地址值是否为字对齐而异。
但在ARM程序中,使用LDR等指令直接将地址标号值读取到PC中实现程序跳转不是位置无关的。例如: LDR PC, =main
上面的伪指令编译后的结果为: LDR PC, [PC, OFFSET_TO_LPOOL]
LPOOL
DCD main
可见,虽然LDR是把基于PC的一个存储单元LPOOL的内容加载到PC中,但该存储单元中保存的却是链接时所决定的main函数入口的***地址,所以main函数实际所在的段不是位置无关。
② 位置无关的常量访问。在应用程序中,经常要读写相关寄存器以完成必要的硬件初始化。为增强程序的可读性,利用EQU伪指令对一些常量进行赋值,但在访问过程中,必须实现位置无关性。下面以PXA270的GPIO初始化介绍位置无关的常量访问方法。
GPIO_BASE EQU 0x40e00000; GPIO基址寄存器地址
GPDR0 EQU 0x00c; 相对于GPIO基址寄存器的偏移量
init_GPDR0 EQU 0xfffbfe00; 寄存器GPDR0初值
LDR R1, =GPIO_BASE
LDR R0, =init_GPDR0
STR R0, [R1, #GPDR0]
上述汇编代码段经编译后的结果为:
LDR R1, [PC, OFFSET_TO_GPIO_BASE]
LDR R0, [PC, OFFSET_TO_init_GPDR0]
STR R0, [R1, #0xc]
GPIO_BASE
DCD 0x40e00000
GPDR0
DCD 0x00c
init_GPDR0
DCD 0xfffbfe00
可见,LDR伪指令实际上使用基于PC的偏移量来对符号常量GPIO_BASE和init_GPDR0进行引用,因而是位置无关的。由此可以得出如下结论:使用LDR伪指令将一个常量读取到非PC的其他通用寄存器中可实现位置无关的常量访问;但将一个地址值读取到PC中进行程序跳转时,跳转目标则是位置相关的。
(2) 程序设计规范2
其他被ROPI段中的代码引用的必须是***地址,或者是基于可读写位置无关(RWPI)段的静态基址寄存器的可写数据。
使用***地址只能引用被重***到特***置的代码段中的符号,通过在位置无关代码中引入***地址,可以让程序跳转到指***置。例如,假设Bootloader的阶段1将其自身代码拷贝到链接时所指定的SDRAM地址空间后,当要跳转到阶段2的C程序入口时,可以使用指令“LDR PC, =main”跳转到程序在SDRAM中的main函数入口地址开始执行。这是因为程序在编译链接时给main函数分派***地址,系统通过将main函数的***地址直接赋给PC实现程序跳转。如果使用相对跳转指令“B main”,那么只会跳转到启动ROM内部的main函数入口。
ABB HA02
ABB HH01
ABB HP21
ABB HS01
ABB HS11
ABB HV01
ABB TEU411
ABB TEU421
ABB LL01
ABB LL02
ABB LZ01
ABB LZ02
ABB MA01
ABB MA02
ABB MA12
ABB MB11
ABB MB12
ABB MB21
ABB MM21
ABB MR01
ABB MS01
ABB MT01
ABB MV01
ABB MV03
ABB MZ01
ABB MZ03
ABB PAA02
ABB PBM070
ABB PCM01
ABB PCM03
ABB PCM14
ABB ***02
ABB ***36
ABB PCV24
ABB ***01
ABB ***28
ABB PDK01
ABB PDK02
ABB PDS01
ABB PDV01
ABB PEA02
ABB PEA03
ABB PGM01
ABB PGM03
ABB PGM09
ABB PGM35
ABB PGM48
ABB PMK24
ABB STC2AE
ABB STC2BE
ABB STT02E
ABB TAS01
ABB TPM01
ABB TPS02
ABB 1948002
ABB 1948013A1
ABB 1948517A3
ABB 1948580A1
ABB 1948850A1
ABB 1948850A2
ABB 6635051G1
ABB 6636488A1
ABB 6637258A1
ABB 6637813C1
ABB 6637814A2
ABB 6637826B1
ABB 6637827B1
ABB 6637830G1
ABB 6638238F1
ABB 6638514A1
ABB 6638553A5
ABB 6638553V5
ABB 6638716A1
ABB 6639030L2
ABB 6639890A1
ABB 6639890A2
ABB 6640347A1
ABB 6641684A21
ABB 6642016A2
ABB 6642016D2
ABB 6644177A11
ABB MB 02 MB02
ABB HH 03 HH03
ABB HH 04 HH04
ABB HH 11 HH11
ABB HM 01 HM01
ABB HM 11 HM11
ABB HM 21 HM21
ABB HP 01 HP01
ABB HP 03 HP03
ABB HA 01 HA01
ABB HV 12 HV12
ABB HW 81 HW81
ABB HW 91 HW91
ABB LL 03 LL03
ABB LM 01 LM01
ABB LM 21 LM21
ABB LT 01 LT01
ABB LT 02 LT02
ABB MA 03 MA03
ABB 6632686A60-1
ABB 6633644A1
ABB 6633645A1
ABB 6634329A34N12
ABB 6634512A26
ABB 6634688G1
ABB PCV 02 369227
ABB PDD 02 369134
ABB *** 10 369225
ABB *** 20 369245
ABB *** 25 344251
ABB PEB 02 369037
ABB PEB 03 369070A10
ABB PEF 01 369033A10
ABB PEA 01 369031
ABB PAB 02 369059A10
ABB PAR 01 368051
ABB PBK 10 368211
ABB PBK 20 368209
ABB *** 06 369239A10
ABB *** 04 P70931-4-03690220
ABB PMM 30 369232A10
ABB PMM 44 369236A10
ABB 6637460-A30N
ABB 6637597A24100
ABB 6632686-50-1
ABB 6632686-A60-1
ABB 6632686A40-1
IC693PW***1Y
VMIVME-1128
VMIVME-2540
VMIVME-1182
VMIVME-3113A
VMIVME-4132
Fireye 60-1257
Fireye 60-1290
Fireye 60-1386-2
Fireye 6014662
Fireye 60-1466-2
Fireye 60-1508-2
Fireye 60-1626
Fireye 60-1728-1
Fireye 60-1764
Fireye 60-2060
Fireye 60-2060-1
Fireye 60-2060-10
Fireye 60-2060-10 PFM10
Fireye 60-2060-16
Fireye 60-2060-2
Fireye 60-2060-3 PFM3
Fireye 60-2060-4
Fireye 60-2060-9 PF***
Fireye 1004
Fireye 129-145-1
Fireye 129-145-1 ED510
Fireye 129-2
Fireye 129-66 C
Fireye 19UVPS-2120
Fireye 2227 EP340
Fireye 24CJ5
Fireye 24CJ5-5010
Fireye 25RF5-6009
Fireye 25RU8
Fireye 25RU8-6580
Fireye 25RUB-4580
Fireye 25SU3-2000
Fireye 25SU3-4170
Fireye 25SU5
Fireye 25SU5 4013
Fireye 26CF6
Fireye 26CF6
Fireye 26RJ8
Fireye 26RJ8 6080D
Fireye 26RJ8 CB1
Fireye 26RJ8-1008
Fireye 26RJ8-6008-CFR
Fireye 26RJ8-6058
Fireye 26SJ5
Fireye 26SJ5-6152-CFR
Fireye 275-143-603720
Fireye 27VH6
Fireye 29RF5
Fireye 29RF5 6009
Fireye 30HLI-1000A
Fireye 38-54
Fireye 38-55
Fireye 38-56
Fireye 38-58
Fireye 40BA1-1000
Fireye 4-128
Fireye 415UV5
Fireye 4-263
Fireye 4-263-1
Fireye 4-314
Fireye 43141 UV
Fireye 4-320 UV
Fireye 45FS1-1000
Fireye 45RM4-1000
Fireye 45UV1-1020
Fireye 45UV1-1120
Fireye 45UV3-1050
Fireye 45UV5
Fireye 45UV5-1000 UV
Fireye 45UV5-1005
Fireye 45UV5-1005 UV
Fireye 45UV5-1006 UV
Fireye 45UV51009
Fireye 45UV5-1009
Fireye 48PT1
Fireye 48PT2-1003
Fireye 48PT2-1007
Fireye 48PTI-9003
Fireye 5023A 26CF6
Fireye 60-10 7721
Fireye 60-10 7724
Fireye 60-10 8012
Fireye 60-2107
Fireye 60-2204-2
Fireye 60-2205
Fireye 60-2206-1
Fireye 60-2207-1
Fireye 60-2207-2
Fireye 60-2301
Fireye 60-2470-1
Fireye 60-28101
Fireye 60-2854-1
Fireye 60-28741
Fireye 60-3060
Fireye 61 2913
Fireye 61-3060
Fireye 61-3358
Fireye 61-4386