Re: QUERY : ARM mode inline instructions in C Thumb mode file?



...


The above example was only meant to make it compile correctly, I didn't
remove that "pop {r0}" either.

If you want to switch to arm mode and back to thumb mode then more
instructions are required:

void function_f( void )
{
asm volatile
(
".balign 4 \n\t"
"mov r0, pc \n\t"
"bx r0 \n\t"
".code 32 \n\t"
"mrs r0, cpsr \n\t"
"msr cpsr_c, r0 \n\t"
"add r0, pc, #1 \n\t"
"bx r0 \n\t"
".code 16 \n\t"
);
}

which generates:

function_f:
.balign 4
mov r0, pc // jumps into ARM mode
bx r0
.code 32
mrs r0, cpsr // ARM code starting here
msr cpsr_c, r0
add r0, pc, #1 // returns to thumb code
bx r0
.code 16
bx lr // thumb code continues here

This one should be complete.

regards,
Giovanni
---
ChibiOS/RT http://chibios.sourceforge.net
.