Con ARM, devi pensare a chiamare la convenzione poiché una funzione con più di quattro argomenti li farebbe versare per impilare. Lo trovo molto più sicuro da usare __Builtin_Frame_Address di GCC.
Built-in Function: void * __builtin_frame_address (unsigned int level)