Added LED, fixed WFI debug issues.

This commit is contained in:
imi415 2022-06-03 10:05:02 +08:00
parent ecf98b6e9a
commit c1ad2b4504
Signed by: imi415
GPG Key ID: 885EC2B5A8A6F8A7
5 changed files with 148 additions and 3 deletions

View File

@ -101,6 +101,7 @@ set(TARGET_SOURCES
set(TARGET_C_DEFINES
"CPU_MIMXRT1052DVL6B"
"MCUXPRESSO_SDK"
"SERIAL_PORT_TYPE_UART"
"__STARTUP_CLEAR_BSS"
"__STARTUP_INITIALIZE_NONCACHEDATA"

View File

@ -25,6 +25,11 @@
<pins_profile>
<processor_version>11.0.1</processor_version>
<power_domains/>
<pin_labels>
<pin_label pin_num="C7" pin_signal="GPIO_EMC_41" label="LED_B" identifier="LED_R;LED_B"/>
<pin_label pin_num="B12" pin_signal="GPIO_B1_07" label="LED_G" identifier="LED_G"/>
<pin_label pin_num="A7" pin_signal="GPIO_EMC_40" label="LED_R" identifier="LED_B;LED_R"/>
</pin_labels>
</pins_profile>
<functions_list>
<function name="BOARD_InitPins">
@ -35,13 +40,51 @@
<enableClock>true</enableClock>
</options>
<dependencies>
<dependency resourceType="Peripheral" resourceId="LPUART1" description="Peripheral LPUART1 is not initialized" problem_level="1" source="Pins:BOARD_InitPins">
<feature name="initialized" evaluation="equal">
<data>true</data>
</feature>
</dependency>
<dependency resourceType="SWComponent" resourceId="platform.drivers.common" description="Pins initialization requires the COMMON Driver in the project." problem_level="2" source="Pins:BOARD_InitPins">
<feature name="enabled" evaluation="equal" configuration="core0">
<data>true</data>
</feature>
</dependency>
<dependency resourceType="SWComponent" resourceId="platform.drivers.iomuxc" description="Pins initialization requires the IOMUXC Driver in the project." problem_level="2" source="Pins:BOARD_InitPins">
<feature name="enabled" evaluation="equal" configuration="core0">
<data>true</data>
</feature>
</dependency>
<dependency resourceType="SWComponent" resourceId="platform.drivers.igpio" description="Pins initialization requires the IGPIO Driver in the project." problem_level="2" source="Pins:BOARD_InitPins">
<feature name="enabled" evaluation="equal" configuration="core0">
<data>true</data>
</feature>
</dependency>
</dependencies>
<pins/>
<pins>
<pin peripheral="LPUART1" signal="TX" pin_num="K14" pin_signal="GPIO_AD_B0_12"/>
<pin peripheral="LPUART1" signal="RX" pin_num="L14" pin_signal="GPIO_AD_B0_13"/>
<pin peripheral="GPIO3" signal="gpio_io, 27" pin_num="C7" pin_signal="GPIO_EMC_41">
<pin_features>
<pin_feature name="identifier" value="LED_B"/>
<pin_feature name="direction" value="OUTPUT"/>
<pin_feature name="gpio_init_state" value="true"/>
</pin_features>
</pin>
<pin peripheral="GPIO2" signal="gpio_io, 23" pin_num="B12" pin_signal="GPIO_B1_07">
<pin_features>
<pin_feature name="direction" value="OUTPUT"/>
<pin_feature name="gpio_init_state" value="true"/>
</pin_features>
</pin>
<pin peripheral="GPIO3" signal="gpio_io, 26" pin_num="A7" pin_signal="GPIO_EMC_40">
<pin_features>
<pin_feature name="identifier" value="LED_R"/>
<pin_feature name="direction" value="OUTPUT"/>
<pin_feature name="gpio_init_state" value="true"/>
</pin_features>
</pin>
</pins>
</function>
</functions_list>
</pins>

View File

@ -11,10 +11,16 @@ processor: MIMXRT1052xxxxB
package_id: MIMXRT1052DVL6B
mcu_data: ksdk2_0
processor_version: 11.0.1
pin_labels:
- {pin_num: C7, pin_signal: GPIO_EMC_41, label: LED_B, identifier: LED_R;LED_B}
- {pin_num: B12, pin_signal: GPIO_B1_07, label: LED_G, identifier: LED_G}
- {pin_num: A7, pin_signal: GPIO_EMC_40, label: LED_R, identifier: LED_B;LED_R}
* BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
*/
#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "fsl_gpio.h"
#include "pin_mux.h"
/* FUNCTION ************************************************************************************************************
@ -31,7 +37,12 @@ void BOARD_InitBootPins(void) {
* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
BOARD_InitPins:
- options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'}
- pin_list: []
- pin_list:
- {pin_num: K14, peripheral: LPUART1, signal: TX, pin_signal: GPIO_AD_B0_12}
- {pin_num: L14, peripheral: LPUART1, signal: RX, pin_signal: GPIO_AD_B0_13}
- {pin_num: C7, peripheral: GPIO3, signal: 'gpio_io, 27', pin_signal: GPIO_EMC_41, identifier: LED_B, direction: OUTPUT, gpio_init_state: 'true'}
- {pin_num: B12, peripheral: GPIO2, signal: 'gpio_io, 23', pin_signal: GPIO_B1_07, direction: OUTPUT, gpio_init_state: 'true'}
- {pin_num: A7, peripheral: GPIO3, signal: 'gpio_io, 26', pin_signal: GPIO_EMC_40, identifier: LED_R, direction: OUTPUT, gpio_init_state: 'true'}
* BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
*/
@ -42,6 +53,48 @@ BOARD_InitPins:
*
* END ****************************************************************************************************************/
void BOARD_InitPins(void) {
CLOCK_EnableClock(kCLOCK_Iomuxc);
/* GPIO configuration of LED_G on GPIO_B1_07 (pin B12) */
gpio_pin_config_t LED_G_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 1U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_B1_07 (pin B12) */
GPIO_PinInit(GPIO2, 23U, &LED_G_config);
/* GPIO configuration of LED_R on GPIO_EMC_40 (pin A7) */
gpio_pin_config_t LED_R_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 1U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_EMC_40 (pin A7) */
GPIO_PinInit(GPIO3, 26U, &LED_R_config);
/* GPIO configuration of LED_B on GPIO_EMC_41 (pin C7) */
gpio_pin_config_t LED_B_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 1U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_EMC_41 (pin C7) */
GPIO_PinInit(GPIO3, 27U, &LED_B_config);
#if FSL_IOMUXC_DRIVER_VERSION >= MAKE_VERSION(2, 0, 3)
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_12_LPUART1_TXD, 0U);
#else
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_12_LPUART1_TX, 0U);
#endif
#if FSL_IOMUXC_DRIVER_VERSION >= MAKE_VERSION(2, 0, 3)
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_13_LPUART1_RXD, 0U);
#else
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_13_LPUART1_RX, 0U);
#endif
IOMUXC_SetPinMux(IOMUXC_GPIO_B1_07_GPIO2_IO23, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_40_GPIO3_IO26, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_41_GPIO3_IO27, 0U);
}
/***********************************************************************************************************************

View File

@ -37,6 +37,48 @@ extern "C" {
*/
void BOARD_InitBootPins(void);
/* GPIO_EMC_41 (coord C7), LED_B */
/* Routed pin properties */
#define BOARD_INITPINS_LED_B_PERIPHERAL GPIO3 /*!< Peripheral name */
#define BOARD_INITPINS_LED_B_SIGNAL gpio_io /*!< Signal name */
#define BOARD_INITPINS_LED_B_CHANNEL 27U /*!< Signal channel */
/* Symbols to be used with GPIO driver */
#define BOARD_INITPINS_LED_B_GPIO GPIO3 /*!< GPIO peripheral base pointer */
#define BOARD_INITPINS_LED_B_GPIO_PIN 27U /*!< GPIO pin number */
#define BOARD_INITPINS_LED_B_GPIO_PIN_MASK (1U << 27U) /*!< GPIO pin mask */
#define BOARD_INITPINS_LED_B_PORT GPIO3 /*!< PORT peripheral base pointer */
#define BOARD_INITPINS_LED_B_PIN 27U /*!< PORT pin number */
#define BOARD_INITPINS_LED_B_PIN_MASK (1U << 27U) /*!< PORT pin mask */
/* GPIO_B1_07 (coord B12), LED_G */
/* Routed pin properties */
#define BOARD_INITPINS_LED_G_PERIPHERAL GPIO2 /*!< Peripheral name */
#define BOARD_INITPINS_LED_G_SIGNAL gpio_io /*!< Signal name */
#define BOARD_INITPINS_LED_G_CHANNEL 23U /*!< Signal channel */
/* Symbols to be used with GPIO driver */
#define BOARD_INITPINS_LED_G_GPIO GPIO2 /*!< GPIO peripheral base pointer */
#define BOARD_INITPINS_LED_G_GPIO_PIN 23U /*!< GPIO pin number */
#define BOARD_INITPINS_LED_G_GPIO_PIN_MASK (1U << 23U) /*!< GPIO pin mask */
#define BOARD_INITPINS_LED_G_PORT GPIO2 /*!< PORT peripheral base pointer */
#define BOARD_INITPINS_LED_G_PIN 23U /*!< PORT pin number */
#define BOARD_INITPINS_LED_G_PIN_MASK (1U << 23U) /*!< PORT pin mask */
/* GPIO_EMC_40 (coord A7), LED_R */
/* Routed pin properties */
#define BOARD_INITPINS_LED_R_PERIPHERAL GPIO3 /*!< Peripheral name */
#define BOARD_INITPINS_LED_R_SIGNAL gpio_io /*!< Signal name */
#define BOARD_INITPINS_LED_R_CHANNEL 26U /*!< Signal channel */
/* Symbols to be used with GPIO driver */
#define BOARD_INITPINS_LED_R_GPIO GPIO3 /*!< GPIO peripheral base pointer */
#define BOARD_INITPINS_LED_R_GPIO_PIN 26U /*!< GPIO pin number */
#define BOARD_INITPINS_LED_R_GPIO_PIN_MASK (1U << 26U) /*!< GPIO pin mask */
#define BOARD_INITPINS_LED_R_PORT GPIO3 /*!< PORT peripheral base pointer */
#define BOARD_INITPINS_LED_R_PIN 26U /*!< PORT pin number */
#define BOARD_INITPINS_LED_R_PIN_MASK (1U << 26U) /*!< PORT pin mask */
/*!
* @brief Configures pin routing and optionally pin electrical features.

View File

@ -7,11 +7,17 @@
int main(void) {
BOARD_InitBootPins();
BOARD_BootClockRUN();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
BOARD_InitDebugConsole();
CLOCK_SetMode(kCLOCK_ModeRun);
GPIO_WritePinOutput(BOARD_INITPINS_LED_R_GPIO, BOARD_INITPINS_LED_R_PIN, 0U);
GPIO_WritePinOutput(BOARD_INITPINS_LED_G_GPIO, BOARD_INITPINS_LED_G_PIN, 0U);
GPIO_WritePinOutput(BOARD_INITPINS_LED_B_GPIO, BOARD_INITPINS_LED_B_PIN, 0U);
for (;;) {
__WFI();
}