EmbDev.net

Forum: ARM programming with GCC/GNU tools Intrinsic functions by GCC for enabling and disabling intrpt


von Vinit B. (vinitbidkar)


Rate this post
useful
not useful
Controller used :         AT91SAM7X256 Atmel controller

Platform for development: GCC (YAGARTO)

Problem statement:        I am trying to port a code written for IAR to
GCC. IAR provides intrinisic functions like __enable_interrupt() and
__disable_interrupt() for enabling and disabling interrupt. Does GCC
have any intrinsic functions like what IAR has.

von Giovanni D. (gdisirio)


Rate this post
useful
not useful
Vinit Bidkar wrote:
> Controller used :         AT91SAM7X256 Atmel controller
>
> Platform for development: GCC (YAGARTO)
>
> Problem statement:        I am trying to port a code written for IAR to
> GCC. IAR provides intrinisic functions like __enable_interrupt() and
> __disable_interrupt() for enabling and disabling interrupt. Does GCC
> have any intrinsic functions like what IAR has.

You can use inline asm code, as example:

#define __disable_interrupt() asm volatile ("msr     CPSR_c, #0x9F")
#define __enable_interrupt() asm volatile ("msr     CPSR_c, #0x1F")

Note, the above code assumes you are running in system mode. You may
have to read the CPSR, change the I bit and then write it back to make
it perfectly general.

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

von Clifford S. (clifford)


Rate this post
useful
not useful

von Vinit B. (vinitbidkar)


Rate this post
useful
not useful
Clifford Slocombe wrote:
> See section 7 of this:
> http://www.state-machine.com/arm/Building_bare-metal_ARM_with_GNU.pdf

Thanks CLifford,

This helped a lot.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.