![]() |
Altera SoCAL
16.0
The Altera SoC Abstraction Layer (SoCAL) API Reference Manual
|
If several interrupts are pending, the CAN Interrupt Register will point to the pending interrupt with the highest priority, disregarding their chronological order. An interrupt remains pending until the CPU has cleared it. If IntID is different from 0x00 and CCTRL.MIL is set, the interrupt port CAN_INT_MO is active. The interrupt port remains active until IntID is back to value 0x00 (the cause of the interrupt is reset) or until CCTRL.MIL is reset. If CCTRL.ILE is set and CCTRL.MIL is reseted the Message Object interrupts will be routed to interrupt port CAN_INT_STATUS. The interrupt port remains active until IntID is back to value 0x00 (the cause of the interrupt is reset) or until CCTRL.MIL is set or CCTRL.ILE is reset.
The Message Object's interrupt priority decreases with increasing message number.
A message interrupt is cleared by clearing the Message Object's IntPnd bit.
Register Layout
Bits | Access | Reset | Description |
---|---|---|---|
[7:0] | R | 0x0 | Interrupt Identifier |
[14:8] | ??? | 0x0 | UNDEFINED |
[15] | R | 0x0 | A Status Interrupt has occurred |
[31:16] | ??? | 0x0 | UNDEFINED |
Field : Interrupt Identifier - IntId | |
0x00 No Message Object interrupt is pending. 0x01-0x80 Number of Message Object which caused the interrupt. 0x81-0xFF unused. Field Access Macros: | |
#define | ALT_CAN_PROTO_CIR_INTID_LSB 0 |
#define | ALT_CAN_PROTO_CIR_INTID_MSB 7 |
#define | ALT_CAN_PROTO_CIR_INTID_WIDTH 8 |
#define | ALT_CAN_PROTO_CIR_INTID_SET_MSK 0x000000ff |
#define | ALT_CAN_PROTO_CIR_INTID_CLR_MSK 0xffffff00 |
#define | ALT_CAN_PROTO_CIR_INTID_RESET 0x0 |
#define | ALT_CAN_PROTO_CIR_INTID_GET(value) (((value) & 0x000000ff) >> 0) |
#define | ALT_CAN_PROTO_CIR_INTID_SET(value) (((value) << 0) & 0x000000ff) |
Field : A Status Interrupt has occurred - StatusInt | |
The Status Interrupt is cleared by reading the Status Register. Field Access Macros: | |
#define | ALT_CAN_PROTO_CIR_STATINT_LSB 15 |
#define | ALT_CAN_PROTO_CIR_STATINT_MSB 15 |
#define | ALT_CAN_PROTO_CIR_STATINT_WIDTH 1 |
#define | ALT_CAN_PROTO_CIR_STATINT_SET_MSK 0x00008000 |
#define | ALT_CAN_PROTO_CIR_STATINT_CLR_MSK 0xffff7fff |
#define | ALT_CAN_PROTO_CIR_STATINT_RESET 0x0 |
#define | ALT_CAN_PROTO_CIR_STATINT_GET(value) (((value) & 0x00008000) >> 15) |
#define | ALT_CAN_PROTO_CIR_STATINT_SET(value) (((value) << 15) & 0x00008000) |
Data Structures | |
struct | ALT_CAN_PROTO_CIR_s |
Macros | |
#define | ALT_CAN_PROTO_CIR_OFST 0x10 |
#define | ALT_CAN_PROTO_CIR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_CAN_PROTO_CIR_OFST)) |
Typedefs | |
typedef struct ALT_CAN_PROTO_CIR_s | ALT_CAN_PROTO_CIR_t |
struct ALT_CAN_PROTO_CIR_s |
WARNING: The C register and register group struct declarations are provided for convenience and illustrative purposes. They should, however, be used with caution as the C language standard provides no guarantees about the alignment or atomicity of device memory accesses. The recommended practice for writing hardware drivers is to use the SoCAL access macros and alt_read_word() and alt_write_word() functions.
The struct declaration for register ALT_CAN_PROTO_CIR.
Data Fields | ||
---|---|---|
const uint32_t | IntId: 8 | Interrupt Identifier |
uint32_t | __pad0__: 7 | UNDEFINED |
const uint32_t | StatusInt: 1 | A Status Interrupt has occurred |
uint32_t | __pad1__: 16 | UNDEFINED |
#define ALT_CAN_PROTO_CIR_INTID_LSB 0 |
The Least Significant Bit (LSB) position of the ALT_CAN_PROTO_CIR_INTID register field.
#define ALT_CAN_PROTO_CIR_INTID_MSB 7 |
The Most Significant Bit (MSB) position of the ALT_CAN_PROTO_CIR_INTID register field.
#define ALT_CAN_PROTO_CIR_INTID_WIDTH 8 |
The width in bits of the ALT_CAN_PROTO_CIR_INTID register field.
#define ALT_CAN_PROTO_CIR_INTID_SET_MSK 0x000000ff |
The mask used to set the ALT_CAN_PROTO_CIR_INTID register field value.
#define ALT_CAN_PROTO_CIR_INTID_CLR_MSK 0xffffff00 |
The mask used to clear the ALT_CAN_PROTO_CIR_INTID register field value.
#define ALT_CAN_PROTO_CIR_INTID_RESET 0x0 |
The reset value of the ALT_CAN_PROTO_CIR_INTID register field.
#define ALT_CAN_PROTO_CIR_INTID_GET | ( | value | ) | (((value) & 0x000000ff) >> 0) |
Extracts the ALT_CAN_PROTO_CIR_INTID field value from a register.
#define ALT_CAN_PROTO_CIR_INTID_SET | ( | value | ) | (((value) << 0) & 0x000000ff) |
Produces a ALT_CAN_PROTO_CIR_INTID register field value suitable for setting the register.
#define ALT_CAN_PROTO_CIR_STATINT_LSB 15 |
The Least Significant Bit (LSB) position of the ALT_CAN_PROTO_CIR_STATINT register field.
#define ALT_CAN_PROTO_CIR_STATINT_MSB 15 |
The Most Significant Bit (MSB) position of the ALT_CAN_PROTO_CIR_STATINT register field.
#define ALT_CAN_PROTO_CIR_STATINT_WIDTH 1 |
The width in bits of the ALT_CAN_PROTO_CIR_STATINT register field.
#define ALT_CAN_PROTO_CIR_STATINT_SET_MSK 0x00008000 |
The mask used to set the ALT_CAN_PROTO_CIR_STATINT register field value.
#define ALT_CAN_PROTO_CIR_STATINT_CLR_MSK 0xffff7fff |
The mask used to clear the ALT_CAN_PROTO_CIR_STATINT register field value.
#define ALT_CAN_PROTO_CIR_STATINT_RESET 0x0 |
The reset value of the ALT_CAN_PROTO_CIR_STATINT register field.
#define ALT_CAN_PROTO_CIR_STATINT_GET | ( | value | ) | (((value) & 0x00008000) >> 15) |
Extracts the ALT_CAN_PROTO_CIR_STATINT field value from a register.
#define ALT_CAN_PROTO_CIR_STATINT_SET | ( | value | ) | (((value) << 15) & 0x00008000) |
Produces a ALT_CAN_PROTO_CIR_STATINT register field value suitable for setting the register.
#define ALT_CAN_PROTO_CIR_OFST 0x10 |
The byte offset of the ALT_CAN_PROTO_CIR register from the beginning of the component.
#define ALT_CAN_PROTO_CIR_ADDR | ( | base | ) | ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_CAN_PROTO_CIR_OFST)) |
The address of the ALT_CAN_PROTO_CIR register.
typedef struct ALT_CAN_PROTO_CIR_s ALT_CAN_PROTO_CIR_t |
The typedef declaration for register ALT_CAN_PROTO_CIR.