📄 compiler.h
字号:
/* ************************************************************************* */
/* DISCLAIMER: */
/* We (RENESAS TECHNOLOGY EUROPE) do not warrant that the Software is */
/* free from claims by a third party of copyright, patent, trademark, */
/* trade secret or any other intellectual property infringement. */
/* */
/* Under no circumstances are we liable for any of the following: */
/* */
/* 1. third-party claims against you for losses or damages; */
/* 2. loss of, or damage to, your records or data; or */
/* 3. economic consequential damages (including lost profits or */
/* savings) or incidental damages, even if we are informed of */
/* their possibility. */
/* */
/* We do not warrant uninterrupted or error free operation of the */
/* Software. We have no obligation to provide service, defect */
/* correction, or any maintenance for the Software. We have no */
/* obligation to supply any Software updates or enhancements to you */
/* even if such are or later become available. */
/* */
/* IF YOU DOWNLOAD OR USE THIS SOFTWARE YOU AGREE TO THESE TERMS. */
/* */
/* THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING THE */
/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */
/* PARTICULAR PURPOSE. */
/* ------------------------------------------------------------------------- */
/* Copyright (c) 2004 RENESAS TECHNOLOGY EUROPE All rights reserved. */
/* ------------------------------------------------------------------------- */
/* Project Name: */
/* File : compiler.h */
/* Description : Compiler related macros & defines */
/* Author : Juergen Himmelberg */
/* ------------------------------------------------------------------------- */
/* Supported : */
/* Compiler */
/* */
/* --------------------------------------------------------------------------*/
/* S O U R C E F O R M A T */
/* --------------------------------------------------------------------------*/
/* tab width 3 (tab at 3 6 9 ...) uses spaces instead of real tabs */
/* --------------------------------------------------------------------------*/
/* R E V I S I O N */
/* --------------------------------------------------------------------------*/
/* --------------------------------------------------------------------------*/
/* R E M A R K S */
/* --------------------------------------------------------------------------*/
/* */
/* ************************************************************************* */
#ifdef EXTERN
#undef EXTERN
#endif
#define _IAR_ICCM16C 1
#define _IAR_ICCM16C_V2 2
#define _IAR_ICCM80C 3
#define _IAR_ICCM32C 4
#define _RENESAS_NC30 5
#define _RENESAS_NC308 6
#define _RENESAS_CC32R 7
#define _TASKING_CM16C 8
#define _TASKING_C166 9
#define _IAR_ICCV850 10
#define _IAR_ICCHC12 11
#define _IAR_ICCARM7 12
#define _ARM_ADS 13
#define _OTHER 14
#ifdef NC30
#define _COMPILER _RENESAS_NC30
#else
#ifdef __IAR_SYSTEMS_ICC__
#if ((__TID__ >> 8) & 0x7F) ==28
#if __VER__ < 200
#define _COMPILER _IAR_ICCM16C
#else
#define _COMPILER _IAR_ICCM16C_V2
#endif
#elif ((__TID__ >> 8) & 0x7F)== 48
#define _COMPILER _IAR_ICCM32C
#elif ((__TID__ >> 8) & 0x7F)== 85
#define _COMPILER _IAR_ICCV850
#elif ((__TID__ >> 8) & 0x7F)== 33
#define _COMPILER _IAR_ICCHC12
#elif ((__TID__ >> 8) & 0x7F)== 79
#define _COMPILER _IAR_ICCARM7
#endif
#else
#ifdef _CM16C
#define _COMPILER _TASKING_CM16C
#else
#ifdef NC308
#define _COMPILER _RENESAS_NC308
#else
#ifdef _C166
#define _COMPILER _TASKING_C166
#else
#ifdef __arm
#define _COMPILER _ARM_ADS
#else
#ifdef __M32R__
#define _COMPILER _RENESAS_CC32R
#else
#define _COMPILER _OTHER
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#if _COMPILER == _IAR_ICCM16C
#define _INTERRUPT interrupt
#define _HW_INTERRUPT interrupt
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define _NEAR near
#define _FAR far
#define _HUGE huge
#define _CONST far const
#define _far far
#define _near near
#define _SSK_SAVE_FLG asm("PUSHC FLG")
#define _SSK_RESTORE_FLG asm("POPC FLG")
#include <intrm16c.h>
#include <intm16c.h>
#elif _COMPILER == _IAR_ICCM16C_V2
#define _INTERRUPT __interrupt
#define _HW_INTERRUPT __interrupt
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define _NEAR __near
#define _FAR __far
#define _HUGE __huge
#define _CONST __far const
#define _CONST_PTER __far * const
#define _far __far
#define _near __near
#define _SSK_SAVE_FLG asm("PUSHC FLG")
#define _SSK_RESTORE_FLG asm("POPC FLG")
#include <migration.h>
#include <intrinsics.h>
#elif _COMPILER == _IAR_ICCM32C
#define enable_interrupt() __enable_interrupt()
#define disable_interrupt() __disable_interrupt()
#define wait_for_interrupt() __wait_for_interrupt()
#define nop_instruction() __no_operation()
#define _INTERRUPT __interrupt
#define _HW_INTERRUPT __interrupt
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define _NEAR __near
#define _FAR __far
#define _HUGE __huge
#define _CONST __far const
#define _CONST_PTER __far * const
#define _far __far
#define _near __near
#define far __far
#define near __near
#define huge __huge
#define C_task __C_task
#define monitor __monitor
#define interrupt __interrupt
#define no_init __no_init
#define _SSK_SAVE_FLG asm("PUSHC FLG")
#define _SSK_RESTORE_FLG asm("POPC FLG")
#include <inm32c.h>
#elif _COMPILER == _RENESAS_NC30
#define _INTERRUPT
#define _HW_INTERRUPT
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define disable_interrupt() asm("FCLR I")
#define enable_interrupt() asm("FSET I")
#define wait_for_interrupt() asm("WAIT")
#define nop_instruction() asm("NOP")
#define break_instruction() asm("BRK")
#define und_instruction() asm("UND")
#define interrupt_on_overflow() asm("INTO")
#define software_interrupt(int_no) asm("INT int_no")
/*
long rmpa_instruction (short near *s1, short near *s2, unsigned short n);
short short_rmpa_instruction (signed char near *c1, signed char near *c2, unsigned short n);
void write_ipl (unsigned char val);
unsigned char read_ipl (void);
void software_interrupt (unsigned char int_no);
void set_interrupt_table(unsigned long);
short overflow_flag_value (void);
*/
#define _NEAR near
#define _FAR far
#define _HUGE huge
#define _CONST const
#define _SSK_SAVE_FLG asm("PUSHC FLG")
#define _SSK_RESTORE_FLG asm("POPC FLG")
#elif _COMPILER == _RENESAS_NC308
#define _INTERRUPT
#define _HW_INTERRUPT
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define disable_interrupt() asm("FCLR I")
#define enable_interrupt() asm("FSET I")
#define wait_for_interrupt() asm("WAIT")
#define nop_instruction() asm("NOP")
#define break_instruction() asm("BRK")
#define und_instruction() asm("UND")
#define interrupt_on_overflow() asm("INTO")
#define software_interrupt(int_no) asm("INT int_no")
/*
long rmpa_instruction (short near *s1, short near *s2, unsigned short n);
short short_rmpa_instruction (signed char near *c1, signed char near *c2, unsigned short n);
void write_ipl (unsigned char val);
unsigned char read_ipl (void);
void software_interrupt (unsigned char int_no);
void set_interrupt_table(unsigned long);
short overflow_flag_value (void);
*/
#define _NEAR near
#define _FAR far
#define _HUGE huge
#define _CONST const
#define _SSK_SAVE_FLG asm("PUSHC FLG")
#define _SSK_RESTORE_FLG asm("POPC FLG")
#elif _COMPILER == _RENESAS_CC32R
#define _INTERRUPT
#define _HW_INTERRUPT
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define disable_interrupt()
#define enable_interrupt()
#define wait_for_interrupt()
#define nop_instruction()
#define break_instruction()
#define und_instruction()
#define interrupt_on_overflow()
#define software_interrupt(int_no)
#define _NEAR
#define _FAR
#define _HUGE
#define _CONST const
#define far
#define near
#define asm(dummy)
#define _SSK_SAVE_FLG
#define _SSK_RESTORE_FLG
#elif _COMPILER == _TASKING_CM16C
#define _INTERRUPT _interrupt
#define _HW_INTERRUPT _hw_interrupt
#define _VECTOR_NO(no) (no)
#define _HW_VECTOR_NO(no) (no)
#define disable_interrupt() (_fclr(6))
#define enable_interrupt() (_fset(6))
#define wait_for_interrupt() (_wait())
#define nop_instruction() (_nop())
#define break_instruction() (_brk())
#define und_instruction() (_und())
#define interrupt_on_overflow() (_into())
#define software_interrupt(int_no) (_int(int_no))
#define _NEAR _near
#define _FAR _far
#define _HUGE _far
#define _CONST _far const
#define far _far
#define near _near
#define _SSK_SAVE_FLG _pushc(3)
#define _SSK_RESTORE_FLG _popc(3)
#define struct_byte unsigned int
#elif _COMPILER == _TASKING_C166
#define _INTERRUPT _interrupt
#define _HW_INTERRUPT _hw_interrupt
#define _VECTOR_NO(no) (no)
#define _HW_VECTOR_NO(no) (no)
#define disable_interrupt()
#define enable_interrupt()
#define wait_for_interrupt()
#define nop_instruction()
#define break_instruction()
#define und_instruction()
#define interrupt_on_overflow()
#define software_interrupt(int_no)
#define _NEAR _near
#define _FAR _far
#define _HUGE _far
#define _CONST _far const
#define far _far
#define near _near
#define _SSK_SAVE_FLG
#define _SSK_RESTORE_FLG
#define asm(parameter)
#define struct_byte unsigned int
#elif _COMPILER == _IAR_ICCV850
#define far
#define _far
#define __far
#define near
#define _near
#define __near
#define asm(parameter)
#elif _COMPILER == _IAR_ICCHC12
#define _INTERRUPT interrupt
#define _HW_INTERRUPT interrupt
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define _NEAR near
#define _FAR far
#define _HUGE huge
#define _CONST far const
#define _far far
#define _near near
#define far
#define near
#define asm(parameter)
#define _SSK_SAVE_FLG
#define _SSK_RESTORE_FLG
#elif _COMPILER == _IAR_ICCARM7
#define _INTERRUPT
#define _HW_INTERRUPT
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define disable_interrupt()
#define enable_interrupt()
#define wait_for_interrupt()
#define _SSK_SAVE_FLG
#define _SSK_RESTORE_FLG
#define _NEAR
#define _FAR
#define _HUGE
#define _CONST
#define far
#define near
#define _far
#define _near
#define asm(parameter)
#elif _COMPILER == _ARM_ADS
#define _INTERRUPT
#define _HW_INTERRUPT
#define _VECTOR_NO(no)
#define _HW_VECTOR_NO(no)
#define disable_interrupt()
#define enable_interrupt()
#define wait_for_interrupt()
#define _SSK_SAVE_FLG
#define _SSK_RESTORE_FLG
#define _NEAR
#define _FAR
#define _HUGE
#define _CONST
#define far
#define near
#define _far
#define _near
#define asm(parameter)
#define struct_byte unsigned int
#elif _COMPILER == _OTHER
#define disable_interrupt() asm("FCLR I")
#define enable_interrupt() asm("FSET I")
#endif
/* ------------------------------------------------------------------------- */
/* End of of Code */
/* ------------------------------------------------------------------------- */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -