/* STARTSINGLE_OF_MULTIPLE */
/*****************************************************************************
| Project Name: V E C T O R   -  Common module type definition header
|    File Name: v_def.h
|
|  Description: Declares types and definitions common to all
|               VECTOR CANbedded modules.
|
|               Note:
|               =====
|               that some hardware dependent settings are included in this file.
|               Never mix up files with same namings but intended for
|               other hardware platforms.
|
|
|-----------------------------------------------------------------------------
|               C O P Y R I G H T
|-----------------------------------------------------------------------------
| Copyright (c) 2025 by Vector Informatik GmbH.       All rights reserved.
|
| This software is copyright protected and proprietary
| to Vector Informatik GmbH. Vector Informatik GmbH
| grants to you only those rights as set out in the
| license conditions. All other rights remain with
| Vector Informatik GmbH.
|
|-----------------------------------------------------------------------------
|               R E V I S I O N   H I S T O R Y
|-----------------------------------------------------------------------------
| Date       Ver    Author  Description
| ---------  ----   ------  --------------------------------------------------
| 13-Mar-01  1.00    Hp     Creation
| 04-Apr-01  1.01    Ht     general rework
| 05-Apr-01  1.02    dH     added Fujitsu FFMC16LX
| 05-Apr-01  1.03    HH     added COMP_GHS_V85X
| 11-Apr-01  1.04    Et     added LIN components
| 23-Apr-01  1.05    Si     corrections for C_COMP_IAR_78K0
|                           lint comments added
| 29-Mai-01  1.06    Pl     added ARM7 STMICRO
| 22-Jun-01  1.07    Ht     added ANSI CANoe
| 03-Jul-01          Wr     added C_COMP_OKI_CC665S
| 12-Jul-01          Et     support combination of "old" CAN driver and "new" LIN driver
| 13-Jul-01  1.08    Ht     error check for supported systems and switches added
| 16-Jul-01          dH     added C_COMP_HEW_SH7055 / C_COMP_HEW_H8S
| 17-Aug-01  1.09    Et     deleted keywords __near and __far for C_COMP_FUJITSU_8L
| 21-Aug-01  1.10    Ht/Vg  added C_COMP_DIABDATA_PPC
| 25-Aug-01  1.11    Ml     added #pragma MESSAGE DISABLE C1106 for Hiware HC08 compiler
| 06-Sep-01  1.12    Ht/Vg  added C_COMP_GNU_ST9
| 11-Sep-01  1.13    Fr     added C_COMP_ANSI_TMS_470
| 21-Sep-01  1.14    Pl     added C_COMP_MCP18_PIC_INT
| 25-Sep-01  1.15    Vg     added C_COMP_MICROTEC_MC376 and C_COMP_TASKING_MC376
| 28-Sep-01  1.16    Hp     added C_COMP_GHS_TX39 and C_COMP_TOSHIBA_TLC900
| 23-Oct-01  1.17    Js     added C_COMP_DIABDATA_MCORE
| 23-Oct-01  1.18    dH     changed ..._SH705X to ..._SH705X
| 05-Nov-01  1.19    dH     added M32R
| 19-Nov-01  1.20    Ht     added C_COMP_xxx_XC16X
| 22-Nov-01  1.21    dH     added C_COMP_IAR_H8S
| 11-Nov-01  1.22    Fz     added C_COMP_MITSUBISHI_M32C/C_COMP_NEC_V85X
| 19-Dec-01  1.23    dH     changed Fujitsu FFMC16LX
| 28-Jan-02  1.24    Ml     00002160: added paging keywords for HC12
| 31-Jan-02  1.25    Pl     added C_COMP_KEIL_T89C51C
| 07-Mar-02  1.26    Vg/Rn  added C_COMP_METROWERKS_PPC
| 27-Mar-02  1.27    Fz     added C_COMP_IAR_V85X
| 09-Apr-02  1.28    Ht     addaption to LI 1.3
| 02-Apr-02  1.29    Ml     added C_COMP_METROWERKS_MGT5100
|                           added C_COMP_METROWERKS_DSP56F80X
| 13-May-02  1.30    LS     MEMORY_HUGE added for C_COMP_TASKING_C16X
| 21-May-02  1.31    Ml     canbittype for HC12 is now unsigned short
| 10-Jul-02  1.32    Ml     canbittype for HC12 changed to unsigned char
| 16-Jul-02  1.33a   Fz     canbittype for V850 changed to unsigend int
|                           _c_bits32 added
| 31-Jul-02          Ts     added C_COMP_HEW_SH70XX_HCAN2
| 31-Jul-02  1.33    Ht     _c_bits16 added for C_CPUTYPE_BITORDER_MSB2LSB
| 31-Jul-02  1.34    Si     pc-lint comments for 78K0 changed
| 02-Aug-02  1.33    Sf     00003192:  Memory qualifier for M16C changed
| 08-Aug-02  1.34    Zw     ESCAN00003456  added STmicro ST7 (beCAN) / Hiware
| 18-Aug-02          Pet    ESCAN00003530  delete keyword near for HC08
| 06-Sep-02  1.35    Zw     00003688: MEMORY_NEAR defined to nothing for ST7_beCAN
| 09-Sep-02  1.36    Bs     controller OKI MSM9225B (C_COMP_GHS_ARM7TM) added (needed for FBL)
| 10-Sep-02  1.37    Ds     added C_COMP_COSMIC_ST7_BECAN
|                           and   C_COMP_HIWARE_ST7_BECAN
| 13-Sep-02  1.38    Ht     rework the module
| 17-Sep-02  1.39    Stu    add the C_COMP_NEC_78K0
| 17-Sep-02  1.40    Vg     ESCAN00003614 added __declspec() to place const
|                           variables into ROM for Metrowerks
| 18-Sep-02  1.41    Stu    added C_COMP_NEC_78K0
| 07-Oct-02  1.42    dH     added C_COMP_GAIO_SH705X
| 11-Oct-02  1.43    dH     added C_COMP_FUJITSU_16LX_HL
| 14-Oct-02  1.44    Ml     changed vbittype for MGT5100 into unsigned short
| 14-Oct-02  1.45    Stu    changed vbittype for 78k0 into unsigned char
| 18-Oct-02  1.46    Pl     added C_COMP_TASKING_ST10_CCAN
|                           added C_COMP_ARM_ST30_CCAN
| 30-Oct-02  1.47    Ml     added C_COMP_ARM_470 and C_COMP_TI_470
| 06-Nov-02  1.48    Wr     added C_COMP_NATIONAL_CR16
| 07-Nov-02  1.49    RAP    added C_COMP_DIABDATA_MPC823
|                    RAP    added C_COMP_GHS_STARFISH
| 14-Nov-02  1.50    An     corrected the banking defines for Cosmic and Hiware
| 27-Nov-02  1.50    Pl     added C_COMP_FUJITSU_FR50
| 02-Dec-02  1.51    Si     MEMORY_NEAR changed for C_COMP_NEC_78K0
| 11-Dec-02          Pet    added C_COMP_IAR_CEVF
| 18-Dec-02  1.52    Si     added C_COMP_NEC_78K0
| 04-Jan-03          Et     added memory qualifier for C_COMP_IAR_CEVF
| 22-Jan-03          Ap     added C_COMP_ARM_EASYCAN
| 28-Jan-03  1.53    Pl     added C_COMP_KEIL_ST10_CCAN
|                           delete C_COMP_ARM_ARM7STM
| 03-Apr-04  1.54    To     added C_COMP_METROWERKS_DSP5683X
|                    ZW     canbittype for CEVG is now unsigned char
|                    Hp     Add MEMORY_HUGE for XC16x
|                    Fz     added  C_COMP_IAR_CR16 and C_COMP_NATIONAL_CR16 changed
|                    Ml     added  C_COMP_TI_TMS320
| 2003-05-13 1.60    Ht     support V_MEMROM0
| 2003-05-14 1.61    Tri    added V_MEMROM0 definition for MGT5100
| 2003-05-15 1.62    Pl     added C_COMP_FUJITSU_FR60_CCAN
| 2003-05-20 1.63    WM     added near/far memory defines for C_COMP_HIWARE_12
| 2003-06-11 1.64    CB     MEMORY_HUGE added for C_COMP_TASKING_ST10_CCAN
| 2003-06-18 1.65    Bir    added C_COMP_MICROCHIP_DSPIC30
| 2003-07-08 1.66    Bir    no local lint command
| 2003-08-15 1.67    Rr     changed MEMORY_FAR for M32C
| 2003-08-18 1.68    BWR    added support for MAC710X
| 2003-09-02 1.69    BWR    added support for MC332 with external Intel 82527
| 2003-09-09 1.70    Bir    added C_COMP_TASKING_TRICORE_MULTICAN & C_COMP_GNU_TRICORE_MULTICAN
| 2003-10-30 1.71    RAP    added C_COMP_MICROCHIP_PIC18
| 2003-11-13 2.00    Ht     memory qualifier changed to new definition
| 2004-01-08 2.01    BWR    added support for MPC55XX
| 2004-01-16 2.02    Ml     added cast macros
| 2004-01-22 2.03    dH     added C_COMP_HEW_SH2_HCAN1 and C_COMP_HEW_H8S_HCAN1
| 2004-02-13 2.04    WM     Added banking support for C_COMP_IAR_12
| 2004-02-18 2.05    RAP    Update for C_COMP_MICROCHIP_PIC18
| 2004-03-12 2.06    Ml     changed canbittype for TMS470
| 2004-03-13 2.07    dH     added C_COMP_HEW_H8TINY
| 2004-04-20 2.08    dH     added C_COMP_HEW_H8SX_HCAN1
| 2004-04-08 2.09    Rna    Memoryclassifier V_MEMROM0 and MEMORY_ROM for Metrowerks PPC changed
| 2004-05-14 2.10    Ms     added Release Version define
|                           added include for vstdlib.h
| 2004-05-18 2.11    Ml     changed plattform check to work in any case (NO_ELSE)
|                    Ml     added V_NULL
| 2004-06-17 2.12    Ms     changed C_COMP_SUPPORTED_PLATTFORM -> V_COMP_SUPPORTED_PLATTFORM
| 2004-06-26 2.13    RAP    added C_COMP_GHS_SJA2020
| 2004-06-30 2.14    Ml     added C_COMP_COSMIC_MCS12X_MSCAN12
| 2004-08-17 2.15    Pl     Memoryclassifier V_MEMROM0/1/2 for the C_COMP_TOSHIBA_TLC900 changed
| 2004-08-31 2.16    Ml     changed bitfieldtype for MCS12X
| 2004-09-08 2.17    RAP    changed vbittype for C_COMP_GHS_SJA2020
| 2004-09-12 2.18    BWR    added C_COMP_GHS_PPC
| 2004-09-20 2.19    Ces    added C_COMP_GHS_ST30_CCAN
| 2004-09-27 2.20    Ms     -ESCAN00009636: Naming Conventions
| 2004-09-28 2.21    Bir    changed bitfieldtype for TriCore MultiCAN
| 2004-09-30 2.22    Ht     Review
| 2004-10-06 2.23    Ml     Added C_COMP_MTRWRKS_MCS12X_MSCAN12
| 2004-10-27 2.24    Ml     changed V_ENABLE_VSTDLIB -> VGEN_ENABLE_VSTDLIB
| 2004-10-29 2.25    Pl     Added C_COMP_GHS_TX19
| 2004-11-05 2.26    Ml     Added C_COMP_COSMIC_MCS12X_MSCAN12 and C_COMP_COSMIC_MCS12_MSCAN12
| 2004-11-08 2.27    Et     support compiler option -fNP (C_COMP_MITSUBISHI_M32C)
| 2004-11-10 2.28    Ml     Added compatibility for VStdLib
| 2004-11-15 2.29    dH     new memoryclassifier for C_COMP_FUJITSU_16LX/C_COMP_FUJITSU_16LX_HL
| 2004-11-15 2.30    Ms     ESCAN00010228: Support C_COMP specific V_NULL definition
| 2004-11-19 2.31    Ml     bitfields for TMS470 are now int
|                    Ths    ESCAN00010435: Due to compatibility V_DEF_VERSION added
| 2005-01-31 2.32    Ml     Added C_COMP_IAR_TMS430_SCCHECC
| 2005-02-09 2.33    Ht     support V_NULL for C_COMP_KEIL_C5X5C
| 2005-03-10 2.34    Ces    Memory qualifier MEMORY_SADDR and MEMORY_NEAR for IAR 78K0 compiler
| 2005-03-22 2.35    Pl     support V_NULL for C_COMP_TASKING_ST10_CCAN
| 2005-03-22 2.36    Ces    support C_COMP_IAR_78K0_AFCAN
|                           support V_NULL for Tasking C16x/ST10, Mitsubishi M16C, IAR 78K0,
|                           Metrowerks DSP5683x and GreenHills ST30
| 2005-03-24 2.37    Krt    Set cast macros for M32C controller, to avoid compiler warnings
|                    Bir    support V_NULL for C_COMP_TASKING_C16X, C_COMP_TASKING_XC16X, C_COMP_GNU_TRICORE_MULTICAN
|                    Ces    MEMORY_NEAR corrections for IAR 78K0 AFCAN
| 2005-06-17 2.38    Ht     remove duplicated compiler switch
|                    dH     added C_COMP_HEW_SH2_RCAN
|                    Pl     added C_COMP_GNU_ST10_CCAN
|                    Ds     Added support for ADI Blackfin (BF5xx)
|                    Ml     Added QNX platforms
|                    Fz     MEMORY_HUGE changed for V85X IAR compiler in case tiny memory model
|                    Ht     default definition of NULL
| 2005-06-20 2.39    BWR    Added support for MAC7100 IAR compiler
|                    dH     changed bittype for C_COMP_HEW_SH2_RCAN to unsigned char
| 2005-08-24 2.40    Rna    position for NULL definitions moved to prevent redefinitions for HC12 cosmic (string.h)
| 2005-10-05 2.41    Ces    adaptions for IAR compiler M16C
| 2005-10-14 2.42    Fn     added C_COMP_IAR_AVR_CANARY
|                    Ces    corrections for C_COMP_IAR_M16C
|                    Ces    added C_COMP_IAR_M32C
|                    Ces    added V_MEMROM3 for C_COMP_MITSUBISHI_M16C
| 2005-10-25 2.43    Ces    IAR M32C: MEMORY_ROM is always far const
| 2005-12-02 2.44    dH     added C_COMP_HEW_H8S_RCAN
|                    Fn     added C_COMP_MICROCHIP_PIC18 for V_NULL
|                    Ht     V_COMP_SUPPORTED_PLATTFORM changed to V_DEF_SUPPORTED_PLATFORM
|                    Pl     added C_COMP_MATSUSHITA_MN103S_CCAN
|                    Svh    added C_COMP_TOSHIBA_TLCS870
|                    Ces    changed compiler version check of IAR M16C and IAR M32C
| 2005-12-20 2.45    Ml     Added C_COMP_METROWERKS_MGT5X00
|                    Ces    changed MEMORY_NORMAL for IAR M16C and IAR M32C
| 2006-01-27 2.46    Ml     ESCAN00014816: Added cast defines for MCS12x with comsic
|                    Ml     00015045: Added support for constants in global pages
|                    Ml     Added C_COMP_MTRWRKS_MPC5X00
|                    Svh    Added C_COMP_ARM_ADUC703X
| 2006-02-08 2.47    Pl     Added C_COMP_IAR_ML67Q25XX_CCAN
| 2006-02-09         Ml     Changed check for XGate compiler
| 2006-02-10 2.48    Ces    Added #define V_NULL for MITSUBISHI M32C and MITSUBISHI M32R
| 2006-02-20 2.49    Ml     Changes for dependency builder to accept XGate compiler specific preprocessor
| 2006-03-28 2.50    Ard    Added C_COMP_ARM_OMAP
|                    Pl     Added C_COMP_TOSHIBA_TLCS900
|                    Svh    Added C_COMP_HPINFOTECH_AVR_CANARY
| 2006-04-27 2.51    dH     added C_COMP_MATSUSHITA_MN101E_CCAN
|                    Ap     added C_COMP_HITECH_PIC18
|                    Fn     modifications for C_COMP_MICROCHIP_PIC18
|                    Ces    Added C_COMP_GHS_TX49 and C_COMP_NEC_78K0_AFCAN
| 2006-05-02 2.52    Ces    Change MEMORY_NEAR and MEMORY_SADDR for C_COMP_NEC_78K0_AFCAN
|                    Svh    Added C_COMP_IAR_ADUC703X
| 2006-05-19 2.53    Ces    Change MEMORY_NEAR for C_COMP_NEC_78K0_AFCAN
|                    Ces    Change define V_NULL for C_COMP_MITSUBISHI_M32R
| 2006-08-03 2.54    Her    Added type cast for C_COMP_: COSMIC_08/NEC_78K0_AFCAN/COSMIC_MCS12X_MSCAN12
|                    Fn     Added C_COMP_MICROCHIP_DSPIC33
|                    Ap     Added C_COMP_MTRWRKS_MCS08_MSCAN and C_COMP_COSMIC_MCS08_MSCAN
|                    BWR    Added C_COMP_GAIO_MPC55XX
|                    Pl     Added C_COMP_FUJITSU_16FX_CCAN
| 2006-08-04 2.55    Ces    Added C_COMP_GHS_LPC2XXX
| 2006-08-09 2.56    Svh    Added V_MEMRAM1_NEAR for C_COMP_NEC_78K0
| 2006-08-13 2.57    Ml     Changed bitfield type for C_COMP_COSMIC_MCS08_MSCAN
|                    Pl     Added C_COMP_ARM_AVCCORE1_CCAN
| 2006-08-30 2.58    Wr     Added C_COMP_GNU_VR55XX_AFCAN
|            2.58    Ml     Added C_COMP_DIABDATA_MPC5X00_MSCAN
| 2006-09-22 2.59    swk    Added C_COMP_KEIL_ST10_CCAN
|                    Ml     Changed bitfield type for C_COMP_COSMIC_MCS08_MSCAN back to vuint8
| 2006-10-23 2.60    BWR    Added C_COMP_GNU_MICROBLAZE_LOGICORECAN
|                    Ard    Added C_COMP_GHS_MAC710X
| 2006-10-23 2.61    Bir    Added C_COMP_TASKING_XC2000_MULTICAN
| 2006-11-14         Ml     Added function near/far qualifier for platform MCS12X
| 2006-11-20         BWR    Added C_COMP_METROWERKS_MPC55XX_FLEXCAN
|                           Added C_COMP_DIABDATA_MCORE_FLEXCAN
| 2006-11-20         Bir    changes for C_COMP_TASKING_XC2000_MULTICAN
| 2006-12-14         Pl     Added C_COMP_TI_TMS470_DCAN
| 2007-01-10         Bir    changes for C_COMP_TASKING_XC2000_MULTICAN
| 2007-01-11         Ces    Added C_COMP_IAR_MCS12_MSCAN12
| 2007-02-01 2.62    Svh    Added C_COMP_FUJITSU_8FX
| 2007-02-19 2.63    Ces    Added C_COMP_GHS_SAF7780_PELICAN
|                    Ces    Changed MEMORY_NORMAL for C_COMP_MITSUBISHI_M32C
| 2007-06-21 2.64    Ces    Changed MEMORY_NORMAL for C_COMP_MITSUBISHI_M16C
|                    Fn     Added C_COMP_IAR_R32C
|                    BWR    Added C_COMP_DIABDATA_MCF_FLEXCAN
|                    Awh    Added C_COMP_KEIL_XC16X
|                    Ou     Changed vbittype for C_COMP_MTRWRKS_MCS12X_MSCAN12 to unsigned char, additionally disabled warning C1106 for this compiler (see #pragma MESSAGE DISABLE C1106)
| 2007-09-07 2.65    Ou     Changed back vbittype for C_COMP_MTRWRKS_MCS12X_MSCAN12 to unsigned int
|                    Ard    Added C_COMP_GHS_TMS470
| 2007-09-28 2.66    Fn     Added C_COMP_COSMIC_ST79_BECAN3
|                    Ces    Added V_MEMROMx_NEAR and V_MEMROMx_FAR for C_COMP_IAR_M16C
|                           Added V_MEMROMx_NEAR and V_MEMROMx_FAR for C_COMP_IAR_M32C
|                           Use predefined compiler macros __VX__ and _C166 for C_COMP_TASKING_XC2000_MULTICAN
| 2007-10-24 2.67    Fn     Changed C_COMP_COSMIC_ST79_BECAN3 to C_COMP_COSMIC_STM8A_BECAN3
|                    Fn     Added C_COMP_RENESAS_R32C
| 2007-11-09 2.68    Wr     Added C_COMP_KEIL_SLC8051
| 2007-11-14 2.69    Svh    Added C_COMP_KEIL_ADUC703X
| 2007-11-27 2.70    Fn     Adapted rom qualifier for: C_COMP_RENESAS_R32C, C_COMP_IAR_R32C and C_COMP_MICROCHIP_DSPIC33
|                    Ml     Added memory mapping defines for C_COMP_MTRWRKS_MCS12X_MSCAN12
| 2007-12-03 2.71    Ard    Added C_COMP_MICROSOFT_TMS320ARM
| 2008-01-14 2.72    Ou     Added memory mapping defines for C_COMP_MTRWRKS_MCS08_MSCAN and C_COMP_COSMIC_MCS08_MSCAN
|                    Ces    Added C_COMP_GHS_MPC55XX and C_COMP_GHS_MPC55XX_FLEXCAN2
|                           Added C_COMP_GAIO_MPC55XX_FLEXCAN2
|                           Added C_COMP_DIABDATA_MPC55XX_FLEXCAN2
|                           Changed memory qualifier for IAR M16C and IAR M32C
| 2008-02-19 2.73    Ces    Corrected V_NULL for DIABDATA_MPC55XX
| 2008-03-05 2.74    Pl     Added C_COMP_GNU_NIOS_DCAN
| 2008-03-12         Fn     Added V_MEMROM2_FAR and V_MEMROM2_NEAR for C_COMP_IAR_AVR_CANARY
| 2008-04-18         Ap     Added C_COMP_GNU_AVR_CANARY
| 2008-05-05 2.75    Bir    Possibility to change V_MEMROM2 for XC2000 (user config)
| 2008-05-05 2.76    Ou     Change the behavior for V_MEMROM3 on MCS12X (relevant just for Cosmic compiler, global constants feature)
| 2008-05-06 2.77    Ces    Changed V_MEMRAM2_FAR for IAR compiler M16C/R8C
|                           Added P_MEM_ROM for IAR compiler M16C
|                    Ap     Added C_COMP_IAR_78K0R
| 2008-07-24 2.78    Ht     Memory qualifier for C_COMP_COSMIC_STM8A_BECAN3 added
| 2008-08-27 2.79    Ces    Adapt memory qualifier for C_COMP_MITSUBISHI_M16C and C_COMP_MITSUBISHI_M32C
| 2008-09-18 2.80    Ard    Added C_COMP_QCC_TMS320ARM
| 2008-10-15 2.81    Bir    Added C_COMP_GHS_TRICORE_MULTICAN
|                    BWR    Adapt memory qualifier for C_COMP_GNU_MPC5X00_MSCAN
| 2008-11-14 2.82    Pl     Added C_COMP_GNU_MB86R0X_CCAN
|                    Ou     V_MEMROMx have the default behavior for C_COMP_MICROCHIP_DSPIC33
| 2008-11-21 2.83    Ces    Added C_COMP_GNU_IMX_FLEXCAN2
|                           Added V_MEMROM2 for C_COMP_MITSUBISHI_M32C
| 2009-01-19 2.84    Ou     Change the behavior of data pointer buffers in order to meet the global data expectations in case of C_COMP_COSMIC_MCS12X_MSCAN12
|                           Change the default behavior for V_MEMRAM1_FAR and V_MEMRAM3_FAR in case of C_COMP_COSMIC_MCS12X_MSCAN12
|                    Tvi    Added C_COMP_IAR_M16C_RCAN2 and C_COMP_RENESAS_M16C_RCAN2
| 2009-01-23 2.85    Ou     Adjust the behavior of V_MEMRAM1_FAR and V_MEMRAM3_FAR in case of C_COMP_COSMIC_MCS12X_MSCAN12 in order to have an unified behavior
| 2009-01-29 2.86    Pl     For the TI_TMS470_DCAN changed vuint32 from unsigned long to unsigned int and vsint32 int from signed long to signed int
|                           Added C_COMP_GNU_ST30_CCAN
| 2009-02-18         Ou     Added C_COMP_MTRWRKS_MPC5X00_MSCAN
| 2009-03-19 2.87    Kk     Added C_COMP_GAIO_SH2_RCAN
|                    Pl     Some V_MEMROM and V_MEMRAM defines for the C_COMP_FUJITSU_16FX_CCAN added ( only in the case VGEN_ENABLE_CANFBL is defined )
| 2009-03-25 2.88    Aj     Added C_COMP_ARM_TCC800X_CCAN
| 2009-07-08 2.89    Bir    Added Compiler abstraction like ASR
|                    Ou     Added C_COMP_KEIL_PSOC3_CANMODULE3
|                    Ces    Added C_COMP_METROWERKS_MPC55XX and C_COMP_METROWERKS_MPC55XX_FLEXCAN2
|                    Pl     For the TI_TMS470_DCAN changed back vuint32 from unsigned int to unsigned long and vsint32 from signed int to signed long
|                           Reason is to be compatible with TI_TMS470 and with Platform_Types.h
| 2009-07-08 2.90    Bir    change Compiler abstraction "V_DEF_P2SFR_CAN"
|                    Ou     Rework the V_MEMROMx and V_MEMRAMx for C_COMP_KEIL_PSOC3_CANMODULE3
|                    Seg    Added C_COMP_ARM_TMS470_DCAN
|                    Ou     Added C_COMP_QCC_MPC5X00_MSCAN
| 2009-09-03 2.91    Bir    Added C_COMP_IAR_AVR32_CANIF
|                    Kk     Added C_COMP_RENESAS_SH4_RCAN
| 2009-09-04 2.92    Tvi    Added C_COMP_GHS_V85X_FCN
| 2009-10-06 2.93    Tvi    Added C_COMP_GHS_SH4_RCAN2
| 2009-10-16 2.94    Ou,Ht  Fixed V_NULL for C_COMP_KEIL_PSOC3_CANMODULE3, C_COMP_KEIL_C5X5C and
|                           C_COMP_KEIL_SLC8051
| 2009-10-27 2.95    Ou     Map the reentrant keyword to C_API_3 in case of C_COMP_KEIL_PSOC3_CANMODULE3
| 2009-10-30 2.96    Rna    Support C_COMP_ARM_STM32_BXCAN
| 2009-11-10 2.97    Ht     ESCAN00039030: Support V_MEMRAM2_FAR for XC2000 Tasking
|                    Seg    Support C_COMP_GNU_TX49
| 2009-11-20 2.98    Tvi    ESCAN00039020: Renesas: support "-fansi" option
|                    Ou     Fixed the standard memory qualifier definitions (vuintx/ vsintx) in combination with CAN-Driver for ASR
| 2009-11-23 2.98.01 Ht     correct COMMON_VDEF_RELEASE_VERSION
| 2010-02-03 2.99    Tvi    ESCAN00039371: [M16C/R8C with RENESAS]: Warnings about incompatible pointer types for Compiler versions >= V5.45
|                    Ht     Support C_COMP_KEIL_SJA2020
| 2010-02-03 3.00.00 Ht     change version number
| 2010-03-02 3.01.00 Ou     Rework the V_MEMROMx and V_MEMRAMx for C_COMP_IAR_78K0R
|                    vadaba Added V_MEMROM0 to place const variables into ROM for C_COMP_METROWERKS_MPC55XX_FLEXCAN2
| 2010-03-10 3.02.00 Tvi    ESCAN00041468: [SH4Rcan2 w. GHS] "-Ospace" leads to a runtime exception due to incorrect bitfield access
|                    Kk     Added C_COMP_QCC_SH4_RCAN
|                    Kk     Added C_COMP_IAR_SH2_RCAN
| 2010-05-12 3.03.00 Pl     Added C_COMP_QCC_MB86R0X_CCAN
|                    Ces    Support C_COMP_GNU_MPC55XX and C_COMP_GNU_MPC55XX_FLEXCAN2
| 2010-06-09 3.04.00 Tvi    Added C_COMP_NEC_78K0R
| 2010-07-01 3.05.00 Ht     Added support of MEMORY_HUGE for C_COMP_KEIL_C16X
| 2010-07-12 3.06.00 Ces    Support C_COMP_GHS_IMX_FLEXCAN2
|                    Tvi    ESCAN00044064: [R32C with RENESAS]: Warnings about incompatible pointer types for Compiler versions >= V1.02 r00
| 2010-09-06 3.07.00 Ces    ESCAN00044378: added check for V_NULL definiton if default is not used
|                    Tvi    Misra warning due to wrong characters in history removed
|                    Kk     Added C_COMP_ARM_TRITON_AFCAN
|                    Ap     Added C_PROCESSOR_R8C_XX to distinguish different derivatives
| 2010-10-01 3.08.00 Tvi    Added C_COMP_RENESAS_V85X_FCN
| 2010-10-17 3.09.00 Bir    Added C_COMP_KEIL_XC800
| 2010-12-13 3.10.00 Tvi    Added C_COMP_RENESAS_78K0R
| 2011-01-28 3.11.00 Ht     M16C Compiler switch for Organi added
|                           Added C_COMP_GHS_SH2_RCAN
|                    Tvi    Changed V_MEMROM1 for C_COMP_RENESAS_78K0R when memory model MEDIUM is used
|                    Rna    Support TMS320(canbedded) with Geny
| 2011-02-25 3.12.00 Ces    Added C_COMP_ARM_TX03_TXCAN
|                    Pl     Added C_COMP_FUJITSU_FR81_CCAN
|                    Tkr    Added C_COMP_GHS_SH2_RCAN2A
| 2011-04-08 3.13.00 Ou     Added C_COMP_IAR_MCS12X_MSCAN12
|                    Tvi    Support C_PROCESSOR_R8C again (removed in 3.07.00)
|                    Aj     Added C_COMP_RENESAS_V85X_AFCAN
| 2011-05-20 3.14.00 Tvi    Added C_COMP_IAR_V85X_FCN
|                    Was    Added C_COMP_TI_TMS320C64X_HECCSCC
| 2011-05-31 3.15.00 Aj     Added C_COMP_GNU_SH2_RCAN
| 2011-07-11 3.16.00 Ht     replace V_NONE with V_STORAGE_NONE in case of V_CPU_TMS320ARM
| 2011-08-08 3.17.00 Pl     Added C_COMP_GHS_FCR4_CCAN
|                    Eta    Added C_COMP_IAR_ADUCM33X
| 2011-09-26 3.18.00 Aj     Added C_COMP_HEW_SH2_RCAN2
| 2011-11-24 3.19.00 Aj     Added C_COMP_ARM_AVNA_CCAN
| 2012-01-12 3.20.00 Rse    Added C_COMP_QCC_IMX_FLEXCAN2, C_COMP_GNU_IMX_FLEXCAN3, C_COMP_QCC_IMX_FLEXCAN3, C_COMP_GHS_IMX_FLEXCAN3
| 2012-02-15 3.21.00 Aj     Added C_COMP_KEIL_FM3_CCAN
|                    Ht     Header changed
|                           remove C_COMP_MCP18_PIC_INT (old driver version)
|                    Tvi    Added C_COMP_RENESAS_SH4_RCAN2
| 2012-02-24 3.22.00 Tvi    Change VEMROM2_NEAR to __near for C_COMP_IAR_78K0R
| 2012-03-23 3.23.00 Ht     Add C_COMP_IAR_RL78_AFCAN
| 2012-03-30 3.24.00 bir    Add CAN_STATIC define for AutoSar4 compatible LL
| 2012-04-18 3.25.00 Seu    Added C_COMP_TASKING_XC800_MULTICAN
| 2012-06-18 3.26.00 Aj     Set vbittype=char for Sh4/Rcan2 in order to support littleendian
| 2012-08-01 3.27.00 Was    Added C_COMP_KEIL_XC2000_MULTICAN
| 2012-08-22 3.28.00 Pl     Added C_COMP_KEIL_SLC8051_CCAN, integration of C_COMP_KEIL_ switches
|                    QPs    Added C_COMP_RENESAS_RL78_AFCAN
| 2012-09-20 3.29.00 Rse    Added C_COMP_GNU_MPC5700_MCAN
| 2012-09-24 3.30.00 Tkr    Added C_COMP_GHS_RH850_RSCAN, C_COMP_HEW_SH2_RSCAN and C_COMP_GHS_SH2_RSCAN
| 2012-10-08 3.30.01 Was    ESCAN00061961: Compiler error: Using of V_MEMROM2_FAR and V_MEMROM2_NEAR leads to an compile error (Keil compiler/ XC2000)
| 2012-11-06 3.31.00 Ht     ESCAN00062762: Remove function memory qualifier for 78K0R and RL78
| 2012-11-08 3.32.00 Pl     Added C_COMP_TI_TMS320ARM_DCAN
| 2012-12-12 3.33.00 Pl     Added C_COMP_QCC_TMS320ARM_DCAN
| 2012-12-18 3.34.00 Rna    Added C_COMP_IAR_STM32_BXCAN
|                    Bmo    Added C_COMP_KEIL_TLE986X
| 2013-03-06 3.35.00 Rse    Added C_COMP_GHS_MPC5700_FLEXCAN3, C_COMP_DIABDATA_MPC5700_FLEXCAN3
|                    Rna    VUINTx_CAST for STM8A with Cosmic added
| 2013-03-26 3.36.00 Tkr    Added C_COMP_RENESAS_RL78_RSCAN
|                    Ht     improve RL78 and 78K0R
| 2013-04-02 3.37.00 Was    Added V_COMP_COSMIC_MCS12Z
| 2013-06-11 3.38.00 Ht     Replace C_COMP_xxx_MPC5700_yyy with V_COMP_xxx_MPC5700
|                           Replace C_COMP_xxx_IMX_yyyy with V_COMP_xxx_IMX
|                           Replace C_COMP_GHS_RH850_RSCAN with V_COMP_GHS_RH850
|                           Replace canbittype by vbittype in this file -> no change of API
|                    Was    Support IAR HCS12 Compiler Version 3.x
| 2013-06-21 3.38.01 Ht     Remove comment
| 2013-07-02 3.39.00 Tkr    Replace C_COMP_IAR_RL78_AFCAN with V_COMP_IAR_RL78
|                    Tkr    merge and adapt RL78 and 78K0R memory qualifier definitions for IAR compiler
|                           Replace C_COMP_RENESAS_RL78_xxx with V_COMP_RENESAS_RL78
| 2013-08-20 3.40.00 Pl     Added V_COMP_ARM_STA8088
|                    Tkr    Added V_COMP_DIABDATA_RH850
|                    Rse    Added V_COMP_GNU_VYBRID
| 2014-04-11 3.41.00 Rse    Added V_COMP_GHS_VYBRID
|                    Was    Added V_COMP_ARM_ZYNQ7000
|                    Rse    Added V_COMP_MICROSOFT_IMX
|                    Rse    Added V_COMP_GHS_IMX
|                    Rse    Added V_COMP_ARM_VYBRID
|                    QPs    Added C_COMP_GNU_STM32_BXCAN
|                    Rna    Added V_COMP_DIAB_TRICORE
| 2014-04-29 3.42.00 Rse    Added V_COMP_IAR_VYBRID
|                    Tkr    Added V_COMP_IAR_RH850
| 2014-06-06 3.43.00 Zam    Added V_COMP_GNU_TMS320ARM
|                    Was    Added V_COMP_FREESCALE_MCS12Z
| 2014-07-25 3.44.00 Tkr    Added V_COMP_RENESAS_RH850
|                    Uce    Added V_COMP_RENESAS_RCARSH4
| 2014-09-03 3.45.00 Ap     Added V_COMP_KEIL_ZSSC
|                    Ht     adapt V_NULL definition for KEIL_FM3, KEIL_SJA2020, KEIL_ZSSC
| 2014-12-01 3.46.00 Pl     Added V_COMP_GNU_ACCORDO2
| 2014-12-17 3.47.00 CEl    Added V_COMP_ARM_RZ
| 2015-02-25 3.48.00 Her    Added V_COMP_GHS_TRAVEO
| 2015-05-12 3.49.00 Eta    Added V_COMP_KEIL_ADUCM33X
| 2015-06-11 3.50.00 Zam    Added V_COMP_TI_TMS320
| 2015-09-30 3.51.00 Pl     Added V_COMP_GHS_S32
|                    Tkr    Added Renesas CC-RL compiler for RL78
| 2015-10-12 3.52.00 Eta    Added V_COMP_GNU_SAM
| 2015-10-19 3.53.00 Bmo    Added V_COMP_IAR_STM8A
| 2016-01-21 3.54.00 Aj     Added V_COMP_KEIL_SAM
|                    Eta    Added V_COMP_IAR_SAM
| 2016-03-21 3.55.00 Ht     default definition of LOCAL_INLINE added
|                    Her    Added V_COMP_GNU_SPC5800, V_COMP_GHS_SPC5800
| 2016-04-27 3.56.00 Was    LOCAL_INLINE definition for MSCAN based platforms added
| 2016-04-27 3.57.00 Rse    LOCAL_INLINE definition for MPC5700 with DIABDATA
| 2016-06-07 3.58.00 Hzo    Added V_COMP_IAR_TMPR4XX
| 2016-07-01 3.59.00 Her    Added V_COMP_DIABDATA_SPC5800
|                    Neb    Added V_COMP_IAR_S32
| 2016-08-22 3.60.00 Neb    Added V_COMP_GHS_SAM
| 2016-11-16 3.61.00 Tkr    Added LOCAL_INLINE definition for RH850 and RL78
| 2016-12-21 3.62.00 Jan    Added V_COMP_GNU_CSRATLAS7
| 2017-02-21 3.63.00 Rse    Added V_COMP_GHS_TCC802X
|                    Ap     Added V_COMP_KEIL_HVC4223
| 2017-05-08 3.64.00 Jgl    Added V_COMP_QCC_INTEL64CPU and 64 Bit vuintx
| 2017-07-17 3.65.00 Ap     Added V_COMP_GHS_SPC5800
|                    Bmo    Added V_COMP_GNU_PSOC4, V_COMP_IAR_CC26X0
| 2017-08-08 3.65.01 Bmo    Corrected version
| 2017-09-29 3.66.00 Aj     Added V_COMP_ARM_TCC802X
| 2017-12-08 3.67.00 Ap     Added C_COMP_IAR_TLE986X
| 2018-01-15 3.68.00 Rli    Added V_COMP_GNU_S32
|                    Bmo    Added V_COMP_IAR_RX
| 2018-02-28 3.69.00 Ap     Added Microchip XC8 compiler support
| 2018-03-02 3.70.00 Rli    LOCAL_INLINE definition for FlexCAN3 and FlexCAN2 based derivatives with GHS, GNU, IAR added
| 2018-08-17 3.71.00 Ht     Added V_COMP_GNU_BCM8910X
| 2018-09-24 3.72.00 Hum    Added V_COMP_IAR_TRAVEO2
| 2018-09-28 3.72.01 Hum    Added ALM filter attribute for V_COMP_IAR_TRAVEO2
| 2019-03-04 3.73.00 Ap     Added V_COMP_IAR_MKW35
|                    Hum    Added LOCAL_INLINE definition for V_COMP_IAR_SAM
| 2019-03-04 3.74.00 Bns    Added LOCAL_INLINE definition for TRICORE
|                    Jan    Added V_COMP_GHS_RCARARM
|                    Jan    Change LOCAL_INLINE definition for V_COMP_GHS_TRAVEO
| 2019-07-16 3.75.00 Ht     Added V_COMP_GHS_TRAVEO2
|                    Hum    Added V_COMP_TI_AWR1
| 2019-09-02 3.76.00 Bmo    Added V_COMP_GHS_KEA
| 2019-11-27 3.77.00 Bmo    Added V_COMP_ARM_TLE986X
| 2019-12-04 3.78.00 Pl     Added V_COMP_GNU_TCC800X
|                    Ht     replace C_COMP_ARM_TCC800X_CCAN with V_COMP_ARM_TCC800X
| 2019-12-20 3.79.00 Ht     replace C_COMP_ARM_STM32_BXCAN with V_COMP_ARM_STM32
|                           replace C_COMP_IAR_STM32_BXCAN with V_COMP_IAR_STM32
|                           replace C_COMP_GNU_STM32_BXCAN with V_COMP_GNU_STM32
| 2020-01-22 3.80.00 Pl     Added V_COMP_IAR_TRAVEO
|                    Ht     Replace C_COMP_GNU_TRICORE_MULTICAN by V_COMP_GNU_TRICORE
|                           Replace C_COMP_TASKING_TRICORE_MULTICAN by V_COMP_TASKING_TRICORE
|                           Replace C_COMP_GHS_TRICORE_MULTICAN by V_COMP_GHS_TRICORE
| 2020-02-21 3.81.00 Ap     Added V_COMP_GNU_AVR
| 2020-03-05 3.82.00 TMo    Added V_COMP_CADENCE_GW5
|                    Ht     Removed support for C_COMP_HIWARE_08, C_COMP_HIWARE_12, C_COMP_HIWARE_ST7, C_COMP_HIWARE_ST7_BECAN
|                    Ht     Removed support for C_COMP_NEC_78K0_AFCAN, C_COMP_NEC_78K0, C_COMP_NEC_78K0R
|                    Ht     Removed support for C_COMP_TOSHIBA_TLC900, C_COMP_TOSHIBA_TLCS900, C_COMP_TOSHIBA_TLCS870
|                    Ht     Removed support for C_COMP_HITECH_PIC18
| 2020-03-11 3.83.00 Bmo    Added V_COMP_IAR_PSOC4
| 2020-05-05 3.84.00 Ap     Added V_COMP_NXP_DSP56800EX
| 2020-06-15 3.85.00 Pl     Added V_COMP_GNU_TCC802X
| 2020-07-23 3.86.00 Ap     Added V_COMP_MICROCHIP_SAM
| 2020-09-30 3.87.00 Naj    Added V_COMP_TI_JACINTO7
| 2020-11-04 3.88.00 TMo    Added V_COMP_ARM6_RCARARM
|                    TMo    Added V_COMP_GNU_XMC4
|                    TMo    Added V_COMP_GNU_TRAVEO2
| 2021-04-19 3.89.00 Ht     Added V_COMP_TI_AWRGEN2
|                    Ap     Added V_COMP_GNU_TLE986X
|                    Ap     Added V_COMP_MICROCHIP_AVR
|                    Ap     Added V_COMP_ARM6_TLE986X
| 2021-05-26 3.90.00 Ht     Added V_COMP_IAR_IMX
|                    JDn    Added V_COMP_LLVMDIAB_ZYNQ7000
|                    JDn    Added V_COMP_GHS_ZYNQ7000
|                    JDn    Added V_COMP_GNU_ZYNQ7000
| 2021-07-07 3.91.00 Ht     Added V_COMP_IAR_TAYRONA
|                    Ht     Added V_COMP_IAR_KW4
|                    Ht     Added V_COMP_LLVMDIAB_AWRGEN2
|                    Ht     Added V_COMP_GHS_JACINTO7
|                    Ht     Replace C_COMP_TI_TMS320ARM_DCAN with V_COMP_TI_TMS320ARM
| 2021-10-06 3.92.00 Ht     Added V_COMP_ARM6_BCM8910X
|                    Ht     Added V_COMP_LLVMTI_JACINTO7
| 2022-03-11 3.93.00 Ht     CANCORE-1117: Added V_COMP_LLVMTI_AWRGEN2
|                    Ht     Added V_COMP_GNU_LINUXFORARM32
|                    Ht     CANCORE-1125: Added V_COMP_ARM_ACCORDO2, V_COMP_ARM_ACCORDO2
| 2022-07-06 3.94.00 Ht     CANCORE-1377: Added V_COMP_GNU_LPC54
|                    Ht     CANCORE-1375: Added V_COMP_GHS_SAF85
| 2022-10-13 3.95.00 Ap     CANCORE-1555: Added V_COMP_ARM6_S32
| 2022-11-17 3.96.00 Bmo    Added V_COMP_IAR_MSPM0
| 2023-02-14 3.97.00 Ht     CANCORE-1818: Added V_COMP_GHS_TCC70XX
| 2023-03-03 3.98.00 Ap     Added V_COMP_LLVMTI_MSPM0
| 2023-03-31 4.00.00 Ht     CANCORE-1848: Added V_COMP_IAR_ASX
|                    Ht     Added V_COMP_TI_MSPM0
|                    Ht     Improvements related to compiler for ARM platforms
|                    Ht     Removed: C_COMP_IAR_78K0_AFCAN, C_COMP_IAR_78K0
| 2023-08-10 4.01.00 Ht     Removed: C_COMP_COSMIC_08, C_COMP_COSMIC_ST7, C_COMP_COSMIC_ST7_BECAN
|                           Removed: C_COMP_GNU_ST9, C_COMP_FUJITSU_8FX, C_COMP_FUJITSU_8L
|                           Removed: C_COMP_MICROCHIP_DSPIC30, C_COMP_ARM_MAC710X, C_COMP_IAR_MAC710X, C_COMP_GHS_MAC710X
|                           Removed: C_COMP_IAR_CEVF, C_COMP_IAR_M32C, C_COMP_MITSUBISHI_M32C
|                           Removed: C_COMP_KEIL_C5X5C, C_COMP_KEIL_C16X, C_COMP_TASKING_C16X,
|                           Removed: C_COMP_MICROTEC_MC376, C_COMP_TASKING_MC376, C_COMP_GHS_ARM7TM
|                           Removed: C_COMP_MITSUBISHI_M32R, C_COMP_GAIO_M32R, C_COMP_OKI_CC665S
|                           Removed: C_COMP_GHS_CEVG, C_COMP_GHS_STARFISH, C_COMP_IAR_CR16, C_COMP_NATIONAL_CR16
|                           Removed: C_COMP_ARM_EASYCAN, C_COMP_MICROTEC_332_82527, C_COMP_DIABDATA_MPC823
|                           Removed: C_COMP_TI_OMAP, C_COMP_ARM_OMAP, C_COMP_HEW_H8TINY, C_COMP_FUJITSU_FR50
|                           Removed: C_COMP_ARM_ST30_CCAN, C_COMP_GHS_ST30_CCAN, C_COMP_GNU_ST30_CCAN
|                           Removed: C_COMP_FUJITSU_FR60_CCAN, C_COMP_HEW_SH70XX_HCAN2, C_COMP_QCC_SH70XX_HCAN2
|                           Removed: C_COMP_HEW_SH2_HCAN1, C_COMP_DIABDATA_MCF_FLEXCAN
|                           Removed: C_COMP_METROWERKS_MGT5100, C_COMP_METROWERKS_MGT5X00, C_COMP_HPINFOTECH_AVR_CANARY
|                           Removed: C_COMP_MTRWRKS_MPC5X00_MSCAN, C_COMP_MTRWRKS_MPC5X00, C_COMP_QCC_MGT5X00_MSCAN12
|                           Removed: C_COMP_GNU_VR55XX_AFCAN, C_COMP_KEIL_SJA2020, C_COMP_GHS_SJA2020
|                           Removed: C_COMP_METROWERKS_DSP56F80X, C_COMP_IAR_TMS430_SCCHECC, C_COMP_ARM_TRITON_AFCAN
|                           CANCORE-2110: Added V_COMP_ARM6_NCJ29D6
|                    Pwf    Added V_COMP_ARM6_MSPM0
| 2023-09-15 4.02.00 Ht     CANCORE-2179: Added V_COMP_LLVMTI_SITARA, V_COMP_LLVMDIAB_SITARA, V_COMP_TI_SITARA
| 2023-10-26 4.03.00 Ht     CANCORE-2223: Added V_COMP_ARM6_RCARGEN4ARM
| 2023-11-30 4.04.00 Bmo    LIN-988: Added V_COMP_ARM6_E53306
| 2024-01-10 4.05.00 Ht     Added V_COMP_GNU_KW4
|                           CANCORE-2401: Added V_COMP_TI_TM4C
| 2024-03-12 4.06.00 Ht     CANCORE-2520: Added V_COMP_QCC_QNXFORARM64
| 2024-05-22 4.07.00 Ht     CANCORE-2616: Added V_COMP_GHS_QPF51
|                           CANCORE-2663: Added V_COMP_LLVMDIAB_S32
| 2024-06-25 4.07.01 Kja    CANCORE-2765: Added V_MEMRAM2_NEAR as user definable for RL78+IAR compiler
| 2024-07-08 4.08.00 Ht     CANCORE-2770: Added V_COMP_ARM6_VAYYAR720X
|                    Kja    CANCORE-2800: Added V_MEMRAM1_NEAR as user definable for RL78+Renesas compiler
| 2024-12-04 4.09.00 Ht     CANCORE-2959: Added V_COMP_IAR_PIC32C, V_COMP_MICROCHIP_PIC32C, V_COMP_GNU_PIC32C, V_COMP_GHS_PIC32C
|                    Ht     CANCORE-2961: Added V_COMP_GHS_VISCONTI5
|                    Ht     CANCORE-3019: Added V_COMP_LLVMHIGHTEC_STELLARSR6
|                    Ht     CANCORE-3012: Added V_COMP_GHS_SAF90
| 2025-01-08 4.10.00 Ht     CANCORE-3053: Added V_COMP_IAR_HC32A4
|                           CANCORE-3074: Added V_COMP_LLVMHIGHTEC_TRICORE
| 2025-03-04 4.11.00 Ht     CANCORE-3217: Added V_COMP_IAR_XHSCXC2
| 2025-03-10 4.12.00 Ht     CANCORE-3250: Added V_COMP_LLVMDIAB_SAF85
| 2025-08-08 4.13.00 Ht     CANCORE-3320: Added V_COMP_LLVMTI_TMS320ARM
|                           CANCORE-3544: Added Generic ARM implementation (MSR4 FBL usecase)
|                    Pwf    LIN-1436: Added V_COMP_GNU_MSPM0
|                           LIN-1438: Added V_COMP_ARM6_A89XXX, V_COMP_GNU_A89XXX, V_COMP_IAR_A89XXX
| 2025-10-22 4.14.00 Ht     CANCORE-3649: Added V_COMP_GHS_RCARGEN5ARM, V_COMP_IAR_RCARGEN5ARM
|                           CANCORE-3260: Added V_COMP_LLVMTI_AWRGEN2LOW, V_COMP_LLVMDIAB_AWRGEN2LOW, V_COMP_TI_AWRGEN2LOW
|****************************************************************************/



