From b0955b26cb75ba6d5eae3e5cbc9ca432d5833f1b Mon Sep 17 00:00:00 2001 From: HalfSweet Date: Tue, 8 Apr 2025 22:02:42 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BD=BF=E7=94=A8FGPIO=E4=BD=9C?= =?UTF-8?q?=E4=B8=BA=E6=8E=A7=E5=88=B6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- projects/HSLink-Pro/src/DAP_config.h | 36 ++++++++-------- projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_IO.c | 2 +- projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_SPI.c | 4 +- projects/HSLink-Pro/src/SW_DP/SW_DP.c | 6 +-- projects/HSLink-Pro/src/SW_DP/SW_DP_IO.c | 2 +- projects/HSLink-Pro/src/SW_DP/SW_DP_SPI.c | 42 +++++++++---------- projects/HSLink-Pro/src/main.cpp | 6 +-- 7 files changed, 49 insertions(+), 49 deletions(-) diff --git a/projects/HSLink-Pro/src/DAP_config.h b/projects/HSLink-Pro/src/DAP_config.h index 4368bd6..2fc6ef1 100644 --- a/projects/HSLink-Pro/src/DAP_config.h +++ b/projects/HSLink-Pro/src/DAP_config.h @@ -307,8 +307,8 @@ __STATIC_INLINE uint8_t DAP_GetProductFirmwareVersionString(char *str) #define SWD_SPI_BASE_CLOCK_NAME clock_spi1 #define PIN_GPIOM_BASE HPM_GPIOM -#define PIN_GPIO HPM_GPIO0 -#define PIN_SWDIO_DIR_GPIO HPM_GPIO0 +#define PIN_GPIO HPM_FGPIO +#define PIN_GPIOM gpiom_core0_fast #if defined(USE_HPM_BOARD_JTAG_GPIO) && (USE_HPM_BOARD_JTAG_GPIO == 1) #define PIN_TCK IOC_PAD_PA06 @@ -368,9 +368,9 @@ Configures the DAP Hardware I/O pins for JTAG mode: __STATIC_INLINE void gpiom_configure_pin_control_setting(uint16_t gpio_index) { gpiom_set_pin_controller(PIN_GPIOM_BASE, GPIO_GET_PORT_INDEX(gpio_index), GPIO_GET_PIN_INDEX(gpio_index), - gpiom_soc_gpio0); + PIN_GPIOM); gpiom_enable_pin_visibility(PIN_GPIOM_BASE, GPIO_GET_PORT_INDEX(gpio_index), GPIO_GET_PIN_INDEX(gpio_index), - gpiom_soc_gpio0); + PIN_GPIOM); // gpiom_lock_pin(PIN_GPIOM_BASE, GPIO_GET_PORT_INDEX(gpio_index), GPIO_GET_PIN_INDEX(gpio_index)); } @@ -412,32 +412,32 @@ __STATIC_INLINE void PORT_OFF(void) gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(IOC_PAD_PA27), GPIO_GET_PIN_INDEX(IOC_PAD_PA27)); gpio_disable_pin_interrupt(PIN_GPIO, GPIO_GET_PORT_INDEX(IOC_PAD_PA27), GPIO_GET_PIN_INDEX(IOC_PAD_PA27)); gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(IOC_PAD_PA27), GPIO_GET_PIN_INDEX(IOC_PAD_PA27), - gpiom_soc_gpio0); + PIN_GPIOM); gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TCK), GPIO_GET_PIN_INDEX(PIN_TCK)); gpio_disable_pin_interrupt(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TCK), GPIO_GET_PIN_INDEX(PIN_TCK)); - gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TCK), GPIO_GET_PIN_INDEX(PIN_TCK), gpiom_soc_gpio0); + gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TCK), GPIO_GET_PIN_INDEX(PIN_TCK), PIN_GPIOM); gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); gpio_disable_pin_interrupt(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); - gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS), gpiom_soc_gpio0); + gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS), PIN_GPIOM); gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TDI), GPIO_GET_PIN_INDEX(PIN_TDI)); gpio_disable_pin_interrupt(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TDI), GPIO_GET_PIN_INDEX(PIN_TDI)); - gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TDI), GPIO_GET_PIN_INDEX(PIN_TDI), gpiom_soc_gpio0); + gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TDI), GPIO_GET_PIN_INDEX(PIN_TDI), PIN_GPIOM); gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TDO), GPIO_GET_PIN_INDEX(PIN_TDO)); gpio_disable_pin_interrupt(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TDO), GPIO_GET_PIN_INDEX(PIN_TDO)); - gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TDO), GPIO_GET_PIN_INDEX(PIN_TDO), gpiom_soc_gpio0); + gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_TDO), GPIO_GET_PIN_INDEX(PIN_TDO), PIN_GPIOM); gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_SRST), GPIO_GET_PIN_INDEX(PIN_SRST)); gpio_disable_pin_interrupt(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_SRST), GPIO_GET_PIN_INDEX(PIN_SRST)); - gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_SRST), GPIO_GET_PIN_INDEX(PIN_SRST), gpiom_soc_gpio0); + gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_SRST), GPIO_GET_PIN_INDEX(PIN_SRST), PIN_GPIOM); gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_JTAG_TRST), GPIO_GET_PIN_INDEX(PIN_JTAG_TRST)); gpio_disable_pin_interrupt(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_JTAG_TRST), GPIO_GET_PIN_INDEX(PIN_JTAG_TRST)); gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(PIN_JTAG_TRST), GPIO_GET_PIN_INDEX(PIN_JTAG_TRST), - gpiom_soc_gpio0); + PIN_GPIOM); } @@ -479,7 +479,7 @@ __STATIC_FORCEINLINE void PIN_SWCLK_TCK_CLR(void) */ __STATIC_FORCEINLINE uint32_t PIN_SWDIO_TMS_IN(void) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); uint32_t sta = gpio_read_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); __asm volatile("fence io, io"); return sta; @@ -490,7 +490,7 @@ Set the SWDIO/TMS DAP hardware I/O pin to high level. */ __STATIC_FORCEINLINE void PIN_SWDIO_TMS_SET(void) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS), true); __asm volatile("fence io, io"); } @@ -500,7 +500,7 @@ Set the SWDIO/TMS DAP hardware I/O pin to low level. */ __STATIC_FORCEINLINE void PIN_SWDIO_TMS_CLR(void) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS), false); __asm volatile("fence io, io"); } @@ -510,7 +510,7 @@ __STATIC_FORCEINLINE void PIN_SWDIO_TMS_CLR(void) */ __STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN(void) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); uint32_t sta = gpio_read_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); __asm volatile("fence io, io"); return sta; @@ -521,7 +521,7 @@ __STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN(void) */ __STATIC_FORCEINLINE void PIN_SWDIO_OUT(uint32_t bit) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); if (bit & 0x01) { gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS), true); } else { @@ -536,7 +536,7 @@ called prior \ref PIN_SWDIO_OUT function calls. */ __STATIC_FORCEINLINE void PIN_SWDIO_OUT_ENABLE(void) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); HPM_IOC->PAD[PIN_TMS].FUNC_CTL = IOC_PAD_FUNC_CTL_ALT_SELECT_SET(0); /* as gpio*/ HPM_IOC->PAD[PIN_TMS].PAD_CTL = IOC_PAD_PAD_CTL_PRS_SET(2) | IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1); gpiom_configure_pin_control_setting(PIN_TMS); @@ -549,7 +549,7 @@ called prior \ref PIN_SWDIO_IN function calls. */ __STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE(void) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); HPM_IOC->PAD[PIN_TMS].PAD_CTL = IOC_PAD_PAD_CTL_PRS_SET(2); HPM_IOC->PAD[PIN_TMS].FUNC_CTL = IOC_PAD_FUNC_CTL_ALT_SELECT_SET(0); gpio_set_pin_input(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); diff --git a/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_IO.c b/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_IO.c index a9ba101..e72068c 100644 --- a/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_IO.c +++ b/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_IO.c @@ -301,7 +301,7 @@ JTAG_TransferFunction(Slow) gpio_set_pin_output(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_JTAG_TRST), GPIO_GET_PIN_INDEX(PIN_JTAG_TRST)); gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_JTAG_TRST), GPIO_GET_PIN_INDEX(PIN_JTAG_TRST), 1); - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); // JTAG模式下SWDIO_DIR为高 + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); // JTAG模式下SWDIO_DIR为高 HPM_IOC->PAD[PIN_TDO].PAD_CTL = IOC_PAD_PAD_CTL_PRS_SET(2) | IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1) | IOC_PAD_PAD_CTL_SPD_SET(3); HPM_IOC->PAD[PIN_TCK].PAD_CTL = IOC_PAD_PAD_CTL_PRS_SET(2) | IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1) | IOC_PAD_PAD_CTL_SPD_SET(3); diff --git a/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_SPI.c b/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_SPI.c index 1877ad0..512da4c 100644 --- a/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_SPI.c +++ b/projects/HSLink-Pro/src/JTAG_DP/JTAG_DP_SPI.c @@ -43,7 +43,7 @@ // JTAG Macros -#define PIN_JTAG_GPIO HPM_GPIO0 +#define PIN_JTAG_GPIO HPM_FGPIO #define JTAG_SPI_DMA HPM_HDMA #define JTAG_SPI_DMAMUX HPM_DMAMUX @@ -120,7 +120,7 @@ void SPI_PORT_JTAG_SETUP(void) gpio_set_pin_output(PIN_JTAG_GPIO, GPIO_GET_PORT_INDEX(PIN_SINGLE_SPI_JTAG_TMS), GPIO_GET_PIN_INDEX(PIN_SINGLE_SPI_JTAG_TMS)); - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); // TMS引脚在JTAG下始终为输出 if (HSLink_Setting.jtag_single_bit_mode) { diff --git a/projects/HSLink-Pro/src/SW_DP/SW_DP.c b/projects/HSLink-Pro/src/SW_DP/SW_DP.c index 5b74ff1..db489eb 100644 --- a/projects/HSLink-Pro/src/SW_DP/SW_DP.c +++ b/projects/HSLink-Pro/src/SW_DP/SW_DP.c @@ -14,15 +14,15 @@ void PORT_SWD_SETUP(void) void SWJ_Sequence(uint32_t count, const uint8_t *data) { if (DAP_Data.debug_port == DAP_PORT_JTAG) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); // SWDIO 输出 PIN_SWDIO_TMS_SET(); // 切换为GPIO控制器 HPM_IOC->PAD[PIN_TCK].FUNC_CTL = IOC_PAD_FUNC_CTL_ALT_SELECT_SET(0) | IOC_PAD_FUNC_CTL_LOOP_BACK_MASK; /* as gpio*/ HPM_IOC->PAD[PIN_TMS].FUNC_CTL = IOC_PAD_FUNC_CTL_ALT_SELECT_SET(0); /* as gpio*/ - gpio_set_pin_output(HPM_GPIO0, GPIO_GET_PORT_INDEX(PIN_TCK), GPIO_GET_PIN_INDEX(PIN_TCK)); - gpio_set_pin_output(HPM_GPIO0, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); + gpio_set_pin_output(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TCK), GPIO_GET_PIN_INDEX(PIN_TCK)); + gpio_set_pin_output(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); IO_SWJ_Sequence(count, data); if (HSLink_Setting.jtag_port_mode == PORT_MODE_SPI) { diff --git a/projects/HSLink-Pro/src/SW_DP/SW_DP_IO.c b/projects/HSLink-Pro/src/SW_DP/SW_DP_IO.c index c8e7018..87d314e 100644 --- a/projects/HSLink-Pro/src/SW_DP/SW_DP_IO.c +++ b/projects/HSLink-Pro/src/SW_DP/SW_DP_IO.c @@ -90,7 +90,7 @@ void IO_PORT_SWD_SETUP (void) { gpio_set_pin_output(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_TMS), GPIO_GET_PIN_INDEX(PIN_TMS)); gpio_set_pin_output(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_SRST), GPIO_GET_PIN_INDEX(PIN_SRST)); - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); // 默认SWDIO为输入 + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); // 默认SWDIO为输入 HPM_IOC->PAD[PIN_TCK].PAD_CTL = IOC_PAD_PAD_CTL_PRS_SET(2) | IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1) | IOC_PAD_PAD_CTL_SPD_SET(3); HPM_IOC->PAD[PIN_TMS].PAD_CTL = IOC_PAD_PAD_CTL_PRS_SET(2) | IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1) | IOC_PAD_PAD_CTL_SPD_SET(3); diff --git a/projects/HSLink-Pro/src/SW_DP/SW_DP_SPI.c b/projects/HSLink-Pro/src/SW_DP/SW_DP_SPI.c index 4afebb0..d92c022 100644 --- a/projects/HSLink-Pro/src/SW_DP/SW_DP_SPI.c +++ b/projects/HSLink-Pro/src/SW_DP/SW_DP_SPI.c @@ -52,7 +52,7 @@ void SPI_PORT_SWD_SETUP(void) gpio_set_pin_output(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_SRST), GPIO_GET_PIN_INDEX(PIN_SRST)); gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(PIN_SRST), GPIO_GET_PIN_INDEX(PIN_SRST), SRST_Level); - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); // 默认SWDIO为输入 + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); // 默认SWDIO为输入 swd_emulation_init(); } @@ -68,7 +68,7 @@ void SPI_SWJ_Sequence (uint32_t count, const uint8_t *data) uint32_t integer_val = (count / 8); uint32_t remaind_val = (count % 8); // printf("SWJ_Sequence %d\n", count); - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); spi_set_transfer_mode(SWD_SPI_BASE, spi_trans_write_only); SWD_SPI_BASE->CTRL |= SPI_CTRL_RXFIFORST_MASK | SPI_CTRL_TXFIFORST_MASK; while (SWD_SPI_BASE->STATUS & (SPI_CTRL_RXFIFORST_MASK | SPI_CTRL_TXFIFORST_MASK)) { @@ -93,7 +93,7 @@ void SPI_SWJ_Sequence (uint32_t count, const uint8_t *data) while (SWD_SPI_BASE->STATUS & SPI_STATUS_SPIACTIVE_MASK) { }; } - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); } #endif @@ -119,7 +119,7 @@ void SPI_SWD_Sequence (uint32_t info, const uint8_t *swdo, uint8_t *swdi) remaind_val = (count % 8); spi_set_data_bits(SWD_SPI_BASE, 8); if (info & SWD_SEQUENCE_DIN) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); spi_set_read_data_count(SWD_SPI_BASE, integer_val); spi_set_transfer_mode(SWD_SPI_BASE, spi_trans_read_only); SWD_SPI_BASE->CMD = 0xFF; @@ -132,7 +132,7 @@ void SPI_SWD_Sequence (uint32_t info, const uint8_t *swdo, uint8_t *swdi) while (SWD_SPI_BASE->STATUS & SPI_STATUS_SPIACTIVE_MASK) { }; if (remaind_val > 0) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); spi_set_read_data_count(SWD_SPI_BASE, 1); spi_set_data_bits(SWD_SPI_BASE, remaind_val); SWD_SPI_BASE->CMD = 0xFF; @@ -143,7 +143,7 @@ void SPI_SWD_Sequence (uint32_t info, const uint8_t *swdo, uint8_t *swdi) } } } else { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); spi_set_write_data_count(SWD_SPI_BASE, integer_val); spi_set_transfer_mode(SWD_SPI_BASE, spi_trans_write_only); SWD_SPI_BASE->CMD = 0xFF; @@ -160,7 +160,7 @@ void SPI_SWD_Sequence (uint32_t info, const uint8_t *swdo, uint8_t *swdi) }; } } - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); } // SWD Transfer I/O @@ -199,7 +199,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) } host_data |= ((request & 0x0F) << 1) | (parity << 5); parity = 0; - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); spi_set_transfer_mode(SWD_SPI_BASE, spi_trans_write_only); if (request & DAP_TRANSFER_RnW) { spi_set_data_bits(SWD_SPI_BASE, 8); @@ -215,7 +215,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) SWD_SPI_BASE->DATA = host_data; while (SWD_SPI_BASE->STATUS & SPI_STATUS_SPIACTIVE_MASK) { }; - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); spi_set_transfer_mode(SWD_SPI_BASE, spi_trans_read_only); spi_set_data_bits(SWD_SPI_BASE, ack_width); SWD_SPI_BASE->CMD = 0xFF; @@ -230,7 +230,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) /* Data transfer */ if (request & DAP_TRANSFER_RnW) { /* Read data */ - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); SWD_SPI_BASE->TRANSCTRL = 0x2000000; /* only read mode*/ SWD_SPI_BASE->TRANSFMT = 0x1F18; /* datalen = 32bit, mosibidir = 1, lsb=1 */ SWD_SPI_BASE->CMD = 0xFF; @@ -248,7 +248,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) }; /* Turnaround */ if (DAP_Data.swd_conf.turnaround > 0) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); SWD_SPI_BASE->TRANSCTRL = 0x01000000; /* only write mode*/ SWD_SPI_BASE->TRANSFMT = 0x0018; /* datalen = 1bit, mosibidir = 1, lsb=1 */ spi_set_write_data_count(SWD_SPI_BASE, DAP_Data.swd_conf.turnaround); @@ -269,7 +269,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) (*data) = dummy; } } else { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); SWD_SPI_BASE->TRANSCTRL = 0x1000000; /* only write mode*/ SWD_SPI_BASE->TRANSFMT = 0x1F18; /* datalen = 32bit, mosibidir = 1, lsb=1 */ SWD_SPI_BASE->CMD = 0xFF; @@ -282,13 +282,13 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) while (SWD_SPI_BASE->STATUS & SPI_STATUS_SPIACTIVE_MASK) { }; } - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); /* Capture Timestamp */ if (request & DAP_TRANSFER_TIMESTAMP) { DAP_Data.timestamp = TIMESTAMP_GET(); } if (DAP_Data.transfer.idle_cycles > 0) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); SWD_SPI_BASE->TRANSCTRL = 0x01000000; /* only write mode*/ SWD_SPI_BASE->TRANSFMT = 0x0018; /* datalen = 1bit, mosibidir = 1, lsb=1 */ spi_set_write_data_count(SWD_SPI_BASE, DAP_Data.transfer.idle_cycles); @@ -303,12 +303,12 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) while (SWD_SPI_BASE->STATUS & SPI_STATUS_SPIACTIVE_MASK) { }; } - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); return ack; } /* WAIT or FAULT response */ if ((ack == DAP_TRANSFER_WAIT) || (ack == DAP_TRANSFER_FAULT)) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); SWD_SPI_BASE->TRANSCTRL = 0x02000000; /* only read mode*/ SWD_SPI_BASE->TRANSFMT = 0x0018; /* datalen = 1bit, mosibidir = 1, lsb=1 */ /* Dummy Read RDATA[0:31] + Parity */ @@ -323,7 +323,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) } /* Turnaround */ if (DAP_Data.swd_conf.turnaround > 0) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); SWD_SPI_BASE->TRANSCTRL = 0x01000000; /* only write mode*/ SWD_SPI_BASE->TRANSFMT = 0x0018; /* datalen = 1bit, mosibidir = 1, lsb=1 */ spi_set_write_data_count(SWD_SPI_BASE, DAP_Data.swd_conf.turnaround); @@ -336,7 +336,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) } /* Dummy Write WDATA[0:31] + Parity */ if (DAP_Data.swd_conf.data_phase && ((request & DAP_TRANSFER_RnW) == 0U)) { - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); SWD_SPI_BASE->TRANSCTRL = 0x01000000; /* only write mode*/ SWD_SPI_BASE->TRANSFMT = 0x0018; /* datalen = 1bit, mosibidir = 1, lsb=1 */ spi_set_write_data_count(SWD_SPI_BASE, 33); @@ -349,11 +349,11 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) while (SWD_SPI_BASE->STATUS & SPI_STATUS_SPIACTIVE_MASK) { }; } - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); return ack; } /* Protocol error */ - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); spi_set_transfer_mode(SWD_SPI_BASE, spi_trans_write_only); spi_set_data_bits(SWD_SPI_BASE, 1); spi_set_write_data_count(SWD_SPI_BASE, DAP_Data.swd_conf.turnaround + 32U + 1U); @@ -364,7 +364,7 @@ uint8_t SPI_SWD_Transfer(uint32_t request, uint32_t *data) }; } spi_set_data_bits(SWD_SPI_BASE, 1); - gpio_write_pin(PIN_SWDIO_DIR_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 0); return ack; } #endif diff --git a/projects/HSLink-Pro/src/main.cpp b/projects/HSLink-Pro/src/main.cpp index 3cac805..a218096 100644 --- a/projects/HSLink-Pro/src/main.cpp +++ b/projects/HSLink-Pro/src/main.cpp @@ -31,9 +31,9 @@ ATTR_ALWAYS_INLINE static inline void SWDIO_DIR_Init(void) { HPM_IOC->PAD[SWDIO_DIR].FUNC_CTL = IOC_PAD_FUNC_CTL_ALT_SELECT_SET(0); - gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), gpiom_soc_gpio0); - gpio_set_pin_output(HPM_GPIO0, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR)); - gpio_write_pin(HPM_GPIO0, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); + gpiom_set_pin_controller(HPM_GPIOM, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), PIN_GPIOM); + gpio_set_pin_output(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR)); + gpio_write_pin(PIN_GPIO, GPIO_GET_PORT_INDEX(SWDIO_DIR), GPIO_GET_PIN_INDEX(SWDIO_DIR), 1); } static void EWDG_Init() {