Con ARM, debe pensar en llamar a la convención, ya que una función con más de cuatro argumentos los haría derramados para apilarse. Me parece mucho más seguro usar __Builtin_frame_address de GCC.
Built-in Function: void * __builtin_frame_address (unsigned int level)