mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-08-18 11:36:29 +08:00
[bsp][nxp]support imxrt1180-evk board gpio and LPUART, Serial V2, DMA (V2) (#11489)
* support gpio and LPUART, Serial V2, DMA (V2) * remove unused ci comment workflows * fix: correct YAML indentation on line 12 in ci workflow files * [bsp][nxp]support imxrt1180-evk board gpio and LPUART, Serial V2, DMA V2 * fix: address review feedback - revert CI/drv_uart.c/dev_serial.c, remove drv_uart_v2.h, use drv_uart.h instead * revert: remove framework file changes per review feedback * fix: remove unused variable 'value' in imxrt_pin_read * fix: remove trailing whitespace in pin_mux.c
This commit is contained in:
@@ -238,10 +238,11 @@ CONFIG_RT_USING_DEVICE_IPC=y
|
||||
CONFIG_RT_UNAMED_PIPE_NUMBER=64
|
||||
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
|
||||
CONFIG_RT_USING_SERIAL=y
|
||||
CONFIG_RT_USING_SERIAL_V1=y
|
||||
# CONFIG_RT_USING_SERIAL_V2 is not set
|
||||
# CONFIG_RT_SERIAL_USING_DMA is not set
|
||||
CONFIG_RT_SERIAL_RB_BUFSZ=64
|
||||
# CONFIG_RT_USING_SERIAL_V1 is not set
|
||||
CONFIG_RT_USING_SERIAL_V2=y
|
||||
# CONFIG_RT_SERIAL_BUF_STRATEGY_DROP is not set
|
||||
CONFIG_RT_SERIAL_BUF_STRATEGY_OVERWRITE=y
|
||||
CONFIG_RT_SERIAL_USING_DMA=y
|
||||
# CONFIG_RT_USING_SERIAL_BYPASS is not set
|
||||
# CONFIG_RT_USING_CAN is not set
|
||||
# CONFIG_RT_USING_CLOCK_TIME is not set
|
||||
@@ -273,6 +274,7 @@ CONFIG_RT_USING_ADC=y
|
||||
# CONFIG_RT_USING_BLK is not set
|
||||
# CONFIG_RT_USING_REGULATOR is not set
|
||||
# CONFIG_RT_USING_POWER_SUPPLY is not set
|
||||
|
||||
CONFIG_RT_USING_PIN=y
|
||||
# CONFIG_RT_USING_CHERRYUSB is not set
|
||||
# end of Device Drivers
|
||||
@@ -1469,15 +1471,18 @@ CONFIG_BSP_USING_DMA=y
|
||||
CONFIG_BSP_USING_LPADC=y
|
||||
CONFIG_BSP_USING_LPADC1=y
|
||||
CONFIG_BSP_LPADC1_USING_DMA=y
|
||||
# CONFIG_BSP_USING_GPIO is not set
|
||||
CONFIG_BSP_USING_GPIO=y
|
||||
# CONFIG_BSP_USING_RTC is not set
|
||||
# CONFIG_BSP_USING_USB is not set
|
||||
# CONFIG_BSP_USING_SDIO is not set
|
||||
CONFIG_BSP_USING_LPUART=y
|
||||
CONFIG_BSP_USING_LPUART1=y
|
||||
# CONFIG_BSP_LPUART1_RX_USING_DMA is not set
|
||||
# CONFIG_BSP_LPUART1_TX_USING_DMA is not set
|
||||
# CONFIG_BSP_USING_LPUART3 is not set
|
||||
CONFIG_BSP_LPUART1_RX_USING_DMA=y
|
||||
CONFIG_BSP_LPUART1_RX_DMA_CHANNEL=0
|
||||
CONFIG_BSP_LPUART1_TX_USING_DMA=y
|
||||
CONFIG_BSP_LPUART1_TX_DMA_CHANNEL=1
|
||||
# CONFIG_BSP_USING_LPUART10 is not set
|
||||
# CONFIG_BSP_USING_LPUART12 is not set
|
||||
# CONFIG_BSP_USING_CAN is not set
|
||||
# CONFIG_BSP_USING_FLEXSPI is not set
|
||||
# end of On-chip Peripheral Drivers
|
||||
|
||||
@@ -12,14 +12,21 @@
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
#include <drv_gpio.h>
|
||||
#include <fsl_rgpio.h>
|
||||
|
||||
#define LED_PIN GET_PIN(4, 27)
|
||||
|
||||
int main(void)
|
||||
{
|
||||
rt_kprintf("MIMXRT1180_CM33 Hello_World\r\n");
|
||||
rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
|
||||
|
||||
while (1)
|
||||
{
|
||||
rt_pin_write(LED_PIN, PIN_HIGH);
|
||||
rt_thread_mdelay(500);
|
||||
rt_pin_write(LED_PIN, PIN_LOW);
|
||||
rt_thread_mdelay(500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -118,34 +118,62 @@ menu "On-chip Peripheral Drivers"
|
||||
int "Set LPUART1 TX DMA channel (0-32)"
|
||||
default 1
|
||||
|
||||
config BSP_USING_LPUART3
|
||||
bool "Enable LPUART3"
|
||||
default n
|
||||
config BSP_USING_LPUART10
|
||||
bool "Enable LPUART10"
|
||||
default n
|
||||
|
||||
config BSP_LPUART3_RX_USING_DMA
|
||||
bool "Enable LPUART3 RX DMA"
|
||||
depends on BSP_USING_LPUART3
|
||||
select BSP_USING_DMA
|
||||
select RT_SERIAL_USING_DMA
|
||||
default n
|
||||
config BSP_LPUART10_RX_USING_DMA
|
||||
bool "Enable LPUART10 RX DMA"
|
||||
depends on BSP_USING_LPUART10
|
||||
select BSP_USING_DMA
|
||||
select RT_SERIAL_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_LPUART3_RX_DMA_CHANNEL
|
||||
depends on BSP_LPUART3_RX_USING_DMA
|
||||
int "Set LPUART3 RX DMA channel (0-32)"
|
||||
default 0
|
||||
config BSP_LPUART10_RX_DMA_CHANNEL
|
||||
depends on BSP_LPUART10_RX_USING_DMA
|
||||
int "Set LPUART10 RX DMA channel (0-32)"
|
||||
default 0
|
||||
|
||||
config BSP_LPUART3_TX_USING_DMA
|
||||
bool "Enable LPUART3 TX DMA"
|
||||
depends on BSP_USING_LPUART3
|
||||
select BSP_USING_DMA
|
||||
select RT_SERIAL_USING_DMA
|
||||
default n
|
||||
config BSP_LPUART10_TX_USING_DMA
|
||||
bool "Enable LPUART10 TX DMA"
|
||||
depends on BSP_USING_LPUART10
|
||||
select BSP_USING_DMA
|
||||
select RT_SERIAL_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_LPUART3_TX_DMA_CHANNEL
|
||||
depends on BSP_LPUART3_TX_USING_DMA
|
||||
int "Set LPUART3 TX DMA channel (0-32)"
|
||||
default 1
|
||||
endif
|
||||
config BSP_LPUART10_TX_DMA_CHANNEL
|
||||
depends on BSP_LPUART10_TX_USING_DMA
|
||||
int "Set LPUART10 TX DMA channel (0-32)"
|
||||
default 1
|
||||
|
||||
config BSP_USING_LPUART12
|
||||
bool "Enable LPUART12"
|
||||
default n
|
||||
|
||||
config BSP_LPUART12_RX_USING_DMA
|
||||
bool "Enable LPUART12 RX DMA"
|
||||
depends on BSP_USING_LPUART12
|
||||
select BSP_USING_DMA
|
||||
select RT_SERIAL_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_LPUART12_RX_DMA_CHANNEL
|
||||
depends on BSP_LPUART12_RX_USING_DMA
|
||||
int "Set LPUART12 RX DMA channel (0-32)"
|
||||
default 2
|
||||
|
||||
config BSP_LPUART12_TX_USING_DMA
|
||||
bool "Enable LPUART12 TX DMA"
|
||||
depends on BSP_USING_LPUART12
|
||||
select BSP_USING_DMA
|
||||
select RT_SERIAL_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_LPUART12_TX_DMA_CHANNEL
|
||||
depends on BSP_LPUART12_TX_USING_DMA
|
||||
int "Set LPUART12 TX DMA channel (0-32)"
|
||||
default 3
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_I2C
|
||||
bool "Enable I2C"
|
||||
|
||||
@@ -26,10 +26,10 @@ processor_version: 0.15.9
|
||||
#include "pin_mux.h"
|
||||
|
||||
/* FUNCTION ************************************************************************************************************
|
||||
*
|
||||
*
|
||||
* Function Name : BOARD_InitBootPins
|
||||
* Description : Calls initialization functions.
|
||||
*
|
||||
*
|
||||
* END ****************************************************************************************************************/
|
||||
void BOARD_InitBootPins(void) {
|
||||
BOARD_InitPins();
|
||||
@@ -57,75 +57,69 @@ void BOARD_InitPins(void) {
|
||||
CLOCK_EnableClock(kCLOCK_Iomuxc1); /* Turn on LPCG: LPCG is ON. */
|
||||
CLOCK_EnableClock(kCLOCK_Iomuxc2); /* Turn on LPCG: LPCG is ON. */
|
||||
|
||||
// /* GPIO configuration on GPIO_AD_27 (pin M16) */
|
||||
// rgpio_pin_config_t gpio4_pinM16_config = {
|
||||
// .pinDirection = kRGPIO_DigitalOutput,
|
||||
// .outputLogic = 1U,
|
||||
// };
|
||||
// /* Initialize GPIO functionality on GPIO_AD_27 (pin M16) */
|
||||
// RGPIO_PinInit(RGPIO4, 27U, &gpio4_pinM16_config);
|
||||
|
||||
// IOMUXC_SetPinMux(
|
||||
// IOMUXC_GPIO_AD_27_GPIO4_IO27, /* GPIO_AD_27 is configured as GPIO4_IO27 */
|
||||
// 0U);
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_08_LPUART1_TX, /* GPIO_AON_08 is configured as LPUART1_TX */
|
||||
0U); /* Software Input On Field: Input Path is determined by functionality */
|
||||
IOMUXC_GPIO_AON_08_LPUART1_TX,
|
||||
0U);
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_09_LPUART1_RX, /* GPIO_AON_09 is configured as LPUART1_RX */
|
||||
0U); /* Software Input On Field: Input Path is determined by functionality */
|
||||
IOMUXC_GPIO_AON_09_LPUART1_RX,
|
||||
0U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_08_LPUART1_TX, /* GPIO_AON_08 PAD functional properties : */
|
||||
0x02U); /* Slew Rate Field: Fast Slew Rate
|
||||
Drive Strength Field: high driver
|
||||
Pull / Keep Select Field: Pull Disable, Highz
|
||||
Pull Up / Down Config. Field: Weak pull down
|
||||
Open Drain Field: Disabled */
|
||||
IOMUXC_GPIO_AON_08_LPUART1_TX,
|
||||
0x02U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_09_LPUART1_RX, /* GPIO_AON_09 PAD functional properties : */
|
||||
0x02U); /* Slew Rate Field: Fast Slew Rate
|
||||
Drive Strength Field: high driver
|
||||
Pull / Keep Select Field: Pull Disable, Highz
|
||||
Pull Up / Down Config. Field: Weak pull down
|
||||
Open Drain Field: Disabled */
|
||||
IOMUXC_GPIO_AON_09_LPUART1_RX,
|
||||
0x02U);
|
||||
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_16_LPI2C2_SCL, /* GPIO_AON_16 is configured as LPI2C2_SCL */
|
||||
1U); /* Software Input On Field: Force input path of pad GPIO_AON_16 */
|
||||
IOMUXC_GPIO_AD_32_LPUART10_TX,
|
||||
0U);
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_15_LPI2C2_SDA, /* GPIO_AON_15 is configured as LPI2C2_SDA */
|
||||
1U); /* Software Input On Field: Force input path of pad GPIO_AON_15 */
|
||||
IOMUXC_GPIO_AD_33_LPUART10_RX,
|
||||
0U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_16_LPI2C2_SCL, /* GPIO_AON_16 PAD functional properties : */
|
||||
0x1DU); /* Slew Rate Field: Slow Slew Rate
|
||||
Pull Enable Field: Pull Enable
|
||||
Pull Up / Down Config. Field: Weak pull up
|
||||
Open Drain Field: Enabled */
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_15_LPI2C2_SDA, /* GPIO_AON_15 PAD functional properties : */
|
||||
0x1DU); /* Slew Rate Field: Slow Slew Rate
|
||||
Pull Enable Field: Pull Enable
|
||||
Pull Up / Down Config. Field: Weak pull up
|
||||
Open Drain Field: Enabled */
|
||||
IOMUXC_GPIO_AD_32_LPUART10_TX,
|
||||
0x02U);
|
||||
IOMUXC_GPIO_AD_33_LPUART10_RX,
|
||||
0x02U);
|
||||
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AD_18_LPI2C3_SCL, /* GPIO_AD_18 is configured as LPI2C3_SCL */
|
||||
0U); /* Software Input On Field: Input Path is determined by functionality */
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AD_19_LPI2C3_SDA, /* GPIO_AD_19 is configured as LPI2C3_SDA */
|
||||
0U); /* Software Input On Field: Input Path is determined by functionality */
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_18_LPI2C3_SCL, /* GPIO_AD_18 PAD functional properties : */
|
||||
0x1DU); /* Slew Rate Field: Slow Slew Rate
|
||||
Pull Enable Field: Pull Enable
|
||||
Pull Up / Down Config. Field: Weak pull up
|
||||
Open Drain Field: Enabled */
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_19_LPI2C3_SDA, /* GPIO_AD_19 PAD functional properties : */
|
||||
0x1DU); /* Slew Rate Field: Slow Slew Rate
|
||||
Pull Enable Field: Pull Enable
|
||||
Pull Up / Down Config. Field: Weak pull up
|
||||
Open Drain Field: Enabled */
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_19_LPUART12_TX,
|
||||
0U);
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_20_LPUART12_RX,
|
||||
0U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_19_LPUART12_TX,
|
||||
0x02U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_20_LPUART12_RX,
|
||||
0x02U);
|
||||
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_16_LPI2C2_SCL,
|
||||
1U);
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AON_15_LPI2C2_SDA,
|
||||
1U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_16_LPI2C2_SCL,
|
||||
0x1DU);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AON_15_LPI2C2_SDA,
|
||||
0x1DU);
|
||||
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AD_18_LPI2C3_SCL,
|
||||
0U);
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AD_19_LPI2C3_SDA,
|
||||
0U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_18_LPI2C3_SCL,
|
||||
0x1DU);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_19_LPI2C3_SDA,
|
||||
0x1DU);
|
||||
}
|
||||
|
||||
void BOARD_InitLeds(void) {
|
||||
@@ -142,7 +136,7 @@ void BOARD_InitLeds(void) {
|
||||
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AD_27_GPIO4_IO27, /* GPIO_AD_27 is configured as GPIO4_IO27 */
|
||||
0U);
|
||||
0U);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1269,6 +1269,10 @@ void rt_hw_board_init()
|
||||
rt_components_board_init();
|
||||
#endif
|
||||
|
||||
#ifdef RT_USING_HEAP
|
||||
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
|
||||
#endif
|
||||
|
||||
#ifdef RT_USING_CONSOLE
|
||||
rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
|
||||
#endif
|
||||
@@ -1278,8 +1282,6 @@ void rt_hw_board_init()
|
||||
rt_kprintf("Heap: 0x%08x - 0x%08x (Size: %d bytes)\n",
|
||||
HEAP_BEGIN, HEAP_END,
|
||||
(uint32_t)HEAP_END - (uint32_t)HEAP_BEGIN);
|
||||
|
||||
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
#if defined(__heap_size__)
|
||||
#define heap_size __heap_size__
|
||||
#else
|
||||
#define heap_size 0x04000
|
||||
#define heap_size 0x20000
|
||||
#endif
|
||||
|
||||
/* Target specific definition, code & data allocation */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -147,8 +147,9 @@
|
||||
#define RT_USING_DEVICE_IPC
|
||||
#define RT_UNAMED_PIPE_NUMBER 64
|
||||
#define RT_USING_SERIAL
|
||||
#define RT_USING_SERIAL_V1
|
||||
#define RT_SERIAL_RB_BUFSZ 64
|
||||
#define RT_USING_SERIAL_V2
|
||||
#define RT_SERIAL_BUF_STRATEGY_OVERWRITE
|
||||
#define RT_SERIAL_USING_DMA
|
||||
#define RT_USING_ADC
|
||||
#define RT_USING_PIN
|
||||
/* end of Device Drivers */
|
||||
@@ -431,8 +432,13 @@
|
||||
#define BSP_USING_LPADC
|
||||
#define BSP_USING_LPADC1
|
||||
#define BSP_LPADC1_USING_DMA
|
||||
#define BSP_USING_GPIO
|
||||
#define BSP_USING_LPUART
|
||||
#define BSP_USING_LPUART1
|
||||
#define BSP_LPUART1_RX_USING_DMA
|
||||
#define BSP_LPUART1_RX_DMA_CHANNEL 0
|
||||
#define BSP_LPUART1_TX_USING_DMA
|
||||
#define BSP_LPUART1_TX_DMA_CHANNEL 1
|
||||
/* end of On-chip Peripheral Drivers */
|
||||
|
||||
/* Onboard Peripheral Drivers */
|
||||
|
||||
@@ -1061,9 +1061,9 @@
|
||||
</FileOption>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>dev_serial.c</FileName>
|
||||
<FileName>dev_serial_v2.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\components\drivers\serial\dev_serial.c</FilePath>
|
||||
<FilePath>..\..\..\..\..\components\drivers\serial\dev_serial_v2.c</FilePath>
|
||||
<FileOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>2</UseCPPCompiler>
|
||||
@@ -1142,9 +1142,9 @@
|
||||
<FilePath>..\libraries\drivers\drv_common.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>drv_uart.c</FileName>
|
||||
<FileName>drv_uart_v2.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\libraries\drivers\drv_uart.c</FilePath>
|
||||
<FilePath>..\libraries\drivers\drv_uart_v2.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
@@ -2161,6 +2161,21 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>packages\nxp-imxrt-sdk-latest\MIMXRT1180\MIMXRT1189\drivers\fsl_lpuart.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>fsl_lpuart_edma.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>packages\nxp-imxrt-sdk-latest\MIMXRT1180\MIMXRT1189\drivers\fsl_lpuart_edma.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>fsl_edma.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>packages\nxp-imxrt-sdk-latest\MIMXRT1180\MIMXRT1189\drivers\fsl_edma.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>fsl_edma_soc.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>packages\nxp-imxrt-sdk-latest\MIMXRT1180\MIMXRT1189\drivers\fsl_edma_soc.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>fsl_dcdc.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
|
||||
@@ -13,7 +13,10 @@ if GetDepend('BSP_USING_GPIO'):
|
||||
src += ['drv_gpio.c']
|
||||
|
||||
if GetDepend('BSP_USING_LPUART'):
|
||||
src += ['drv_uart.c']
|
||||
if GetDepend('RT_USING_SERIAL_V2'):
|
||||
src += ['drv_uart_v2.c']
|
||||
else:
|
||||
src += ['drv_uart.c']
|
||||
|
||||
if GetDepend('BSP_USING_CLOCK_TIMER'):
|
||||
src += ['drv_timer.c']
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user