#ifndef  V_DEF_H
# define  V_DEF_H

/***************************************************************************/
/* Version                  (abcd: Main version=ab, Sub Version=cd )       */
/***************************************************************************/
# define COMMON_VDEF_VERSION            0x0414
# define COMMON_VDEF_RELEASE_VERSION    0x00

/* compatibility for IL versions < 3.52 */
# define V_DEF_VERSION                  COMMON_VDEF_VERSION


/***************************************************************************/
/* Supported Systems                                                       */
/***************************************************************************/



/* compatibility define due to older implementations */



/* ARM32 with ARM6 compiler */

/* ARM32 with GHS compiler */

/* ARM32 with GNU compiler */

/* ARM32 with IAR compiler */

/* ARM32 with Microchip compiler */

/* ARM32 with LLVMDIAB compiler */

/* ARM32 with LLVMHighTec compiler */

/* ARM32 with LLVMTI compiler */
# if defined( V_COMP_LLVMTI_SITARA )
#  define V_DEF_COMP_LLVMTI_ARM
#  define V_DEF_SUPPORTED_PLATFORM
# endif

/* ARM32 with TI compiler */


/* all other supported plattform compiler combination */


# if !defined V_DEF_SUPPORTED_PLATFORM
#  error "Plattform unknown or V_COMP_xxx_yyy not defined"
# endif





