思澈科技软件开发工具包  2.20
Peripheral_memory_map

Macros

#define HCPU2LCPU_OFFSET   (0x0A000000)
 
#define LCPUROM2HCPU_OFFSET   (0x0B000000)
 
#define LCPUITCM2HCPU_OFFSET   (0x0B000000)
 
#define LCPUDTCM2HCPU_OFFSET   (0x0B000000)
 
#define IS_FUNCTIONAL_STATE(STATE)   (((STATE) == DISABLE) || ((STATE) == ENABLE))
 
#define SET_BIT(REG, BIT)   ((REG) |= (BIT))
 
#define CLEAR_BIT(REG, BIT)   ((REG) &= ~(BIT))
 
#define READ_BIT(REG, BIT)   ((REG) & (BIT))
 
#define CLEAR_REG(REG)   ((REG) = (0x0))
 
#define WRITE_REG(REG, VAL)   ((REG) = (VAL))
 
#define READ_REG(REG)   ((REG))
 
#define MODIFY_REG(REG, CLEARMASK, SETMASK)   WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
 
#define IS_LPUART_INSTANCE(INSTANCE)   (0)
 
#define HCPU_IS_SRAM_ADDR(addr)   (((uint32_t)(addr) >= HPSYS_RAM0_BASE) && ((uint32_t)(addr) < HPSYS_RAM_END))
 
#define HCPU_ADDR_2_LCPU_ADDR(addr)   (HCPU_IS_SRAM_ADDR((addr)) ? (uint32_t)((addr) + HCPU2LCPU_OFFSET) : (uint32_t)(addr))
 Convert HCPU SRAM address which can be used by LCPU. More...
 
#define LCPU_ADDR_2_HCPU_ADDR(addr)   (addr)
 Convert LCPU SRAM address which can be used by HCPU. More...
 
#define LCPU_ROM_ADDR_2_HCPU_ADDR(addr)   ((addr) + LCPUROM2HCPU_OFFSET)
 Convert LCPU ROM address which can be used by HCPU. More...
 
#define LCPU_ITCM_ADDR_2_HCPU_ADDR(addr)   ((addr) + LCPUITCM2HCPU_OFFSET)
 Convert LCPU ITCM address which can be used by HCPU. More...
 
#define LCPU_DTCM_ADDR_2_HCPU_ADDR(addr)   ((addr) + LCPUDTCM2HCPU_OFFSET)
 Convert LCPU DTCM address which can be used by HCPU. More...
 
#define HCPU_MPI_SBUS_ADDR(addr)   (addr)
 
#define LCPU_BOOT_ADDR   (LCPU_RAM_DATA_START_ADDR+LCPU_RAM_DATA_SIZE-4)
 
#define IS_LCPU(id)   ((*id)&1)
 

Typedefs

typedef enum FlagStatus ITStatus
 

Enumerations

enum  FlagStatus {
  RESET = 0,
  SET = !RESET
}
 
enum  FunctionalState {
  DISABLE = 0,
  ENABLE = !DISABLE
}
 
enum  ErrorStatus {
  SF_ERROR = 0,
  SF_SUCCESS = !SF_ERROR
}
 
#define CACHE_BASE   0xE0080000
 
#define HPSYS_RCC_BASE   0x40000000
 
#define DMAC1_BASE   0x40001000
 
#define MAILBOX1_BASE   0x40002000
 
#define PINMUX1_BASE   0x40003000
 
#define USART1_BASE   0x40004000
 
#define USART2_BASE   0x40005000
 
#define EZIP_BASE   0x40006000
 
#define EPIC_BASE   0x40007000
 
#define LCDC1_BASE   0x40008000
 
#define I2S1_BASE   0x40009000
 
#define I2S2_BASE   0x4000a000
 
#define HPSYS_CFG_BASE   0x4000b000
 
#define EFUSEC_BASE   0x4000c000
 
#define AES_BASE   0x4000d000
 
#define CRC_BASE   0x4000e000
 
#define TRNG_BASE   0x4000f000
 
#define GPTIM1_BASE   0x40010000
 
#define GPTIM2_BASE   0x40011000
 
#define BTIM1_BASE   0x40012000
 
#define BTIM2_BASE   0x40013000
 
