rendered paste bodytypedef struct canregs {
union
{
struct
{
canmessage_t messageReg;
uint8_t someOtherReg; // padding
} msgArr[16];
struct {
uint8_t controlReg; // Control Register
uint8_t statusReg; // Status Register
uint8_t cpuInterfaceReg; // CPU Interface Register
uint8_t reserved1Reg;
uint8_t highSpeedReadReg[2]; // High Speed Read
uint8_t globalMaskStandardReg[2]; // Standard Global Mask byte 0
uint8_t globalMaskExtendedReg[4]; // Extended Global Mask bytes
uint8_t message15MaskReg[4]; // Message 15 Mask bytes
canmessage_t message1Reg;
uint8_t clkOutReg; // Clock Out Register
canmessage_t message2Reg;
uint8_t busConfigReg; // Bus Configuration Register
canmessage_t message3Reg;
uint8_t bitTiming0Reg; // Bit Timing Register byte 0
canmessage_t message4Reg;
uint8_t bitTiming1Reg; // Bit Timing Register byte 1
canmessage_t message5Reg;
uint8_t interruptReg; // Interrupt Register
canmessage_t message6Reg;
uint8_t reserved2Reg;
canmessage_t message7Reg;
uint8_t reserved3Reg;
canmessage_t message8Reg;
uint8_t reserved4Reg;
canmessage_t message9Reg;
uint8_t p1ConfReg;
canmessage_t message10Reg;
uint8_t p2ConfReg;
canmessage_t message11Reg;
uint8_t p1InReg;
canmessage_t message12Reg;
uint8_t p2InReg;
canmessage_t message13Reg;
uint8_t p1OutReg;
canmessage_t message14Reg;
uint8_t p2OutReg;
canmessage_t message15Reg;
uint8_t serialResetAddressReg;
};
};
} canregs_t __attribute__ ((packed));