| /* | |
| * File: arm_cm4.h | |
| * Purpose: Definitions common to all ARM Cortex M4 processors | |
| * | |
| * Notes: | |
| */ | |
| #ifndef _CPU_ARM_CM4_H | |
| #define _CPU_ARM_CM4_H | |
| #include "common.h" | |
| /*ARM Cortex M4 implementation for interrupt priority shift*/ | |
| #define ARM_INTERRUPT_LEVEL_BITS 4 | |
| /***********************************************************************/ | |
| // function prototypes for arm_cm4.c | |
| void stop (void); | |
| void wait (void); | |
| void write_vtor (int); | |
| void enable_irq (int); | |
| void disable_irq (int); | |
| void set_irq_priority (int, int); | |
| /***********************************************************************/ | |
| /*!< Macro to enable all interrupts. */ | |
| #define EnableInterrupts asm(" CPSIE i"); | |
| /*!< Macro to disable all interrupts. */ | |
| #define DisableInterrupts asm(" CPSID i"); | |
| /***********************************************************************/ | |
| /* | |
| * Misc. Defines | |
| */ | |
| #ifdef FALSE | |
| #undef FALSE | |
| #endif | |
| #define FALSE (0) | |
| #ifdef TRUE | |
| #undef TRUE | |
| #endif | |
| #define TRUE (1) | |
| #ifdef NULL | |
| #undef NULL | |
| #endif | |
| #define NULL (0) | |
| #ifdef ON | |
| #undef ON | |
| #endif | |
| #define ON (1) | |
| #ifdef OFF | |
| #undef OFF | |
| #endif | |
| #define OFF (0) | |
| /***********************************************************************/ | |
| /* | |
| * The basic data types | |
| */ | |
| typedef unsigned char uint8; /* 8 bits */ | |
| typedef unsigned short int uint16; /* 16 bits */ | |
| typedef unsigned long int uint32; /* 32 bits */ | |
| typedef char int8; /* 8 bits */ | |
| typedef short int int16; /* 16 bits */ | |
| typedef int int32; /* 32 bits */ | |
| typedef volatile int8 vint8; /* 8 bits */ | |
| typedef volatile int16 vint16; /* 16 bits */ | |
| typedef volatile int32 vint32; /* 32 bits */ | |
| typedef volatile uint8 vuint8; /* 8 bits */ | |
| typedef volatile uint16 vuint16; /* 16 bits */ | |
| typedef volatile uint32 vuint32; /* 32 bits */ | |
| // function prototype for main function | |
| void main(void); | |
| /***********************************************************************/ | |
| #endif /* _CPU_ARM_CM4_H */ | |