3 * Purpose: Definitions common to all ARM Cortex M4 processors
\r
8 #ifndef _CPU_ARM_CM4_H
\r
9 #define _CPU_ARM_CM4_H
\r
13 /*ARM Cortex M4 implementation for interrupt priority shift*/
\r
14 #define ARM_INTERRUPT_LEVEL_BITS 4
\r
16 /***********************************************************************/
\r
17 // function prototypes for arm_cm4.c
\r
20 void write_vtor (int);
\r
21 void enable_irq (int);
\r
22 void disable_irq (int);
\r
23 void set_irq_priority (int, int);
\r
25 /***********************************************************************/
\r
26 /*!< Macro to enable all interrupts. */
\r
27 #define EnableInterrupts asm(" CPSIE i");
\r
29 /*!< Macro to disable all interrupts. */
\r
30 #define DisableInterrupts asm(" CPSID i");
\r
31 /***********************************************************************/
\r
62 /***********************************************************************/
\r
64 * The basic data types
\r
66 typedef unsigned char uint8; /* 8 bits */
\r
67 typedef unsigned short int uint16; /* 16 bits */
\r
68 typedef unsigned long int uint32; /* 32 bits */
\r
70 typedef char int8; /* 8 bits */
\r
71 typedef short int int16; /* 16 bits */
\r
72 typedef int int32; /* 32 bits */
\r
74 typedef volatile int8 vint8; /* 8 bits */
\r
75 typedef volatile int16 vint16; /* 16 bits */
\r
76 typedef volatile int32 vint32; /* 32 bits */
\r
78 typedef volatile uint8 vuint8; /* 8 bits */
\r
79 typedef volatile uint16 vuint16; /* 16 bits */
\r
80 typedef volatile uint32 vuint32; /* 32 bits */
\r
82 // function prototype for main function
\r
85 /***********************************************************************/
\r
86 #endif /* _CPU_ARM_CM4_H */
\r