2.11.5. __user_setup_stackheap()

__user_setup_stackheap() 按照与 __user_initial_stackheap() 相同的方式返回初始堆栈和堆的位置(请参阅__user_initial_stackheap())。 根据需要,可以重新实现其中的任一函数。

__user_setup_stackheap() 返回:

__user_initial_stackheap() 不同,__user_setup_stackheap() 用于如下系统:应用程序启动时使用已是正确的 sp (r13) 值,例如,Cortex-M3。 要使用 sp,请实现 __user_setup_stackheap() 以设置 r0r2r3(对于双区模型)并返回。 对于单区模型,仅设置 r0

调用 __user_setup_stackheap() 时,sp 的值与在其应用程序入口处的值相同。 如果该值无效,__user_setup_stackheap() 在使用任何堆栈之前必须更改 sp 的值。

使用 __user_setup_stackheap() 而不是 __user_initial_stackheap() 可减少代码大小,这是因为不需要设置临时堆栈。

Note

必须在汇编程序中重新实现 __user_setup_stackheap()

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0349AC
Non-Confidential