📄 platform_private.h
字号:
volatile unsigned short Cntr; //MBAR_TMRx + 0x0A
volatile unsigned short Ctrl; //MBAR_TMRx + 0x0C
volatile unsigned short StatCtrl; //MBAR_TMRx + 0x0E
volatile unsigned short CmpLd1; //MBAR_TMRx + 0x10
volatile unsigned short CmpLd2; //MBAR_TMRx + 0x12
volatile unsigned short CompStatCtrl; //MBAR_TMRx + 0x14
volatile unsigned short reserved0; //MBAR_TMRx + 0x16
volatile unsigned short reserved1; //MBAR_TMRx + 0x18
volatile unsigned short reserved2; //MBAR_TMRx + 0x1A
volatile unsigned short reserved3; //MBAR_TMRx + 0x1C
volatile unsigned short reserved4; //MBAR_TMRx + 0x1E
} TmrRegs_t;
//define the registers for the ASM peripheral
typedef struct
{
volatile unsigned long Key0; //MBAR_ASM + 0x00
volatile unsigned long Key1; //MBAR_ASM + 0x04
volatile unsigned long Key2; //MBAR_ASM + 0x08
volatile unsigned long Key3; //MBAR_ASM + 0x0C
volatile unsigned long Data0; //MBAR_ASM + 0x10
volatile unsigned long Data1; //MBAR_ASM + 0x14
volatile unsigned long Data2; //MBAR_ASM + 0x18
volatile unsigned long Data3; //MBAR_ASM + 0x1C
volatile unsigned long Ctr0; //MBAR_ASM + 0x20
volatile unsigned long Ctr1; //MBAR_ASM + 0x24
volatile unsigned long Ctr2; //MBAR_ASM + 0x28
volatile unsigned long Ctr3; //MBAR_ASM + 0x2C
volatile unsigned long Ctr_result0; //MBAR_ASM + 0x30
volatile unsigned long Ctr_result1; //MBAR_ASM + 0x34
volatile unsigned long Ctr_result2; //MBAR_ASM + 0x38
volatile unsigned long Ctr_result3; //MBAR_ASM + 0x3C
volatile unsigned long Cbc_result0; //MBAR_ASM + 0x40
volatile unsigned long Cbc_result1; //MBAR_ASM + 0x44
volatile unsigned long Cbc_result2; //MBAR_ASM + 0x48
volatile unsigned long Cbc_result3; //MBAR_ASM + 0x4C
volatile unsigned long Control0; //MBAR_ASM + 0x50
volatile unsigned long Control1; //MBAR_ASM + 0x54
volatile unsigned long Status; //MBAR_ASM + 0x58
volatile unsigned long Undef0; //MBAR_ASM + 0x5C
volatile unsigned long Mac0; //MBAR_ASM + 0x60
volatile unsigned long Mac1; //MBAR_ASM + 0x64
volatile unsigned long Mac2; //MBAR_ASM + 0x68
volatile unsigned long Mac3; //MBAR_ASM + 0x6C
} AsmRegs_t;
//define the registers for the I2C peripheral
typedef struct
{
volatile unsigned char Address; //MBAR_I2C + 0x00 address register
unsigned char dummy0;
unsigned char dummy1;
unsigned char dummy2;
volatile unsigned char FreqDiv; //MBAR_I2C + 0x04 frequency divider register
unsigned char dummy3;
unsigned char dummy4;
unsigned char dummy5;
volatile unsigned char Control; //MBAR_I2C + 0x08 control register
unsigned char dummy6;
unsigned char dummy7;
unsigned char dummy8;
volatile unsigned char Status; //MBAR_I2C + 0x0C status register
unsigned char dummy9;
unsigned char dummy10;
unsigned char dummy11;
volatile unsigned char Data; //MBAR_I2C + 0x10 data register
unsigned char dummy12;
unsigned char dummy13;
unsigned char dummy14;
volatile unsigned char DigitalFilter; //MBAR_I2C + 0x14 digital filter sampling rate register
unsigned char dummy15;
unsigned char dummy16;
unsigned char dummy17;
volatile unsigned char ClockEn; //MBAR_I2C + 0x18 clock enable register
unsigned char dummy18;
unsigned char dummy19;
unsigned char dummy20;
} I2cRegs_t;
//define the registers for the SSI peripheral
typedef struct
{
volatile unsigned long STX; //MBAR_SSI + 0x00 STX (Transmit Data register)
unsigned long dummy1; //MBAR_SSI + 0x04
volatile unsigned long SRX; //MBAR_SSI + 0x08 SRX (Receive Data Register)
unsigned long dummy2; //MBAR_SSI + 0x0C
volatile unsigned long SCR; //MBAR_SSI + 0x10 SCR (Control register)
volatile unsigned long SISR; //MBAR_SSI + 0x14 SISR (Interrupt status register)
volatile unsigned long SIER; //MBAR_SSI + 0x18 SIER (Interrupt enable register)
volatile unsigned long STCR; //MBAR_SSI + 0x1C STCR (Transmit configuration register)
volatile unsigned long SRCR; //MBAR_SSI + 0x20 SRCR (Receive configuration register)
volatile unsigned long STCCR; //MBAR_SSI + 0x24 STCCR (Transmit and Receive Clock configuration register)
unsigned long dummy3; //MBAR_SSI + 0x28
volatile unsigned long SFCSR; //MBAR_SSI + 0x2C SFCSR (FIFO control / status register)
volatile unsigned long STR; //MBAR_SSI + 0x30 STR (Test register)
volatile unsigned long SOR; //MBAR_SSI + 0x34 SOR (Option register)
unsigned long dummy4; //MBAR_SSI + 0x38
unsigned long dummy5; //MBAR_SSI + 0x3C
unsigned long dummy6; //MBAR_SSI + 0x40
unsigned long dummy7; //MBAR_SSI + 0x44
volatile unsigned long STMSK; //MBAR_SSI + 0x48 STMSK (Transmit Time Slot mask register)
volatile unsigned long SRMSK; //MBAR_SSI + 0x4C SRMSK (Receive Time Slot mask register)
}SsiRegs_t;
//define the registers for the ADC peripheral
typedef struct
{
volatile unsigned short Comp0; //MBAR_ADC + 0x00 Compare0 register
volatile unsigned short Comp1; //MBAR_ADC + 0x02 Compare1 register
volatile unsigned short Comp2; //MBAR_ADC + 0x04 Compare2 register
volatile unsigned short Comp3; //MBAR_ADC + 0x06 Compare3 register
volatile unsigned short Comp4; //MBAR_ADC + 0x08 Compare4 register
volatile unsigned short Comp5; //MBAR_ADC + 0x0A Compare5 register
volatile unsigned short Comp6; //MBAR_ADC + 0x0C Compare6 register
volatile unsigned short Comp7; //MBAR_ADC + 0x0E Compare7 register
volatile unsigned short BattCompOver; //MBAR_ADC + 0x10 Battery Voltage upper trip point
volatile unsigned short BattCompUnder; //MBAR_ADC + 0x12 Battery Voltage lower trip point
volatile unsigned short Seq1; //MBAR_ADC + 0x14 Sequencer1 register
volatile unsigned short Seq2; //MBAR_ADC + 0x16 Sequencer2 register
volatile unsigned short Control; //MBAR_ADC + 0x18 Control register
volatile unsigned short Triggers; //MBAR_ADC + 0x1A Triggers register
volatile unsigned short Prescale; //MBAR_ADC + 0x1C Prescale register
volatile unsigned short reserved1; //MBAR_ADC + 0x1E reserved
volatile unsigned short FifoRead; //MBAR_ADC + 0x20 FIFO Read register
volatile unsigned short FifoCtrl; //MBAR_ADC + 0x22 FIFO Control register
volatile unsigned short FifoStatus; //MBAR_ADC + 0x24 FIFO Status register
volatile unsigned short reserved2; //MBAR_ADC + 0x26 register
volatile unsigned short reserved3; //MBAR_ADC + 0x28 register
volatile unsigned short reserved4; //MBAR_ADC + 0x2A register
volatile unsigned short reserved5; //MBAR_ADC + 0x2C register
volatile unsigned short reserved6; //MBAR_ADC + 0x2E register
volatile unsigned short Sr1High; //MBAR_ADC + 0x30 Timer1 Sample Rate High Value
volatile unsigned short Sr1Low; //MBAR_ADC + 0x32 Timer1 Sample Rate Low Value
volatile unsigned short Sr2High; //MBAR_ADC + 0x34 Timer2 Sample Rate High Value
volatile unsigned short Sr2Low; //MBAR_ADC + 0x36 Timer2 Sample Rate Low Value
volatile unsigned short OnTime; //MBAR_ADC + 0x38 On Time register
volatile unsigned short ConvTime; //MBAR_ADC + 0x3A Convert Time register
volatile unsigned short ClkDiv; //MBAR_ADC + 0x3C Clock divider register
volatile unsigned short reserved7; //MBAR_ADC + 0x3E reserved
volatile unsigned short Override; //MBAR_ADC + 0x40 Override register
volatile unsigned short Irq; //MBAR_ADC + 0x42 Interrupt register
volatile unsigned short Mode; //MBAR_ADC + 0x44 ADC Mode register
volatile unsigned short Adc1Result; //MBAR_ADC + 0x46 ADC1 Result register
volatile unsigned short Adc2Result; //MBAR_ADC + 0x48 ADC2 Result register
} AdcRegs_t;
////////////////////////////////// UART ////////////////////////////////////////
#define UART_MIN_BAUDRATE (1200) // minimum value of baud rate supported by UART driver
#define UART_FIFO_SIZE (32) // size od hardware RX, TX FIFOs
#define UART_DEFAULT_RX_THRESHOLD (5) // default value for RX hardware FIFO threshold
#define UART_DEFAULT_TX_THRESHOLD (5) // default value for TX hardware FIFO threshold
#define UART_DEFAULT_CTS_THRESHOLD (10) // default value for CTS hardware FIFO threshold
#define UART_MIN_RX_THRESHOLD (2) // minimum value of RX hardware FIFO threshold
#define UART_MIN_CTS_THRESHOLD (2) // minimum value of CTS hardware FIFO threshold
#define UART_1 (0) // driver internal number associated to the first UART peripheral
#define UART_2 (1) // driver internal number associated to the second UART peripheral
#define UART_NR_INSTANCES (2) // number of UART peripherals on board
// GPIO settings
// 1 bit masks
// 'Lo' group
#define GPIO_UART1_TX_bit BIT14
#define GPIO_UART1_RX_bit BIT15
#define GPIO_UART1_CTS_bit BIT16
#define GPIO_UART1_RTS_bit BIT17
// 'Lo' group
#define GPIO_UART2_TX_bit BIT18
#define GPIO_UART2_RX_bit BIT19
#define GPIO_UART2_CTS_bit BIT20
#define GPIO_UART2_RTS_bit BIT21
// 2 bit groups positions
// FNSEL0 group
#define GPIO_UART1_TX_fnpos (14*2)
#define GPIO_UART1_RX_fnpos (15*2)
// FNSEL1 group
#define GPIO_UART1_CTS_fnpos (16*2-32)
#define GPIO_UART1_RTS_fnpos (17*2-32)
#define GPIO_UART2_TX_fnpos (18*2-32)
#define GPIO_UART2_RX_fnpos (19*2-32)
#define GPIO_UART2_CTS_fnpos (20*2-32)
#define GPIO_UART2_RTS_fnpos (21*2-32)
////////////////////////////////// SPI ////////////////////////////////////////
/*
typedef enum
{
SPI_0,
SPI_1,
gSpiMax_c
} SpiNumber_t;
#define SpiLastPort (gSpiMax_c - 1)
#define SpiNumberOfPorts (gSpiMax_c)
*/
// GPIO settings
// 1 bit masks
// 'Lo' group
#define GPIO_SPI_SS_bit BIT4
#define GPIO_SPI_MISO_bit BIT5
#define GPIO_SPI_MOSI_bit BIT6
#define GPIO_SPI_SCK_bit BIT7
// 2 bit groups positions
// FNSEL0 group
#define GPIO_SPI_SS_fnpos (4*2)
#define GPIO_SPI_MISO_fnpos (5*2)
#define GPIO_SPI_MOSI_fnpos (6*2)
#define GPIO_SPI_SCK_fnpos (7*2)
////////////////////////////////// Timer////////////////////////////////////////
// GPIO settings
// 1 bit masks
// 'Lo' group
#define GPIO_TIMER0_INOUT_bit BIT8
#define GPIO_TIMER1_INOUT_bit BIT9
#define GPIO_TIMER2_INOUT_bit BIT10
#define GPIO_TIMER3_INOUT_bit BIT11
// 2 bit groups positions
// FNSEL0 group
#define GPIO_TIMER0_INOUT_fnpos (8*2)
#define GPIO_TIMER1_INOUT_fnpos (9*2)
#define GPIO_TIMER2_INOUT_fnpos (10*2)
#define GPIO_TIMER3_INOUT_fnpos (11*2)
////////////////////////////////////////////////////////////////////////////////
#endif /* _PLATFORM_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -