#ifndef GRLIB_REGS_H_INCLUDED #define GRLIB_REGS_H_INCLUDED #define NB_GPTIMER 3 #include struct apbuart_regs_str{ volatile unsigned int data; volatile unsigned int status; volatile unsigned int ctrl; volatile unsigned int scaler; volatile unsigned int fifoDebug; }; struct grgpio_regs_str{ volatile int io_port_data_register; int io_port_output_register; int io_port_direction_register; int interrupt_mak_register; int interrupt_polarity_register; int interrupt_edge_register; int bypass_register; int reserved; // 0x20-0x3c interrupt map register(s) }; typedef volatile struct { int counter; volatile unsigned int reload; volatile unsigned int ctrl; volatile unsigned int unused; } timer_regs_t; typedef volatile struct { volatile unsigned int scaler_value; volatile unsigned int scaler_reload; volatile unsigned int conf; volatile unsigned int unused0; timer_regs_t timer[NB_GPTIMER]; } gptimer_regs_t; typedef struct { uint32_t unused:16; uint32_t Fine:16; uint32_t Coarse; }CUCtime_t; struct DualBuffAddr_t { volatile uint32_t ADDR0; volatile uint32_t ADDR1; }; struct Potential_t { uint32_t UNUSED:16; uint32_t Value:16; }; typedef volatile struct { volatile union CONFIG{ volatile struct { uint32_t UNUSED:29; // 0x00 uint32_t run:1; uint32_t interuptOnDoneEnable:1; uint32_t interuptOnErrorEnable:1; }FIELDS; uint32_t Value; }CONFIG; volatile union STATUS{ volatile struct { uint32_t UNUSED:21; uint32_t FIFO_2_Full_err:1; uint32_t FIFO_1_Full_err:1; uint32_t FIFO_0_Full_err:1; uint32_t Buffer_Full_err:1; uint32_t Ready_F2_Buffer1:1; uint32_t Ready_F2_Buffer0:1; uint32_t Ready_F1_Buffer1:1; uint32_t Ready_F1_Buffer0:1; uint32_t Ready_F0_Buffer1:1; uint32_t Ready_F0_Buffer0:1; }FIELDS; uint32_t Value; }STATUS; struct DualBuffAddr_t ADDRESS_F0; struct DualBuffAddr_t ADDRESS_F1; struct DualBuffAddr_t ADDRESS_F2; CUCtime_t TIME_F0_0; CUCtime_t TIME_F0_1; CUCtime_t TIME_F1_0; CUCtime_t TIME_F1_1; CUCtime_t TIME_F2_0; CUCtime_t TIME_F2_1; volatile struct { uint32_t Unused:6; uint32_t length:26; // 0x50, length of a spectral matrix in burst (25*128) / 16 = 200 = 0xc8 }length; } lfr_sm_regs_t; typedef volatile struct { volatile union DATASHAPING { volatile struct { uint32_t UNUSED:26; // 0x00 uint32_t R2:1; uint32_t R1:1; uint32_t R0:1; uint32_t SP1:1; uint32_t SP0:1; uint32_t BW:1; }FIELDS; uint32_t Value; }DATASHAPING; volatile union { volatile struct { uint32_t UNUSED:25; uint32_t BURST_EN_F2:1; uint32_t BURST_EN_F1:1; uint32_t BURST_EN_F0:1; uint32_t ACQ_EN_F3:1; uint32_t ACQ_EN_F2:1; uint32_t ACQ_EN_F1:1; uint32_t ACQ_EN_F0:1; }FIELDS; uint32_t Value; }Control; volatile struct DualBuffAddr_t ADDRESS_F0; volatile struct DualBuffAddr_t ADDRESS_F1; volatile struct DualBuffAddr_t ADDRESS_F2; volatile struct DualBuffAddr_t ADDRESS_F3; uint32_t STATUS; uint32_t DeltaSnapshot; uint32_t Delta_F0; uint32_t UNUSED_Delta_F0_2:25; uint32_t Delta_F0_2:7; uint32_t Delta_F1; uint32_t Delta_F2; uint32_t Nb_Data_per_buff; uint32_t Nb_snapshot; uint32_t StartDate; CUCtime_t TIME_F0_0; CUCtime_t TIME_F0_1; CUCtime_t TIME_F1_0; CUCtime_t TIME_F1_1; CUCtime_t TIME_F2_0; CUCtime_t TIME_F2_1; CUCtime_t TIME_F3_0; CUCtime_t TIME_F3_1; union{ struct { uint32_t Unused_length:6; uint32_t length:26; }FIELDS; // 0x50, length of a spectral matrix in burst (25*128) / 16 = 200 = 0xc8 uint32_t Value; }length; struct Potential_t V; struct Potential_t E1; struct Potential_t E2; } lfr_wfp_regs_t; typedef struct { uint32_t UNUSED:16; uint32_t Value:16; }lfr_hk_temp_t; typedef struct { struct { uint32_t UNUSED:25; uint32_t CAL_EN:1; uint32_t Interleaved_EN:1; uint32_t Reload_EN:1; uint32_t DAC_CFG:4; }Control; uint32_t UNUSED_PRE:24; uint32_t PRE:8; uint32_t UNUSED_N:16; uint32_t N:16; uint32_t UNUSED_ADDR:24; uint32_t ADDRESS:8; uint32_t UNUSED_DATA_IN:14; uint32_t DATA_IN:18; }lfr_dac_regs_t; typedef volatile struct { union { struct { uint32_t UNUSED:29; uint32_t SOFT_RESET:1; uint32_t TIME_MANAGMENT_RESET:1; uint32_t SWTick:1;}FIELDS; uint32_t Value; }Control; uint32_t UNUSED_TIME_LOAD:1; uint32_t TIME_LOAD:31; uint32_t Unsynchronized:1; uint32_t COARSE_TIME:31; uint32_t UNUSED_FINE_TIME:16; uint32_t FINE_TIME:16; lfr_hk_temp_t TEMP_0; lfr_hk_temp_t TEMP_1; lfr_hk_temp_t TEMP_2; lfr_dac_regs_t DAC; }lfr_managment_regs_t; typedef volatile struct { lfr_sm_regs_t SM; lfr_wfp_regs_t WFP; struct { uint32_t UNUSED:8; uint32_t Board:8; uint32_t Major:8; uint32_t Minor:8; }VERSION; }lfr_regs_t; #endif // GRLIB_REGS_H_INCLUDED