| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #ifndef _SEMA_H_
- #define _SEMA_H_
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define LOCAL_CPx 1
- #define rSemaGate(x) (*(volatile unsigned int *)(REGS_SEMA_BASE + (x) * 4))
- #define rSemaCPINE(x) (*(volatile unsigned int *)(REGS_SEMA_BASE + 0x100 + (LOCAL_CPx * 0x10) + (x) * 8))
- #define rSemaCPNTF(x) (*(volatile unsigned int *)(REGS_SEMA_BASE + 0x120 + (LOCAL_CPx * 0x10) + (x) * 8))
- #define rSemaRSTGT (*(volatile unsigned int *)(REGS_SEMA_BASE + 0x140))
- #define rSemaRSTNTF (*(volatile unsigned int *)(REGS_SEMA_BASE + 0x150))
- #define rSemaCPINTFLG(x) (*(volatile unsigned int *)(REGS_SEMA_BASE + 0x160 + (LOCAL_CPx * 0x10) + (x) * 8))
- #define rSemaIRQCLR (*(volatile unsigned int *)(REGS_SEMA_BASE + 0x180 + (LOCAL_CPx * 4)))
- typedef enum{
- SEMA_GATE_USB = 0,
- SEMA_GATE_SDMMC0,
- SEMA_GATE_DMA,
- SEMA_GATE_LCD,
- SEMA_GATE_SDMMC1,
- SEMA_GATE_GPU,
- SEMA_GATE_PXP,
- SEMA_GATE_MFC, // 7
- SEMA_GATE_ITU,
- SEMA_GATE_QOI,
- SEMA_GATE_BLENDING,
- SEMA_GATE_ETH,
- SEMA_GATE_WRAP,
- SEMA_GATE_SPI0,
- SEMA_GATE_SPI2,
- SEMA_GATE_CRC, // 15
- SEMA_GATE_SYS,
- SEMA_GATE_ECSPI,
- SEMA_GATE_I2C0,
- SEMA_GATE_I2C1,
- SEMA_GATE_UART0,
- SEMA_GATE_UART1,
- SEMA_GATE_UART2,
- SEMA_GATE_UART3, // 23
- SEMA_GATE_GPIO,
- SEMA_GATE_TIMER,
- SEMA_GATE_PWM,
- SEMA_GATE_WDT,
- SEMA_GATE_I2S0,
- SEMA_GATE_I2S1,
- SEMA_GATE_RTC,
- SEMA_GATE_ADC0, // 31
- SEMA_GATE_ADC1,
- SEMA_GATE_ADC2,
- SEMA_GATE_DDRCTL,
- SEMA_GATE_DDRPHY,
- SEMA_GATE_VBUS,
- SEMA_GATE_GBUS,
- SEMA_GATE_CHBUS,
- SEMA_GATE_CABUS, // 39
- SEMA_GATE_DSI,
- SEMA_GATE_CSI,
- SEMA_GATE_RCRT,
- SEMA_GATE_DDRRDC,
- SEMA_GATE_SRAMRDC,
- SEMA_GATE_MAX,
- }sema_gate_e;
- typedef enum{
- SEMA_GATE_S_FREE = 0,
- SEMA_GATE_S_CPU0_LOCK,
- SEMA_GATE_S_CPU1_LOCK,
- SEMA_GATE_S_UNLOCK,
- }sema_gate_state_e;
- void sema_init(void);
- int sema_take(sema_gate_e gate, TickType_t xTicksToWait);
- int sema_give(sema_gate_e gate);
- #ifdef __cplusplus
- }
- #endif
- #endif /* _SEMA_H_ */
|