#ifndef _FC7240_FLEXCAN_NU_Tztufn34_REGS_H_ #define _FC7240_FLEXCAN_NU_Tztufn34_REGS_H_ #ifdef __cplusplus extern "C" { #endif /* ---------------------------------------------------------------------------- -- FLEXCAN Peripheral Access Layer ---------------------------------------------------------------------------- */ /*! * @addtogroup FLEXCAN_Peripheral_Access_Layer FLEXCAN Peripheral Access Layer * @{ */ /** FLEXCAN - Size of Registers Arrays */ /** FLEXCAN - Register Layout Typedef */ #define FLEXCAN_RAM_COUNT 128 #define FLEXCAN_RXIMR_COUNT 32 #define FLEXCAN_GATE_BUFFER_COUNT 4 #define FLEXCAN_GATE_DUMMY_COUNT 18 #define FLEXCAN_ERX_FIFO_COUNT 240 #define FLEXCAN_ERFFEL_COUNT 32 typedef struct { __IO uint32_t MCR ; /* Module Configuration Register, offset: 0x0 */ __IO uint32_t CTRL1 ; /* Control 1 Register, offset: 0x4 */ __IO uint32_t TIMER ; /* Free Running Timer, offset: 0x8 */ uint8_t RESERVED_0[4]; __IO uint32_t RXMGMASK ; /* Rx Mailboxes Global Mask Register, offset: 0x10 */ __IO uint32_t RX14MASK ; /* Rx 14 Mask Register, offset: 0x14 */ __IO uint32_t RX15MASK ; /* Rx 15 Mask Register, offset: 0x18 */ __I uint32_t ECR ; /* Error Counter Register, offset: 0x1C */ __IO uint32_t ESR1 ; /* Error and Status 1 Register, offset: 0x20 */ uint8_t RESERVED_1[4]; __IO uint32_t IMASK1 ; /* Interrupt Masks 1 Register, offset: 0x28 */ uint8_t RESERVED_2[4]; __IO uint32_t IFLAG1 ; /* Interrupt Flags 1 Register, offset: 0x30 */ __IO uint32_t CTRL2 ; /* Control 2 Register, offset: 0x34 */ __I uint32_t ESR2 ; /* Error and Status 2 Register, offset: 0x38 */ uint8_t RESERVED_3[8]; __I uint32_t CRCR ; /* CRC Register, offset: 0x44 */ __IO uint32_t RXFGMASK ; /* Legacy Rx FIFO Global Mask Register, offset: 0x48 */ __I uint32_t RXFIR ; /* Legacy Rx FIFO Information Register, offset: 0x4C */ __IO uint32_t CBT ; /* CAN Bit Timing Register, offset: 0x50 */ uint8_t RESERVED_4[44]; __IO uint32_t RAM[FLEXCAN_RAM_COUNT] ; /* Message Buffer Registers, offset: 0x80 */ uint8_t RESERVED_5[1536]; __IO uint32_t RXIMR[FLEXCAN_RXIMR_COUNT] ; /* Rx Individual Mask registers, offset: 0x880 */ uint8_t RESERVED_6[480]; __IO uint32_t MECR ; /* Memory Error Control Register, offset: 0xAE0 */ __IO uint32_t ERRIAR ; /* Error Injection Address Register, offset: 0xAE4 */ __IO uint32_t ERRIDPR ; /* Error Injection Data Pattern Register, offset: 0xAE8 */ __IO uint32_t ERRIPPR ; /* Error Injection Parity Pattern Register, offset: 0xAEC */ __I uint32_t RERRAR ; /* Error Report Address Register, offset: 0xAF0 */ __I uint32_t RERRDR ; /* Error Report Data Register, offset: 0xAF4 */ __I uint32_t RERRSYNR ; /* Error Report Syndrome Register, offset: 0xAF8 */ __IO uint32_t ERRSR ; /* Error Status Register, offset: 0xAFC */ __IO uint32_t CTRL1_PN ; /* Pretended Networking Control 1 Register, offset: 0xB00 */ __IO uint32_t CTRL2_PN ; /* Pretended Networking Control 2 Register, offset: 0xB04 */ __IO uint32_t WU_MTC ; /* Pretended Networking Wake Up Match Register, offset: 0xB08 */ __IO uint32_t FLT_ID1 ; /* Pretended Networking ID Filter 1 Register, offset: 0xB0C */ __IO uint32_t FLT_DLC ; /* Pretended Networking DLC Filter Register, offset: 0xB10 */ __IO uint32_t PL1_LO ; /* Pretended Networking Payload Low Filter 1 Register, offset: 0xB14 */ __IO uint32_t PL1_HI ; /* Pretended Networking Payload High Filter 1 Register, offset: 0xB18 */ __IO uint32_t FLT_ID2_IDMASK ; /* Pretended Networking ID Filter 2 Register/ ID Mask Register, offset: 0xB1C */ __IO uint32_t PL2_PLMASK_LO ; /* Pretended Networking Payload Low Filter 2 Register/ Payload Low Mask Register, offset: 0xB20 */ __IO uint32_t PL2_PLMASK_HI ; /* Pretended Networking Payload High Filter 2 Low Order Bits/ Payload High Mask Register, offset: 0xB24 */ uint8_t RESERVED_7[24]; __I uint32_t WMB_CS0 ; /* Wake Up Message Buffer Register for C/S, offset: 0xb40 */ __I uint32_t WMB_ID0 ; /* Wake Up Message Buffer Register for ID, offset: 0xb44 */ __I uint32_t WMB_D03_0 ; /* Wake Up Message Buffer Register for Data 0-3, offset: 0xb48 */ __I uint32_t WMB_D47_0 ; /* Wake Up Message Buffer Register Data 4-7, offset: 0xb4c */ __I uint32_t WMB_CS1 ; /* Wake Up Message Buffer Register for C/S, offset: 0xb50 */ __I uint32_t WMB_ID1 ; /* Wake Up Message Buffer Register for ID, offset: 0xb54 */ __I uint32_t WMB_D03_1 ; /* Wake Up Message Buffer Register for Data 0-3, offset: 0xb58 */ __I uint32_t WMB_D47_1 ; /* Wake Up Message Buffer Register Data 4-7, offset: 0xb5c */ __I uint32_t WMB_CS2 ; /* Wake Up Message Buffer Register for C/S, offset: 0xb60 */ __I uint32_t WMB_ID2 ; /* Wake Up Message Buffer Register for ID, offset: 0xb64 */ __I uint32_t WMB_D03_2 ; /* Wake Up Message Buffer Register for Data 0-3, offset: 0xb68 */ __I uint32_t WMB_D47_2 ; /* Wake Up Message Buffer Register Data 4-7, offset: 0xb6c */ __I uint32_t WMB_CS3 ; /* Wake Up Message Buffer Register for C/S, offset: 0xb70 */ __I uint32_t WMB_ID3 ; /* Wake Up Message Buffer Register for ID, offset: 0xb74 */ __I uint32_t WMB_D03_3 ; /* Wake Up Message Buffer Register for Data 0-3, offset: 0xb78 */ __I uint32_t WMB_D47_3 ; /* Wake Up Message Buffer Register Data 4-7, offset: 0xb7c */ uint8_t RESERVED_8[112]; __IO uint32_t EPRS ; /* Enhanced CAN Bit Timing Prescalers Register, offset: 0xBF0 */ __IO uint32_t ENCBT ; /* Enhanced Nominal CAN Bit Timing Register, offset: 0xBF4 */ __IO uint32_t EDCBT ; /* Enhanced Data Phase CAN bit Timing Register, offset: 0xBF8 */ __IO uint32_t ETDC ; /* Enhanced Transceiver Delay Compensation Register, offset: 0xBFC */ __IO uint32_t FDCTRL ; /* CAN FD Control Register, offset: 0xC00 */ __IO uint32_t FDCBT ; /* CAN FD Bit Timing Register, offset: 0xC04 */ __I uint32_t FDCRC ; /* CAN FD CRC Register, offset: 0xC08 */ __IO uint32_t ERFCR ; /* Enhanced Rx FIFO Control Register, offset: 0xC0C */ __IO uint32_t ERFIER ; /* Enhanced Rx FIFO Interrupt Enable Register, offset: 0xC10 */ __IO uint32_t ERFSR ; /* Enhanced Rx FIFO Status Register, offset: 0xC14 */ uint8_t RESERVED_9[3560]; __IO uint32_t GATE_CS ; /* Gateway Control Register, offset: 0x1A00 */ uint8_t RESERVED_10[12]; __IO uint32_t GATE_BUFFER[FLEXCAN_GATE_BUFFER_COUNT]; /* Gateway Buffer Register, offset: 0x1a10 */ uint8_t RESERVED_11[96]; __IO uint32_t GATE_DUMMY[FLEXCAN_GATE_DUMMY_COUNT]; /* Gateway Router Dummy Register, offset: 0x1a80 */ uint8_t RESERVED_12[1336]; __IO uint32_t ERX_FIFO[FLEXCAN_ERX_FIFO_COUNT]; /* Enhanced Rx FIFO Register, offset: 0x2000 */ uint8_t RESERVED_13[3136]; __IO uint32_t ERFFEL[FLEXCAN_ERFFEL_COUNT] ; /* Enhanced Rx FIFO Filter Element Register, offset: 0x3000 */ } FLEXCAN_Type, *FLEXCAN_MemMapPtr; /** Number of instances of the FLEXCAN module. */ #define FLEXCAN_INSTANCE_COUNT (4u) /* FLEXCAN - Peripheral instance base addresses */ /** Peripheral FLEXCAN0 base address */ #define FLEXCAN0_BASE (0x40080000u) /** Peripheral FLEXCAN0 base pointer */ #define FLEXCAN0 ((FLEXCAN_Type *)FLEXCAN0_BASE) /** Peripheral FLEXCAN1 base address */ #define FLEXCAN1_BASE (0x40084000u) /** Peripheral FLEXCAN1 base pointer */ #define FLEXCAN1 ((FLEXCAN_Type *)FLEXCAN1_BASE) /** Peripheral FLEXCAN2 base address */ #define FLEXCAN2_BASE (0x40480000u) /** Peripheral FLEXCAN2 base pointer */ #define FLEXCAN2 ((FLEXCAN_Type *)FLEXCAN2_BASE) /** Peripheral FLEXCAN3 base address */ #define FLEXCAN3_BASE (0x40484000u) /** Peripheral FLEXCAN3 base pointer */ #define FLEXCAN3 ((FLEXCAN_Type *)FLEXCAN3_BASE) /** Array initializer of FLEXCAN peripheral base addresses */ #define FLEXCAN_BASE_ADDRS {FLEXCAN0_BASE, FLEXCAN1_BASE, FLEXCAN2_BASE, FLEXCAN3_BASE} /** Array initializer of FLEXCAN peripheral base pointers */ #define FLEXCAN_BASE_PTRS {FLEXCAN0, FLEXCAN1, FLEXCAN2, FLEXCAN3} // need fill by yourself ///** Number of interrupt vector arrays for the FLEXCAN module. */ //#define FLEXCAN_IRQS_ARR_COUNT (1u) ///** Number of interrupt channels for the FLEXCAN module. */ //#define FLEXCAN_IRQS_CH_COUNT (1u) ///** Interrupt vectors for the FLEXCAN peripheral type */ //#define FLEXCAN_IRQS {FLEXCAN0_IRQn, FLEXCAN1_IRQn, FLEXCAN2_IRQn, FLEXCAN3_IRQn} /* ---------------------------------------------------------------------------- -- FLEXCAN Register Masks ---------------------------------------------------------------------------- */ /*! * @addtogroup FLEXCAN_Register_Masks FLEXCAN Register Masks * @{ */ /* MCR Bit Fields */ #define FLEXCAN_MCR_MDIS_MASK 0x80000000u #define FLEXCAN_MCR_MDIS_SHIFT 31u #define FLEXCAN_MCR_MDIS_WIDTH 1u #define FLEXCAN_MCR_MDIS(x) (((uint32_t)(((uint32_t)(x))<