/***************************************************************************/
/***************************************************************************/
/****  General and platform dependent type definitions  ********************/
/***************************************************************************/
/***************************************************************************/
/*--- standard memory qualifier definition --------------------------------*/

/* 8-Bit qualifier */
# if !defined( vuint8 ) /* ASR compatibility */
typedef unsigned char  vuint8;
# endif
# define canuint8 vuint8

# if !defined( vsint8 ) /* ASR compatibility */
typedef signed char    vsint8;
# endif
# define cansint8 vsint8

/* 16-Bit qualifier */
# if !defined( vuint16 ) /* ASR compatibility */
typedef unsigned short vuint16;
# endif
# define canuint16 vuint16

# if !defined( vsint16 ) /* ASR compatibility */
typedef signed short   vsint16;
# endif
# define cansint16 vsint16


/* 32-Bit qualifier */
# if !defined( vuint32 ) /* ASR compatibility */
typedef unsigned long  vuint32;
# endif
# define canuint32 vuint32

# if !defined( vsint32 ) /* ASR compatibility */
typedef signed long    vsint32;
# endif
# define cansint32 vsint32



typedef unsigned char *TxDataPtr;              /* ptr to transmission data buffer */
typedef unsigned char *RxDataPtr;              /* ptr to receiving data buffer    */

