2.11.9. __rt_heap_extend()

如果可能,此函数将返回一个要添加到堆中的新 8 字节对齐内存块。 如果重新实现了其他内存模型函数,则必须重新实现此函数。 rt_memory.s 中提供了一个不完整的原型实现。

用法

调用约定是普通 AAPCS。 在入口处,r0 是要添加的块的最小大小,r1 用于保存指向基址存储位置的指针。

缺省实现具有以下特征:

  • 返回的大小是以下任一值:

    • 至少是所请求大小的 8 字节倍数

    • 0,表示无法满足请求。

  • 返回的基址在 8 字节的边界上对齐。

  • 大小按字节计算。

  • 此函数仅受 AAPCS 约束的限制。

返回值

如果有足够的可用堆内存,缺省实现将扩展堆。 如果无法扩展,它将调用 __user_heap_extend()(如果已实现),请参阅__user_heap_extend()。 在出口处,r0 为获取的块的大小;如果无法获取任何块,则为 0。r1 在入口处指向的内存位置包含块的基址。

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