ARM Architecture C语言寻址解析——
从U-Boot relocation所展开的探索(二)
从U-Boot relocation所展开的探索(二)
by蔡于清
ARMArchitecture C语言PIC寻址方式解析
承前文所述,可不可以产生一种可以运行在任意地址段的代码呢?可以,这种代码被称之为Position-IndependentCode,简称PIC(windows DLL,Linux ShareObject,这两者就是典型的PIC文件)。那么如何产生PIC呢?可以通过为编译器指定编译选项产生,比如:
arm-none-eabi-gcc -c -o -fpic main.o main.c
又比如:
arm-none-eabi-gcc -c -o -fpie main.o main.c
这样编译产生的目标文件包含了PIC所需要的信息, -fpic,-fpie是gcc的PIC编译选项。ld也有PIC连接选项