|
发表于 2009-10-30 15:28:48
|
显示全部楼层
我也遇到
Sourcery G++ Lite 2009q1-161 for ARM EABI
C代码:
void (*pFun)(void);
pFun= (void (*)(void))0x200B8;
pFun();
生成汇编:
40: pFun= (void (*)(void))0x200B8;
0x00017248 F64162FC MOVW r2,#0x1EFC
0x0001724C F2C10200 MOVT r2,#0x1000
0x00017250 F24003B8 MOVW r3,#0xB8
0x00017254 F2C00302 MOVT r3,#0x02
0x00017258 6013 STR r3,[r2,#0x00]
41: pFun();
0x0001725A F64163FC MOVW r3,#0x1EFC
0x0001725E F2C10300 MOVT r3,#0x1000
0x00017262 681B LDR r3,[r3,#0x00]
0x00017264 4798 BLX r3--------------------此处用了BLX,导致fault |
|