#define WDT1_BASE   0x40014000
 
#define SPI1_BASE   0x40015000
 
#define SPI2_BASE   0x40016000
 
#define EXTDMA_BASE   0x40017000
 
#define PSRAMC_BASE   0x40018000
 
#define NNACC_BASE   0x40019000
 
#define PDM1_BASE   0x4001a000
 
#define PDM2_BASE   0x4001b000
 
#define I2C1_BASE   0x4001c000
 
#define I2C2_BASE   0x4001d000
 
#define DSI_HOST_BASE   0x4001e000
 
#define DSI_PHY_BASE   0x4001f000
 
#define PTC1_BASE   0x40020000
 
#define BUSMON1_BASE   0x40021000
 
#define I2C3_BASE   0x40022000
 
#define HPSYS_AON_BASE   0x40030000
 
#define LPTIM1_BASE   0x40031000
 
#define GPIO1_BASE   0x50000000
 
#define QSPI1_BASE   0x50001000
 
#define QSPI2_BASE   0x50002000
 
#define QSPI3_BASE   0x50003000
 
#define SDMMC1_BASE   0x50004000
 
#define SDMMC2_BASE   0x50005000
 
#define USBC_BASE   0x50006000
 
#define EPIC_RAM_BASE   0x50010000
 
#define LPSYS_RCC_BASE   0x40040000
 
#define DMAC2_BASE   0x40041000
 
#define MAILBOX2_BASE   0x40042000
 
#define PINMUX2_BASE   0x40043000
 
#define PATCH_BASE   0x40044000
 
#define USART3_BASE   0x40045000
 
#define USART4_BASE   0x40046000
 
#define USART5_BASE   0x40047000
 
#define SPI3_BASE   0x40049000
 
#define SPI4_BASE   0x4004a000
 
#define I2C4_BASE   0x4004c000
 
#define I2C5_BASE   0x4004d000
 
#define I2C6_BASE   0x4004e000
 
#define LPSYS_CFG_BASE   0x4004f000
 
#define GPTIM3_BASE   0x40050000
 
#define GPTIM4_BASE   0x40051000
 
#define GPTIM5_BASE   0x40052000
 
#define BTIM3_BASE   0x40053000
 
#define BTIM4_BASE   0x40054000
 
#define WDT2_BASE   0x40055000
 
#define GPADC_BASE   0x40056000
 
#define SDADC_BASE   0x40057000
 
#define LPCOMP_BASE   0x40059000
 
#define TSEN_BASE   0x4005a000
 
#define PTC2_BASE   0x4005b000
 
#define LCDC2_BASE   0x4005c000
 
#define BUSMON2_BASE   0x4005d000
 
#define LPSYS_AON_BASE   0x40070000
 
#define LPTIM2_BASE   0x40071000
 
#define LPTIM3_BASE   0x40072000
 
#define PMUC_BASE   0x4007a000
 
#define RTC_BASE   0x4007b000
 
#define IWDT_BASE   0x4007c000
 
#define GPIO2_BASE   0x50040000
 
#define QSPI4_BASE   0x50041000
 
#define BLE_RFC_BASE   0x50042000
 
#define BLE_PHY_BASE   0x50044000
 
#define BLE_MAC_BASE   0x50050000
 
#define HMAILBOX_BASE   MAILBOX1_BASE
 
#define LMAILBOX_BASE   MAILBOX2_BASE
 
#define USBC_X_BASE   (USBC_BASE)
 
#define hwp_cache   ((CACHE_TypeDef *) CACHE_BASE)
 
#define hwp_hpsys_rcc   ((HPSYS_RCC_TypeDef *) HPSYS_RCC_BASE)
 
#define hwp_lpsys_rcc   ((LPSYS_RCC_TypeDef *) LPSYS_RCC_BASE)
 
#define hwp_dmac1   ((DMAC_TypeDef *) DMAC1_BASE)
 
#define hwp_dmac2   ((DMAC_TypeDef *) DMAC2_BASE)
 
#define hwp_gptim1   ((GPT_TypeDef *) GPTIM1_BASE)
 
#define hwp_gptim2   ((GPT_TypeDef *) GPTIM2_BASE)
 
