连接地址

人生过半 人生过半 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想搞清楚连接地址的概念,把链接地址改为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
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部