/***************************************************************************/
/*  Defines                                                                */
/***************************************************************************/


/***************************************************************************/
/***************************************************************************/
/****  Hardware/Compiler dependent settings   ******************************/
/***************************************************************************/
/***************************************************************************/

/*  data type according to the CPU type */
# if defined( C_CPUTYPE_8BIT )
/* 8-Bit qualifier */
#  ifndef vuintx
#   define vuintx vuint8
#  endif
#  ifndef vsintx
#   define vsintx vsint8
#  endif
# else
#  if defined( C_CPUTYPE_16BIT )
/* 16-Bit qualifier */
#   ifndef vuintx
#    define vuintx vuint16
#   endif
#   ifndef vsintx
#    define vsintx vsint16
#   endif
#  else
#   if defined( C_CPUTYPE_32BIT )
/* 32-Bit qualifier */
#    ifndef vuintx
#     define vuintx vuint32
#    endif
#    ifndef vsintx
#     define vsintx vsint32
#    endif
#   else
#    if defined( C_CPUTYPE_64BIT )
/* 64-Bit qualifier */
#     ifndef vuintx
#      define vuintx vuint32
#     endif
#     ifndef vsintx
#      define vsintx vsint32
#     endif
#    endif
#   endif
#  endif
# endif

/* qualifier for bitfield definition */
typedef unsigned int     vbittype;
# define canbittype      vbittype



# if defined( C_SUPPORT_MIXED_CAN_LIN )
/* support combination of "old" CAN driver and "new" LIN driver */
# else
/* Structure for bit accessed memory.           */
/* The bit-order is hardware/compiler dependent */
#  if defined( C_CPUTYPE_BITORDER_LSB2MSB )
struct _c_bits8
{
  vbittype  b0:1;  /* LSB-Bits (lower adr!) */
  vbittype  b1:1;
  vbittype  b2:1;
  vbittype  b3:1;
  vbittype  b4:1;
  vbittype  b5:1;
  vbittype  b6:1;
  vbittype  b7:1;  /* MSB-Bits (higher address) unused */
 };

struct _c_bits16
{
  vbittype  b0:1;  /* lower adr */
  vbittype  b1:1;
  vbittype  b2:1;
  vbittype  b3:1;
  vbittype  b4:1;
  vbittype  b5:1;
  vbittype  b6:1;
  vbittype  b7:1;

  vbittype  b10:1; /* higher adr */
  vbittype  b11:1;
  vbittype  b12:1;
  vbittype  b13:1;
  vbittype  b14:1;
  vbittype  b15:1;
  vbittype  b16:1;
  vbittype  b17:1;
};

struct _c_bits32
{
  vbittype  b0:1;  /* lower adr */
  vbittype  b1:1;
  vbittype  b2:1;
  vbittype  b3:1;
  vbittype  b4:1;
  vbittype  b5:1;
  vbittype  b6:1;
  vbittype  b7:1;

  vbittype  b10:1; /* mid low adr */
  vbittype  b11:1;
  vbittype  b12:1;
  vbittype  b13:1;
  vbittype  b14:1;
  vbittype  b15:1;
  vbittype  b16:1;
  vbittype  b17:1;

  vbittype  b20:1; /* mid high adr */
  vbittype  b21:1;
  vbittype  b22:1;
  vbittype  b23:1;
  vbittype  b24:1;
  vbittype  b25:1;
  vbittype  b26:1;
  vbittype  b27:1;

  vbittype  b30:1; /* higher adr */
  vbittype  b31:1;
  vbittype  b32:1;
  vbittype  b33:1;
  vbittype  b34:1;
  vbittype  b35:1;
  vbittype  b36:1;
  vbittype  b37:1;
};

#  else /* MSB2LSB */
#   if defined( C_CPUTYPE_BITORDER_MSB2LSB )
struct _c_bits8
{
  vbittype  b7:1;  /* MSB-Bits (Higher addr!) */
  vbittype  b6:1;
  vbittype  b5:1;
  vbittype  b4:1;
  vbittype  b3:1;
  vbittype  b2:1;
  vbittype  b1:1;
  vbittype  b0:1;  /* LSB-Bits (higher address) unused */
};

struct _c_bits16
{
  vbittype  b7:1;   /* lower adr */
  vbittype  b6:1;
  vbittype  b5:1;
  vbittype  b4:1;
  vbittype  b3:1;
  vbittype  b2:1;
  vbittype  b1:1;
  vbittype  b0:1;

