连接地址
人生过半 2019-09-02 01:31:47 我想搞清楚连接地址的概念,把链接地址改为0xffff fffc,目的就是想看它溢出后的影响。这样编译后再烧写,发现led还是能点亮,好像毫无影响。然后我看了下反汇编代码,发现反汇编代码只有两行,第一行地址是0xffff fffc,第二行地址是0x0,Address 0x0 is out of bounds。这样怎么还会正常运行呢?盼指点迷津。
源程序如下(简单的点灯程序,arm是2440):
int main()
{
unsigned int *pGPFCON = (unsigned int *)0x56000050;
unsigned int *pGPFDAT = (unsigned int *)0x56000054;
*pGPFCON = 0x100;
*pGPFDAT = 0;
return 0;
}
makefile如下:
all:
arm-linux-gcc -c -o led.o led.c
arm-linux-gcc -c -o start.o start.S
arm-linux-ld -Ttext 0xfffffffc start.o led.o -o led.elf
arm-linux-objcopy -O binary -S led.elf led.bin
arm-linux-objdump -D led.elf > led.dis
clean:
rm *.bin *.o *.elf *.dis