#define hwp_gptim3   ((GPT_TypeDef *) GPTIM3_BASE)
 
#define hwp_gptim4   ((GPT_TypeDef *) GPTIM4_BASE)
 
#define hwp_gptim5   ((GPT_TypeDef *) GPTIM5_BASE)
 
#define hwp_btim1   ((BTIM_TypeDef *) BTIM1_BASE)
 
#define hwp_btim2   ((BTIM_TypeDef *) BTIM2_BASE)
 
#define hwp_btim3   ((BTIM_TypeDef *) BTIM3_BASE)
 
#define hwp_btim4   ((BTIM_TypeDef *) BTIM4_BASE)
 
#define hwp_epic   ((EPIC_TypeDef *) EPIC_BASE)
 
#define hwp_spi1   ((SPI_TypeDef *) SPI1_BASE)
 
#define hwp_spi2   ((SPI_TypeDef *) SPI2_BASE)
 
#define hwp_spi3   ((SPI_TypeDef *) SPI3_BASE)
 
#define hwp_spi4   ((SPI_TypeDef *) SPI4_BASE)
 
#define hwp_usart1   ((USART_TypeDef *) USART1_BASE)
 
#define hwp_usart2   ((USART_TypeDef *) USART2_BASE)
 
#define hwp_usart3   ((USART_TypeDef *) USART3_BASE)
 
#define hwp_usart4   ((USART_TypeDef *) USART4_BASE)
 
#define hwp_usart5   ((USART_TypeDef *) USART5_BASE)
 
#define hwp_i2c1   ((I2C_TypeDef *) I2C1_BASE)
 
#define hwp_i2c2   ((I2C_TypeDef *) I2C2_BASE)
 
#define hwp_i2c3   ((I2C_TypeDef *) I2C3_BASE)
 
#define hwp_i2c4   ((I2C_TypeDef *) I2C4_BASE)
 
#define hwp_i2c5   ((I2C_TypeDef *) I2C5_BASE)
 
#define hwp_i2c6   ((I2C_TypeDef *) I2C6_BASE)
 
#define hwp_mailbox1   ((MAILBOX_TypeDef *) MAILBOX1_BASE)
 
#define hwp_mailbox2   ((MAILBOX_TypeDef *) MAILBOX2_BASE)
 
#define hwp_hmailbox   ((MAILBOX_TypeDef *) MAILBOX1_BASE)
 
#define hwp_lmailbox   ((MAILBOX_TypeDef *) MAILBOX2_BASE)
 
#define hwp_nnacc   ((NN_ACC_TypeDef *) NNACC_BASE)
 
#define hwp_dsi_host   ((DSI_HOST_TypeDef *) DSI_HOST_BASE)
 
#define hwp_dsi_phy   ((DSI_PHY_TypeDef *) DSI_PHY_BASE)
 
#define hwp_ptc1   ((PTC_TypeDef *) PTC1_BASE)
 
#define hwp_ptc2   ((PTC_TypeDef *) PTC2_BASE)
 
#define hwp_busmon1   ((BUSMON_TypeDef *) BUSMON1_BASE)
 
#define hwp_busmon2   ((BUSMON_TypeDef *) BUSMON2_BASE)
 
#define hwp_ezip   ((EZIP_TypeDef *) EZIP_BASE)
 
#define hwp_efusec   ((EFUSEC_TypeDef *) EFUSEC_BASE)
 
#define hwp_rtc   ((RTC_TypeDef *) RTC_BASE)
 
#define hwp_pmuc   ((PMUC_TypeDef *) PMUC_BASE)
 
#define hwp_qspi1   ((QSPI_TypeDef *) QSPI1_BASE)
 
#define hwp_qspi2   ((QSPI_TypeDef *) QSPI2_BASE)
 
#define hwp_qspi3   ((QSPI_TypeDef *) QSPI3_BASE)
 
#define hwp_qspi4   ((QSPI_TypeDef *) QSPI4_BASE)
 
#define hwp_psramc   ((PSRAMC_TypeDef *) PSRAMC_BASE)
 
#define hwp_lptim1   ((LPTIM_TypeDef *) LPTIM1_BASE)
 
#define hwp_lptim2   ((LPTIM_TypeDef *) LPTIM2_BASE)
 
#define hwp_lptim3   ((LPTIM_TypeDef *) LPTIM3_BASE)
 
#define hwp_hpsys_cfg   ((HPSYS_CFG_TypeDef *) HPSYS_CFG_BASE)
 
#define hwp_lpsys_cfg   ((LPSYS_CFG_TypeDef *) LPSYS_CFG_BASE)
 
#define hwp_i2s1   ((I2S_TypeDef *) I2S1_BASE)
 
#define hwp_i2s2   ((I2S_TypeDef *) I2S2_BASE)
 
#define hwp_pdm1   ((PDM_TypeDef *) PDM1_BASE)
 
#define hwp_pdm2   ((PDM_TypeDef *) PDM2_BASE)
 
#define hwp_crc   ((CRC_TypeDef *) CRC_BASE)
 
#define hwp_trng   ((TRNG_TypeDef *) TRNG_BASE)
 
#define hwp_lcdc1   ((LCD_IF_TypeDef *) LCDC1_BASE)
 
#define hwp_lcdc2   ((LCD_IF_TypeDef *) LCDC2_BASE)
 
#define hwp_extdma   ((EXTDMA_TypeDef *) EXTDMA_BASE)
 
#define hwp_sdmmc1   ((SDMMC_TypeDef *) SDMMC1_BASE)
 
#define hwp_sdmmc2   ((SDMMC_TypeDef *) SDMMC2_BASE)
 
#define hwp_aes_acc   ((AES_ACC_TypeDef *) AES_BASE)
 
#define hwp_gpio1   ((GPIO_TypeDef *) GPIO1_BASE)
 
#define hwp_gpio2   ((GPIO_TypeDef *) GPIO2_BASE)
 
#define hwp_usbc   ((USBC_X_Typedef *) USBC_BASE)
 
#define hwp_pinmux1   ((HPSYS_PINMUX_TypeDef *) PINMUX1_BASE)
 
#define hwp_pinmux2   ((LPSYS_PINMUX_TypeDef *) PINMUX2_BASE)
 
#define hwp_hpsys_aon   ((HPSYS_AON_TypeDef *) HPSYS_AON_BASE)
 
#define hwp_lpsys_aon   ((LPSYS_AON_TypeDef *) LPSYS_AON_BASE)
 
#define hwp_gpadc1   ((GPADC_TypeDef *) GPADC_BASE)
 
#define hwp_sdadc   ((SDADC_TypeDef *) SDADC_BASE)
 
#define hwp_lpcomp   ((LPCOMP_TypeDef *) LPCOMP_BASE)
 
#define hwp_tsen   ((TSEN_TypeDef *) TSEN_BASE)
 
#define hwp_patch   ((PATCH_TypeDef *) PATCH_BASE)
 
#define hwp_ble_rfc   ((BLE_RF_DIG_TypeDef *) BLE_RFC_BASE)
 
#define hwp_ble_phy   ((BLE_PHY_TypeDef *) BLE_PHY_BASE)
 
#define hwp_ble_mac   ((BLE_MAC_TypeDef *) BLE_MAC_BASE)
 
#define hwp_wdt1   ((WDT_TypeDef *) WDT1_BASE)
 
#define hwp_wdt2   ((WDT_TypeDef *) WDT2_BASE)
 
#define hwp_iwdt   ((WDT_TypeDef *) IWDT_BASE)
 
#define hwp_usbc_x   ((USBC_X_Typedef *) USBC_X_BASE))
 
#define USART1   hwp_usart1
 
#define USART2   hwp_usart2
 
#define USART3   hwp_usart3
 
#define USART4   hwp_usart4
 
#define USART5   hwp_usart5
 
#define DMA1   hwp_dmac1
 
#define DMA2   hwp_dmac2
 
#define FLASH1   hwp_qspi1
 
#define FLASH2   hwp_qspi2
 
#define FLASH3   hwp_qspi3
 
#define FLASH4   hwp_qspi4
 
#define SDIO1   hwp_sdmmc1
 
#define SDIO2   hwp_sdmmc2
 
#define SPI1   hwp_spi1
 
#define SPI2   hwp_spi2
 
#define SPI3   hwp_spi3
 
#define SPI4   hwp_spi4
 
