Pobierz lr wywołującego z podprogramu do zmiennej C - ramię
Mam funkcję C, która ma uzyskać wartość rejestru lr wywołującego w zmiennej lokalnej.
Wypróbowałem następujący kod:
volatile long lr;
asm(
"str %0, [sp, #4]\n" :
"=r", (lr)
);
Jednak nic to nie zmienia. Nie chodzi o to, że otrzymuję niewłaściwą wartość, tylko że wartość zmiennej lokalnej lr w ogóle się nie zmienia (zawiera śmieci).
Jakieś pomysły?
Dzięki!