diff --git a/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst b/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst index 5b671ace0a..0fa66201dd 100644 --- a/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst +++ b/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst @@ -51,8 +51,8 @@ Expansion connector 2 features. Board documentation: https://wittetech.com/ -LEDs -==== +BOARD-LEDs +========== The LINUM-STM32H753BI has 3 software controllable LEDs. @@ -473,4 +473,30 @@ This example use the timer 4 with channel 2 to generate a PWM output signal on b pwm_main: stopping output nsh> pwm -f 300 -t 3 pwm_main: starting output with frequency: 300 duty: 0000bfff - pwm_main: stopping output \ No newline at end of file + pwm_main: stopping output + +leds +------ + +Example to blink 3 leds, the example use the gpios(PB0, PB1 and PC13) located on the expancion IO board:: + + nsh> leds + leds_main: Starting the led_daemon + leds_main: led_daemon started + + led_daemon (pid# 3): Running + led_daemon: Opening /dev/userleds + led_daemon: Supported LEDs 0x07 + led_daemon: LED set 0x01 + nsh> led_daemon: LED set 0x02 + led_daemon: LED set 0x03 + led_daemon: LED set 0x04 + led_daemon: LED set 0x05 + led_daemon: LED set 0x06 + led_daemon: LED set 0x07 + led_daemon: LED set 0x06 + led_daemon: LED set 0x05 + led_daemon: LED set 0x04 + led_daemon: LED set 0x03 + led_daemon: LED set 0x02 + led_daemon: LED set 0x01 \ No newline at end of file diff --git a/boards/arm/stm32h7/linum-stm32h753bi/configs/leds/defconfig b/boards/arm/stm32h7/linum-stm32h753bi/configs/leds/defconfig new file mode 100644 index 0000000000..9d63ecd082 --- /dev/null +++ b/boards/arm/stm32h7/linum-stm32h753bi/configs/leds/defconfig @@ -0,0 +1,60 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_STANDARD_SERIAL is not set +# CONFIG_STM32H7_USE_LEGACY_PINMAP is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="linum-stm32h753bi" +CONFIG_ARCH_BOARD_LINUM_STM32H753BI=y +CONFIG_ARCH_CHIP="stm32h7" +CONFIG_ARCH_CHIP_STM32H753BI=y +CONFIG_ARCH_CHIP_STM32H7=y +CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_DTCM=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_BOARD_LOOPSPERMSEC=43103 +CONFIG_BUILTIN=y +CONFIG_DEBUG_FEATURES=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_EXAMPLES_ALARM=y +CONFIG_EXAMPLES_LEDS=y +CONFIG_EXAMPLES_LEDS_LEDSET=0x07 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INTELHEX_BINARY=y +CONFIG_LIBM=y +CONFIG_MM_REGIONS=4 +CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_LINELEN=64 +CONFIG_NSH_READLINE=y +CONFIG_PREALLOC_TIMERS=4 +CONFIG_RAM_SIZE=245760 +CONFIG_RAM_START=0x20010000 +CONFIG_RAW_BINARY=y +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_RR_INTERVAL=200 +CONFIG_RTC_ALARM=y +CONFIG_RTC_DATETIME=y +CONFIG_RTC_DRIVER=y +CONFIG_SCHED_WAITPID=y +CONFIG_START_DAY=6 +CONFIG_START_MONTH=12 +CONFIG_START_YEAR=2011 +CONFIG_STM32H7_PWR=y +CONFIG_STM32H7_RTC=y +CONFIG_STM32H7_USART1=y +CONFIG_SYSTEM_NSH=y +CONFIG_TASK_NAME_SIZE=0 +CONFIG_USART1_SERIAL_CONSOLE=y +CONFIG_USERLED=y +CONFIG_USERLED_LOWER=y diff --git a/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h b/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h index be4aad4890..2d9d3201af 100644 --- a/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h +++ b/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h @@ -36,7 +36,7 @@ /* Configuration ************************************************************/ -/* LED */ +/* LED of board */ #define GPIO_LD1 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \ GPIO_OUTPUT_SET | GPIO_PORTG | GPIO_PIN2) @@ -49,6 +49,19 @@ #define GPIO_LED_GREEN GPIO_LD2 #define GPIO_LED_BLUE GPIO_LD3 +/* LED of shield */ + +#define GPIO_LED1 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \ + GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN0) +#define GPIO_LED2 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \ + GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN1) +#define GPIO_LED3 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \ + GPIO_OUTPUT_SET | GPIO_PORTC | GPIO_PIN13) + +#define LED1_BIT (1 << 0) +#define LED2_BIT (1 << 1) +#define LED3_BIT (1 << 2) +#define LED_NUM 3 /* Check if we can support the RTC driver */ #define HAVE_RTC_DRIVER 1 diff --git a/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c b/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c index 3120ff9357..b71af50b31 100644 --- a/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c +++ b/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c @@ -37,7 +37,7 @@ #include "stm32.h" #include "linum-stm32h753bi.h" -#ifndef CONFIG_ARCH_LEDS +#ifdef CONFIG_USERLED /**************************************************************************** * Private Data @@ -47,9 +47,9 @@ static uint32_t g_ledcfg[BOARD_NLEDS] = { - GPIO_LED_RED, - GPIO_LED_GREEN, - GPIO_LED_BLUE + GPIO_LED1, + GPIO_LED2, + GPIO_LED3 }; /**************************************************************************** @@ -165,10 +165,10 @@ uint32_t board_userled_initialize(void) { /* Configure LED1-4 GPIOs for output */ - stm32_configgpio(GPIO_LED_RED); - stm32_configgpio(GPIO_LED_GREEN); - stm32_configgpio(GPIO_LED_BLUE); - return BOARD_NLEDS; + stm32_configgpio(GPIO_LED1); + stm32_configgpio(GPIO_LED2); + stm32_configgpio(GPIO_LED3); + return LED_NUM; } /**************************************************************************** @@ -177,7 +177,7 @@ uint32_t board_userled_initialize(void) void board_userled(int led, bool ledon) { - if ((unsigned)led < BOARD_NLEDS) + if ((unsigned)led < LED_NUM) { stm32_gpiowrite(g_ledcfg[led], ledon); } @@ -189,9 +189,9 @@ void board_userled(int led, bool ledon) void board_userled_all(uint32_t ledset) { - stm32_gpiowrite(GPIO_LED_RED, (ledset & BOARD_LED1_BIT) == 0); - stm32_gpiowrite(GPIO_LED_GREEN, (ledset & BOARD_LED2_BIT) == 0); - stm32_gpiowrite(GPIO_LED_BLUE, (ledset & BOARD_LED3_BIT) == 0); + stm32_gpiowrite(GPIO_LED1, (ledset & LED1_BIT) == 0); + stm32_gpiowrite(GPIO_LED2, (ledset & LED2_BIT) == 0); + stm32_gpiowrite(GPIO_LED3, (ledset & LED3_BIT) == 0); } /****************************************************************************