#define GPTIM1   hwp_gptim1
 
#define GPTIM2   hwp_gptim2
 
#define GPTIM3   hwp_gptim3
 
#define GPTIM4   hwp_gptim4
 
#define GPTIM5   hwp_gptim5
 
#define BTIM1   hwp_btim1
 
#define BTIM2   hwp_btim2
 
#define BTIM3   hwp_btim3
 
#define BTIM4   hwp_btim4
 
#define LPTIM1   hwp_lptim1
 
#define LPTIM2   hwp_lptim2
 
#define LPTIM3   hwp_lptim3
 
#define TRNG   hwp_trng
 
#define PSRAM   hwp_psramc
 
#define H2L_MAILBOX   ((MAILBOX_CH_TypeDef *)HMAILBOX_BASE)
 
#define HMUTEX_CH1   ((MUTEX_CH_TypeDef *)&hwp_hmailbox->C1EXR)
 
#define HMUTEX_CH2   ((MUTEX_CH_TypeDef *)&hwp_hmailbox->C2EXR)
 
#define L2H_MAILBOX   ((MAILBOX_CH_TypeDef *)LMAILBOX_BASE)
 
#define LMUTEX_CH1   ((MUTEX_CH_TypeDef *)&hwp_lmailbox->C1EXR)
 
#define LMUTEX_CH2   ((MUTEX_CH_TypeDef *)&hwp_lmailbox->C2EXR)
 
#define EPIC   hwp_epic
 
#define LCDC1   hwp_lcdc1
 
#define LCDC2   hwp_lcdc2
 
#define I2C1   hwp_i2c1
 
#define I2C2   hwp_i2c2
 
#define I2C3   hwp_i2c3
 
#define I2C4   hwp_i2c4
 
#define I2C5   hwp_i2c5
 
#define I2C6   hwp_i2c6
 
#define CRC   hwp_crc
 
#define EZIP   hwp_ezip
 
#define DMA1_Channel1   ((DMA_Channel_TypeDef *) &DMA1->CCR1)
 
#define DMA1_Channel2   ((DMA_Channel_TypeDef *) &DMA1->CCR2)
 
#define DMA1_Channel3   ((DMA_Channel_TypeDef *) &DMA1->CCR3)
 
#define DMA1_Channel4   ((DMA_Channel_TypeDef *) &DMA1->CCR4)
 
#define DMA1_Channel5   ((DMA_Channel_TypeDef *) &DMA1->CCR5)
 
#define DMA1_Channel6   ((DMA_Channel_TypeDef *) &DMA1->CCR6)
 
#define DMA1_Channel7   ((DMA_Channel_TypeDef *) &DMA1->CCR7)
 
#define DMA1_Channel8   ((DMA_Channel_TypeDef *) &DMA1->CCR8)
 
#define DMA1_CSELR   ((DMA_Request_TypeDef *) &DMA1->CSELR1)
 
#define DMA2_Channel1   ((DMA_Channel_TypeDef *) &DMA2->CCR1)
 
#define DMA2_Channel2   ((DMA_Channel_TypeDef *) &DMA2->CCR2)
 
#define DMA2_Channel3   ((DMA_Channel_TypeDef *) &DMA2->CCR3)
 
#define DMA2_Channel4   ((DMA_Channel_TypeDef *) &DMA2->CCR4)
 
#define DMA2_Channel5   ((DMA_Channel_TypeDef *) &DMA2->CCR5)
 
#define DMA2_Channel6   ((DMA_Channel_TypeDef *) &DMA2->CCR6)
 
#define DMA2_Channel7   ((DMA_Channel_TypeDef *) &DMA2->CCR7)
 
#define DMA2_Channel8   ((DMA_Channel_TypeDef *) &DMA2->CCR8)
 
#define DMA2_CSELR   ((DMA_Request_TypeDef *) &DMA2->CSELR1)
 

Detailed Description

Macro Definition Documentation

◆ EPIC

#define EPIC   hwp_epic

EPIC instance

◆ EZIP

#define EZIP   hwp_ezip

EZIP instance

◆ H2L_MAILBOX

#define H2L_MAILBOX   ((MAILBOX_CH_TypeDef *)HMAILBOX_BASE)

