mirror of
https://github.com/brmlab/edubrm.git
synced 2025-06-08 21:03:59 +02:00
48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
/*****************************************************************************
|
|
* compiler.h: Compiler-specific header file for NXP Family
|
|
* Microprocessors
|
|
*
|
|
* Copyright(C) 2009, NXP Semiconductor
|
|
* All rights reserved.
|
|
*
|
|
* History
|
|
* 2009.12.23 ver 1.00 Preliminary version, first Release
|
|
*
|
|
******************************************************************************/
|
|
#ifndef __COMPILER_H__
|
|
#define __COMPILER_H__
|
|
|
|
#include "LPC13xx.h" // Defines __ASM and __INLINE
|
|
|
|
#if !defined(__IAR__) && !defined(__KEIL__) && !defined(__CODERED__)
|
|
|
|
#if defined(__IAR_SYSTEMS_ICC__)
|
|
#define __IAR__
|
|
#endif
|
|
|
|
#if defined(__GNUC__)
|
|
#define __CODERED__
|
|
#endif
|
|
|
|
#if defined(__CC_ARM)
|
|
#define __KEIL__
|
|
#endif
|
|
|
|
#endif
|
|
/*
|
|
Various compiler declaration methods for packed structures:
|
|
GNU/IAR: typedef struct { blah blah blah } __attribute__((packed)) structName;
|
|
Keil: typedef __packed struct { blah blah blah } structName;
|
|
*/
|
|
#if defined(__GNUC__)
|
|
#define PACKED_PRE /**/
|
|
#define PACKED_POST __attribute__((packed))
|
|
#elif defined(__IAR_SYSTEMS_ICC__)
|
|
#define PACKED_PRE /**/
|
|
#define PACKED_POST __packed
|
|
#else /* Keil? */
|
|
#define PACKED_PRE __packed
|
|
#define PACKED_POST /**/
|
|
#endif
|
|
|
|
#endif /* __COMPILER_H__ */
|