  vbittype  b17:1;  /* higher adr */
  vbittype  b16:1;
  vbittype  b15:1;
  vbittype  b14:1;
  vbittype  b13:1;
  vbittype  b12:1;
  vbittype  b11:1;
  vbittype  b10:1;
};


struct _c_bits32
{
  vbittype  b7:1;   /* lower adr */
  vbittype  b6:1;
  vbittype  b5:1;
  vbittype  b4:1;
  vbittype  b3:1;
  vbittype  b2:1;
  vbittype  b1:1;
  vbittype  b0:1;

  vbittype  b17:1;  /* mid low adr */
  vbittype  b16:1;
  vbittype  b15:1;
  vbittype  b14:1;
  vbittype  b13:1;
  vbittype  b12:1;
  vbittype  b11:1;
  vbittype  b10:1;

  vbittype  b27:1;  /* mid high adr */
  vbittype  b26:1;
  vbittype  b25:1;
  vbittype  b24:1;
  vbittype  b23:1;
  vbittype  b22:1;
  vbittype  b21:1;
  vbittype  b20:1;

  vbittype  b37:1;  /* higher adr */
  vbittype  b36:1;
  vbittype  b35:1;
  vbittype  b34:1;
  vbittype  b33:1;
  vbittype  b32:1;
  vbittype  b31:1;
  vbittype  b30:1;
};
#   else
#    error "Bitorder unknown: C_CPUTYPE_BITORDER_MSB2LSB or C_CPUTYPE_BITORDER_LSB2MSB has to be defined"
#   endif /* C_CPUTYPE_BITORDER_MSB2LSB */
#  endif  /* C_CPUTYPE_BITORDER_LSB2MSB */
# endif




/***************************************************************************/
/* Memory qualifier                                                        */
/***************************************************************************/






# if defined ( VGEN_ENABLE_CANFBL )
# endif

















# ifndef MEMORY_HUGE
#   define MEMORY_HUGE               /* no entry                         */
# endif





/* *********************** default defines - used to store permanent data **************************************** */
# ifndef V_MEMROM0
#  define V_MEMROM0                  /* addition qualifier data access in ROM  */
# endif

# ifndef V_MEMROM1_NEAR
#  define V_MEMROM1_NEAR             /* fast data access in ROM */
# endif

# ifndef V_MEMROM1
#  define V_MEMROM1                 /* fast data access in ROM */
# endif

# ifndef V_MEMROM1_FAR
#  define V_MEMROM1_FAR             /* slow addressing mode in ROM */
# endif


# ifndef MEMORY_ROM_NEAR
#  ifndef V_MEMROM2_NEAR
#   define V_MEMROM2_NEAR   const    /* fast data access in ROM */
#  endif
/* compatibility for modules which use old definition of memory qualifer */
#  define MEMORY_ROM_NEAR   V_MEMROM2_NEAR
# else
#  define V_MEMROM2_NEAR    MEMORY_ROM_NEAR
# endif

# ifndef MEMORY_ROM
#  ifndef V_MEMROM2
#   define V_MEMROM2        const    /* fast data access in ROM */
#  endif
/* compatibility for modules which use old definition of memory qualifer */
#  define MEMORY_ROM        V_MEMROM2
# else
#  define V_MEMROM2         MEMORY_ROM
# endif

# ifndef MEMORY_ROM_FAR
#  ifndef V_MEMROM2_FAR
#   define V_MEMROM2_FAR    const    /* slow addressing mode in ROM */
#  endif
/* compatibility for modules which use old definition of memory qualifer */
#  define MEMORY_ROM_FAR    V_MEMROM2_FAR
# else
#  define V_MEMROM2_FAR     MEMORY_ROM_FAR
# endif

# ifndef V_MEMROM3
#  define V_MEMROM3
# endif


/* *********************** default defines - used to store volatile data **************************************** */
# ifndef V_MEMRAM0
#  define V_MEMRAM0                  /* addition qualifier data access in RAM  */
# endif

# ifndef V_MEMRAM1_NEAR
#  define V_MEMRAM1_NEAR             /* fast data access in RAM */
# endif

# ifndef V_MEMRAM1
#  define V_MEMRAM1                 /* fast data access in RAM */
# endif

# ifndef V_MEMRAM1_FAR
#  define V_MEMRAM1_FAR             /* slow addressing mode in RAM */
# endif


# ifndef MEMORY_NEAR
#  ifndef V_MEMRAM2_NEAR
#   define V_MEMRAM2_NEAR           /* fast data access in RAM */
#  endif
/* compatibility for modules which use old definition of memory qualifer */
#  define MEMORY_NEAR   V_MEMRAM2_NEAR
# else
#  define V_MEMRAM2_NEAR    MEMORY_NEAR
# endif

# ifndef MEMORY_NORMAL
#  ifndef V_MEMRAM2
#   define V_MEMRAM2                 /* fast data access in RAM */
#  endif
/* compatibility for modules which use old definition of memory qualifer */
#  define MEMORY_NORMAL   V_MEMRAM2
# else
#  define V_MEMRAM2           MEMORY_NORMAL
# endif

# ifndef MEMORY_FAR
#  ifndef V_MEMRAM2_FAR
#   define V_MEMRAM2_FAR            /* slow addressing mode in RAM */
#  endif
/* compatibility for modules which use old definition of memory qualifer */
#  define MEMORY_FAR    V_MEMRAM2_FAR
# else
#  define V_MEMRAM2_FAR     MEMORY_FAR
# endif

# ifndef V_MEMRAM3_NEAR
#  define V_MEMRAM3_NEAR             /* fast data access in RAM */
# endif

# ifndef V_MEMRAM3
#  define V_MEMRAM3                 /* fast data access in RAM */
# endif

# ifndef V_MEMRAM3_FAR
#  define V_MEMRAM3_FAR             /* slow addressing mode in RAM */
# endif


/* *********************** default defines - to cast results **************************************************** */
# if !defined(VUINT8_CAST)
#  define VUINT8_CAST
# endif
# if !defined(VSINT8_CAST)
#  define VSINT8_CAST
# endif
# if !defined(VUINT16_CAST)
#  define VUINT16_CAST
# endif
# if !defined(VSINT16_CAST)
#  define VSINT16_CAST
# endif
# if !defined(CANBITTYPE_CAST)
#  define CANBITTYPE_CAST
# endif
# if !defined(CANSINTCPUTYPE_CAST)
#  define CANSINTCPUTYPE_CAST
# endif
# if !defined(CANUINTCPUTYPE_CAST)
#  define CANUINTCPUTYPE_CAST
# endif


/***************************************************************************/
/* Local Inline                                                            */
/***************************************************************************/


# if defined( V_DEF_COMP_GHS_ARM )               || \
     defined( V_DEF_COMP_IAR_ARM )
#  if !defined(V_ENABLE_CAN_ASR_ABSTRACTION) && !defined(V_ENABLE_VSTDLIB_ASR_ABSTRACTION)
#   if !defined(LOCAL_INLINE)
#    define LOCAL_INLINE       static inline
#   endif
#  endif
# endif
# if defined( V_DEF_COMP_GNU_ARM )          || \
     defined( V_DEF_COMP_MICROCHIP_ARM )    || \
     defined( V_DEF_COMP_LLVMDIAB_ARM )     || \
     defined( V_DEF_COMP_LLVMHIGHTEC_ARM )  || \
     defined( V_DEF_COMP_LLVMTI_ARM )
#  if !defined(V_ENABLE_CAN_ASR_ABSTRACTION) && !defined(V_ENABLE_VSTDLIB_ASR_ABSTRACTION)
#   if !defined(LOCAL_INLINE)
#    define LOCAL_INLINE       static __inline__
#   endif
#  endif
# endif



/* ARM32 with TI compiler */
# if defined( V_DEF_COMP_TI_ARM )
#  if !defined(V_ENABLE_CAN_ASR_ABSTRACTION) && !defined(V_ENABLE_VSTDLIB_ASR_ABSTRACTION)
#   if !defined(LOCAL_INLINE)
#    define LOCAL_INLINE       static __inline
#   endif
#  endif
# endif

/* ARM32 with ARM6 compiler */
# if defined( V_DEF_COMP_ARM6_ARM )
#  if !defined(V_ENABLE_CAN_ASR_ABSTRACTION) && !defined(V_ENABLE_VSTDLIB_ASR_ABSTRACTION)
#   if !defined(LOCAL_INLINE)
#    define LOCAL_INLINE       static __inline
#   endif
#  endif
# endif




/* ************************************************************************* */
/*  Common_VStdLib                                                           */
/* ************************************************************************* */
# if defined (VGEN_ENABLE_VSTDLIB) || defined (V_ENABLE_VSTDLIB)
#  include "vstdlib.h"
# endif

/* ************************************************************************* */
/*  V_NULL Definition                                                        */
/* ************************************************************************* */



/* *********************** default definition of V_NULL **************************************** */
# if !defined(V_NULL)
#  define V_NULL ((void*)0)
# endif


# ifndef NULL
#  define NULL V_NULL
# endif

/* ************************************************************************* */
/*  defines regarding CAN and VStdLib MSR abstraction                        */
/* ************************************************************************* */
# if !defined(V_ENABLE_CAN_ASR_ABSTRACTION) && !defined(V_ENABLE_VSTDLIB_ASR_ABSTRACTION)
#  define V_ENABLE_CBD_ABSTRACTION
#  define STATIC                                          static /* MSR3 */
#  define CAN_STATIC                                      static /* MSR4 */
#  define AUTOMATIC
#  if !defined(NULL_PTR)
#   define NULL_PTR                                       V_NULL
#  endif
#  if !defined(LOCAL_INLINE)
#   define LOCAL_INLINE
#  endif
#  define CAN_LOCAL_INLINE                                LOCAL_INLINE

#   define V_NONE              /* empty storage used instead of extern, static, volatile... */
#   define V_STORAGE_NONE      /* empty storage used instead of extern, static, volatile... */

#  if !defined( C_CALLBACK_1 )
#   define C_CALLBACK_1
#  endif
#  if !defined( C_CALLBACK_2 )
#   define C_CALLBACK_2
#  endif
#  if !defined( C_API_1 )
#   define C_API_1
#  endif
#  if !defined( C_API_2 )
#   define C_API_2
#  endif
#  if !defined( C_API_3 )
#   define C_API_3
#  endif
#  define V_DEF_VAR(storage, vartype, memclass)                    V_MEMRAM0 storage V_MEMRAM1 vartype V_MEMRAM2
#  define V_DEF_VAR_NEAR(storage, vartype)                         V_MEMRAM0 storage V_MEMRAM1_NEAR vartype V_MEMRAM2_NEAR
#  define V_DEF_VAR_FAR(storage, vartype)                          V_MEMRAM0 storage V_MEMRAM1_FAR vartype V_MEMRAM2_FAR
#  define V_DEF_VAR_TYPE(storage, vartype)                         typedef storage V_MEMRAM1 vartype V_MEMRAM2
#  define V_DEF_P2VAR(storage, ptrtype, memclass, ptrclass)        V_MEMRAM0 storage V_MEMRAM1 ptrtype V_MEMRAM2 *
#  define V_DEF_P2VAR_PARA(storage, ptrtype, memclass, ptrclass)   storage V_MEMRAM1 ptrtype V_MEMRAM2 *
#  define V_DEF_P2VAR_TYPE(storage, ptrtype, ptrclass)             typedef storage V_MEMRAM1 ptrtype V_MEMRAM2 *
/* platform specific order may be needed for MEMORY_CAN (position RAM1 or RAM2) */
#  define V_DEF_P2SFR_CAN(storage, ptrtype, memclass)              V_MEMRAM0 storage V_MEMRAM1 ptrtype MEMORY_CAN *
#  define V_DEF_P2SFR_CAN_TYPE(storage, ptrtype)                   typedef storage V_MEMRAM1 ptrtype MEMORY_CAN *
/* --- */
#  define V_DEF_CONSTP2VAR(storage, ptrtype, memclass, ptrclass)   V_MEMROM0 storage V_MEMRAM1 ptrtype V_MEMRAM2 V_MEMRAM3 * V_MEMROM1 V_MEMROM2
#  define V_DEF_CONST(storage, type, memclass)                     V_MEMROM0 storage V_MEMROM1 type V_MEMROM2
#  define V_DEF_CONST_NEAR(storage, type)                          V_MEMROM0 storage V_MEMROM1_NEAR type V_MEMROM2_NEAR
#  define V_DEF_CONST_FAR(storage, type)                           V_MEMROM0 storage V_MEMROM1_FAR type V_MEMROM2_FAR
#  define V_DEF_CONST_TYPE(storage, type, memclass)                typedef storage V_MEMROM1 type V_MEMROM2
#  define V_DEF_P2CONST(storage, ptrtype, memclass, ptrclass)      V_MEMRAM0 storage V_MEMROM1 ptrtype V_MEMROM2 V_MEMROM3 * V_MEMRAM1 V_MEMRAM2
#  define V_DEF_P2CONST_PARA(storage, ptrtype, memclass, ptrclass) storage V_MEMROM1 ptrtype V_MEMROM2 V_MEMROM3 * V_MEMRAM1 V_MEMRAM2
#  define V_DEF_P2CONST_TYPE(storage, ptrtype, ptrclass)           typedef storage V_MEMROM1 ptrtype V_MEMROM2 V_MEMROM3 *
#  define V_DEF_CONSTP2CONST(storage, ptrtype, memclass, ptrclass) V_MEMROM0 storage V_MEMROM1 ptrtype V_MEMROM2 V_MEMROM3 * V_MEMROM1 V_MEMROM2
#  define V_DEF_FUNC(storage, rettype, memclass)                   storage rettype
#  define V_DEF_FUNC_API(storage, rettype, memclass)               storage C_API_1 rettype C_API_2
#  define V_DEF_FUNC_CBK(storage, rettype, memclass)               storage C_CALLBACK_1 rettype C_CALLBACK_2
#  define V_DEF_P2FUNC(storage, rettype, ptrclass, fctname)        storage C_CALLBACK_1 rettype (C_CALLBACK_2 *fctname)
# endif  /* !defined(V_ENABLE_CAN_ASR_ABSTRACTION) && !defined(V_ENABLE_VSTDLIB_ASR_ABSTRACTION) */
/*-----------------------------------------------------------------------------------------------*/

#endif /* V_DEF_H */
/* STOPSINGLE_OF_MULTIPLE */