HCPU2LCPU mailbox instance

◆ HCPU2LCPU_OFFSET

#define HCPU2LCPU_OFFSET   (0x0A000000)

Peripheral_memory_map

◆ HCPU_ADDR_2_LCPU_ADDR

#define HCPU_ADDR_2_LCPU_ADDR (   addr)    (HCPU_IS_SRAM_ADDR((addr)) ? (uint32_t)((addr) + HCPU2LCPU_OFFSET) : (uint32_t)(addr))

Convert HCPU SRAM address which can be used by LCPU.

Parameters
addrHCPU SRAM address
Return values
addresswhich can be accessed by LCPU

◆ HMUTEX_CH1

#define HMUTEX_CH1   ((MUTEX_CH_TypeDef *)&hwp_hmailbox->C1EXR)

HCPU mutex instance channel1

◆ HMUTEX_CH2

#define HMUTEX_CH2   ((MUTEX_CH_TypeDef *)&hwp_hmailbox->C2EXR)

HCPU mutex instance channel2

◆ hwp_epic

#define hwp_epic   ((EPIC_TypeDef *) EPIC_BASE)

EPIC instance

◆ hwp_ezip

#define hwp_ezip   ((EZIP_TypeDef *) EZIP_BASE)

EZIP instance

◆ hwp_gpio1

#define hwp_gpio1   ((GPIO_TypeDef *) GPIO1_BASE)

GPIO1

◆ hwp_gpio2

#define hwp_gpio2   ((GPIO_TypeDef *) GPIO2_BASE)

GPIO2

◆ hwp_hpsys_aon

#define hwp_hpsys_aon   ((HPSYS_AON_TypeDef *) HPSYS_AON_BASE)

HPSYS AON

◆ hwp_lpsys_aon

#define hwp_lpsys_aon   ((LPSYS_AON_TypeDef *) LPSYS_AON_BASE)

LPSYS AON

◆ hwp_pinmux1

#define hwp_pinmux1   ((HPSYS_PINMUX_TypeDef *) PINMUX1_BASE)

PINMUX1

◆ hwp_pinmux2

#define hwp_pinmux2   ((LPSYS_PINMUX_TypeDef *) PINMUX2_BASE)

PINMUX2

◆ L2H_MAILBOX

#define L2H_MAILBOX   ((MAILBOX_CH_TypeDef *)LMAILBOX_BASE)

LCPU2HCPU mailbox instance

◆ LCPU_ADDR_2_HCPU_ADDR

#define LCPU_ADDR_2_HCPU_ADDR (   addr)    (addr)

Convert LCPU SRAM address which can be used by HCPU.

Parameters
addrLCPU SRAM address
Return values
addresswhich can be accessed by HCPU

◆ LCPU_DTCM_ADDR_2_HCPU_ADDR

#define LCPU_DTCM_ADDR_2_HCPU_ADDR (   addr)    ((addr) + LCPUDTCM2HCPU_OFFSET)

Convert LCPU DTCM address which can be used by HCPU.

Parameters
addrLCPU ITCM address
Return values
addresswhich can be accessed by HCPU

◆ LCPU_ITCM_ADDR_2_HCPU_ADDR

#define LCPU_ITCM_ADDR_2_HCPU_ADDR (   addr)    ((addr) + LCPUITCM2HCPU_OFFSET)

Convert LCPU ITCM address which can be used by HCPU.

Parameters
addrLCPU ITCM address
Return values
addresswhich can be accessed by HCPU

◆ LCPU_ROM_ADDR_2_HCPU_ADDR

#define LCPU_ROM_ADDR_2_HCPU_ADDR (   addr)    ((addr) + LCPUROM2HCPU_OFFSET)

Convert LCPU ROM address which can be used by HCPU.

Parameters
addrLCPU ROM address
Return values
addresswhich can be accessed by HCPU

◆ LMUTEX_CH1

#define LMUTEX_CH1   ((MUTEX_CH_TypeDef *)&hwp_lmailbox->C1EXR)

LCPU mutex instance channel1

◆ LMUTEX_CH2

#define LMUTEX_CH2   ((MUTEX_CH_TypeDef *)&hwp_lmailbox->C2EXR)

LCPU mutex instance channel2