Re: QUERY : ARM mode inline instructions in C Thumb mode file?
- From: "gdisirio" <herpes@xxxxxx>
- Date: Wed, 27 Aug 2008 09:33:32 -0500
...
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
.
- References:
- Re: QUERY : ARM mode inline instructions in C Thumb mode file?
- From: gdisirio
- Re: QUERY : ARM mode inline instructions in C Thumb mode file?
- From: Wilco Dijkstra
- Re: QUERY : ARM mode inline instructions in C Thumb mode file?
- Prev by Date: Re: Affordable PCB Layout Software ???
- Next by Date: Re: QUERY : ARM mode inline instructions in C Thumb mode file?
- Previous by thread: Re: QUERY : ARM mode inline instructions in C Thumb mode file?
- Next by thread: Re: QUERY : ARM mode inline instructions in C Thumb mode file?
- Index(es):