__user_initial_stackheap

自己写了个启动代码,又写了个程序,发现进入不了 main() 就 software interrupt,这是个死循环,
不知怎么回事,经过单步运行,发现进入 __main 后 又调用了一些函数才进入main()
之前有个    __user_initial_stackheap:

__user_initial_stackheap [0xe92d4000]   stmfd    r13!,{r14}
00000378 [0xe24dd014]   sub      r13,r13,#0x14
0000037c [0xe1a0100d]   mov      r1,r13
00000380 [0xe28d2004]   add      r2,r13,#4
00000384 [0xe5812000]   str      r2,[r1,#0]
00000388 [0xe3a00016]   mov      r0,#0x16
0000038c [0xef123456]   swi      0x123456

是它产生的 swi
__user_initial_stackheap   我重新实现过,好像没有起作用,仔细看了生成的 list 文件,发现里面有两
个 __user_initial_stackheap  我的那个是  Local Symbols,才明白我忘了 export 。 

export        __user_initial_stackheap
代替了系统的__user_initial_stackheap就一切OK了。

你可能感兴趣的:(嵌入式系统)