Compiler file for AVR32. More...
#include <cfg/arch.h>
Go to the source code of this file.
Defines | |
#define | __BIG_ENDIAN__ |
#define | CONST const |
#define | INLINE inline |
#define | PSTR(p) (p) |
#define | PRG_RDB(p) (*((const char *)(p))) |
#define | prog_char const char |
#define | PGM_P prog_char * |
#define | SIGNAL(x) __attribute__((__interrupt__)) void x(void) |
#define | RAMFUNC __attribute__ ((long_call, section (".ramfunc"))) |
#define | main NutAppMain |
#define | strlen_P(x) strlen((char *)(x)) |
#define | strcpy_P(x, y) strcpy(x,(char *)(y)) |
#define | strcmp_P(x, y) strcmp((char *)(x), (char *)(y)) |
#define | memcpy_P(x, y, z) memcpy(x, y, z) |
#define | _NOP() __asm__ __volatile__ ("nop") |
#define | outb(_reg, _val) (*((volatile unsigned char *)(_reg)) = (_val)) |
#define | outw(_reg, _val) (*((volatile unsigned short *)(_reg)) = (_val)) |
#define | outr(_reg, _val) (*((volatile unsigned long *)(_reg)) = (_val)) |
#define | inb(_reg) (*((volatile unsigned char *)(_reg))) |
#define | inw(_reg) (*((volatile unsigned short *)(_reg))) |
#define | inr(_reg) (*((volatile unsigned long *)(_reg))) |
#define | _BV(bit) (1 << (bit)) |
#define | _SFR_MEM8(addr) (addr) |
#define | _SFR_MEM16(addr) (addr) |
#define | Rd_bits(value, mask) ((value) & (mask)) |
Reads the bits of a value specified by a given bit-mask. | |
#define | Tst_bits(value, mask) (Rd_bits(value, mask) != 0) |
Tests the bits of a value specified by a given bit-mask. | |
#define | Get_system_register(sysreg) __builtin_mfsr(sysreg) |
Gets the value of the sysreg system register. | |
#define | Set_system_register(sysreg, value) __builtin_mtsr(sysreg, value) |
Sets the value of the sysreg system register to value. | |
#define | Is_global_interrupt_enabled() (!Tst_bits(Get_system_register(AVR32_SR), AVR32_SR_GM_MASK)) |
Tells whether interrupts are globally enabled. | |
#define | Disable_global_interrupt() ({__asm__ __volatile__ ("ssrf\t%0" : : "i" (AVR32_SR_GM_OFFSET));}) |
Disables interrupts globally. | |
#define | Enable_global_interrupt() ({__asm__ __volatile__ ("csrf\t%0" : : "i" (AVR32_SR_GM_OFFSET));}) |
Enables interrupts globally. | |
Variables | |
void * | __bss_end |
End of uninitialized data segment. Defined in the linker script. |
Compiler file for AVR32.
Copyright (C) 2001-2010 by egnite Software GmbH
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
For additional information see http://www.ethernut.de/
Portions Copyright Atmel Corporation, see the following note.
This file defines commonly used types and macros.
Definition in file avr32.h.
#define SIGNAL | ( | x | ) | __attribute__((__interrupt__)) void x(void) |
#define RAMFUNC __attribute__ ((long_call, section (".ramfunc"))) |
#define outb | ( | _reg, | |
_val | |||
) | (*((volatile unsigned char *)(_reg)) = (_val)) |
#define outw | ( | _reg, | |
_val | |||
) | (*((volatile unsigned short *)(_reg)) = (_val)) |
#define outr | ( | _reg, | |
_val | |||
) | (*((volatile unsigned long *)(_reg)) = (_val)) |
#define Rd_bits | ( | value, | |
mask | |||
) | ((value) & (mask)) |
#define Tst_bits | ( | value, | |
mask | |||
) | (Rd_bits(value, mask) != 0) |
#define Get_system_register | ( | sysreg | ) | __builtin_mfsr(sysreg) |
Gets the value of the sysreg system register.
sysreg | Address of the system register of which to get the value. |
Definition at line 194 of file avr32.h.
Referenced by NutRegisterTimer().
#define Set_system_register | ( | sysreg, | |
value | |||
) | __builtin_mtsr(sysreg, value) |
Sets the value of the sysreg system register to value.
sysreg | Address of the system register of which to set the value. |
value | Value to set the sysreg system register to. |
Definition at line 206 of file avr32.h.
Referenced by NutRegisterTimer().
#define Is_global_interrupt_enabled | ( | ) | (!Tst_bits(Get_system_register(AVR32_SR), AVR32_SR_GM_MASK)) |
Tells whether interrupts are globally enabled.
1
if interrupts are globally enabled, else 0
. Definition at line 215 of file avr32.h.
Referenced by pm_bod_disable_irq().
#define Disable_global_interrupt | ( | ) | ({__asm__ __volatile__ ("ssrf\t%0" : : "i" (AVR32_SR_GM_OFFSET));}) |
Disables interrupts globally.
Definition at line 220 of file avr32.h.
Referenced by pm_bod_disable_irq().
#define Enable_global_interrupt | ( | ) | ({__asm__ __volatile__ ("csrf\t%0" : : "i" (AVR32_SR_GM_OFFSET));}) |
Enables interrupts globally.
Definition at line 228 of file avr32.h.
Referenced by pm_bod_disable_irq().
void* __bss_end |
End of uninitialized data segment. Defined in the linker script.