obter o lr do chamador da sub-rotina em C variável - braço
Eu tenho uma função C que é suposto obter o valor do registrador lr do chamador em uma variável local.
Eu tentei o seguinte código:
volatile long lr;
asm(
"str %0, [sp, #4]\n" :
"=r", (lr)
);
No entanto, isso não muda nada. Não é que eu receba o valor errado, é apenas que o valor da variável local lr não muda nada (contém lixo).
Alguma ideia?
Obrigado!