This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 70973e63702bd98662c7bae4191878c14677ea9a
Author: iamadahn <[email protected]>
AuthorDate: Thu Nov 5 13:45:51 2026 +0300

    board/arm/stm32g0/weact-stm32g0b1: Add userled configuration
    
    Userled configuration for WeAct STM32G0B1 board with EXAMPLES_LEDS 
application
    
    Signed-off-by: iamadahn <[email protected]>
---
 .../weact-stm32g0b1/configs/userled/defconfig      |  55 +++++++++++
 .../arm/stm32g0/weact-stm32g0b1/src/CMakeLists.txt |   2 +
 boards/arm/stm32g0/weact-stm32g0b1/src/Make.defs   |   2 +
 .../stm32g0/weact-stm32g0b1/src/stm32_userleds.c   | 102 +++++++++++++++++++++
 4 files changed, 161 insertions(+)

diff --git a/boards/arm/stm32g0/weact-stm32g0b1/configs/userled/defconfig 
b/boards/arm/stm32g0/weact-stm32g0b1/configs/userled/defconfig
new file mode 100644
index 00000000000..864feea3701
--- /dev/null
+++ b/boards/arm/stm32g0/weact-stm32g0b1/configs/userled/defconfig
@@ -0,0 +1,55 @@
+#
+# 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_ARCH_LEDS is not set
+# CONFIG_NSH_ARGCAT is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="weact-stm32g0b1"
+CONFIG_ARCH_BOARD_COMMON=y
+CONFIG_ARCH_BOARD_WEACT_STM32G0B1=y
+CONFIG_ARCH_CHIP="stm32g0"
+CONFIG_ARCH_CHIP_STM32=y
+CONFIG_ARCH_CHIP_STM32G0=y
+CONFIG_ARCH_CHIP_STM32G0B1CB=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARD_LOOPSPERMSEC=4164
+CONFIG_BUILTIN=y
+CONFIG_DISABLE_ENVIRON=y
+CONFIG_DISABLE_MOUNTPOINT=y
+CONFIG_DISABLE_MQUEUE=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXAMPLES_LEDS=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INIT_STACKSIZE=1536
+CONFIG_INTELHEX_BINARY=y
+CONFIG_LINE_MAX=64
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_FILEIOSIZE=64
+CONFIG_NSH_READLINE=y
+CONFIG_NUNGET_CHARS=0
+CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE=1536
+CONFIG_PTHREAD_MUTEX_UNSAFE=y
+CONFIG_PTHREAD_STACK_DEFAULT=1536
+CONFIG_RAM_SIZE=147456
+CONFIG_RAM_START=0x20000000
+CONFIG_RAW_BINARY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=19
+CONFIG_START_MONTH=5
+CONFIG_START_YEAR=2013
+CONFIG_STDIO_DISABLE_BUFFERING=y
+CONFIG_STM32_PWR=y
+CONFIG_STM32_USART3=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_TASK_NAME_SIZE=0
+CONFIG_USART3_SERIAL_CONSOLE=y
+CONFIG_USERLED=y
+CONFIG_USERLED_LOWER=y
diff --git a/boards/arm/stm32g0/weact-stm32g0b1/src/CMakeLists.txt 
b/boards/arm/stm32g0/weact-stm32g0b1/src/CMakeLists.txt
index bd46f7f541a..48e89a75e11 100644
--- a/boards/arm/stm32g0/weact-stm32g0b1/src/CMakeLists.txt
+++ b/boards/arm/stm32g0/weact-stm32g0b1/src/CMakeLists.txt
@@ -24,6 +24,8 @@ set(SRCS stm32_boot.c stm32_bringup.c)
 
 if(CONFIG_ARCH_LEDS)
   list(APPEND SRCS stm32_autoleds.c)
+else()
+  list(APPEND SRCS stm32_userleds.c)
 endif()
 
 if(CONFIG_ARCH_BUTTONS)
diff --git a/boards/arm/stm32g0/weact-stm32g0b1/src/Make.defs 
b/boards/arm/stm32g0/weact-stm32g0b1/src/Make.defs
index 35bcefdd03a..146326c8511 100644
--- a/boards/arm/stm32g0/weact-stm32g0b1/src/Make.defs
+++ b/boards/arm/stm32g0/weact-stm32g0b1/src/Make.defs
@@ -24,6 +24,8 @@ CSRCS = stm32_boot.c stm32_bringup.c
 
 ifeq ($(CONFIG_ARCH_LEDS),y)
 CSRCS += stm32_autoleds.c
+else
+CSRCS += stm32_userleds.c
 endif
 
 ifeq ($(CONFIG_ARCH_BUTTONS),y)
diff --git a/boards/arm/stm32g0/weact-stm32g0b1/src/stm32_userleds.c 
b/boards/arm/stm32g0/weact-stm32g0b1/src/stm32_userleds.c
new file mode 100644
index 00000000000..7793f1e7a21
--- /dev/null
+++ b/boards/arm/stm32g0/weact-stm32g0b1/src/stm32_userleds.c
@@ -0,0 +1,102 @@
+/****************************************************************************
+ * boards/arm/stm32g0/weact-stm32g0b1/src/stm32_userleds.c
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <nuttx/debug.h>
+
+#include <arch/board/board.h>
+
+#include "chip.h"
+#include "stm32.h"
+#include "weact-stm32g0b1.h"
+
+#ifndef CONFIG_ARCH_LEDS
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+/* This array maps an LED number to GPIO pin configuration */
+
+static const uint32_t g_ledcfg[BOARD_NLEDS] =
+{
+  GPIO_LED1,
+};
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_userled_initialize
+ ****************************************************************************/
+
+uint32_t board_userled_initialize(void)
+{
+  int i;
+
+  /* Configure LED GPIOs for output */
+
+  for (i = 0; i < BOARD_NLEDS; i++)
+    {
+      stm32_configgpio(g_ledcfg[i]);
+    }
+
+  return BOARD_NLEDS;
+}
+
+/****************************************************************************
+ * Name: board_userled
+ ****************************************************************************/
+
+void board_userled(int led, bool ledon)
+{
+  if ((unsigned)led < BOARD_NLEDS)
+    {
+      stm32_gpiowrite(g_ledcfg[led], ledon);
+    }
+}
+
+/****************************************************************************
+ * Name: board_userled_all
+ ****************************************************************************/
+
+void board_userled_all(uint32_t ledset)
+{
+  int i;
+
+  /* Configure LED GPIOs for output */
+
+  for (i = 0; i < BOARD_NLEDS; i++)
+    {
+      stm32_gpiowrite(g_ledcfg[i], (ledset & (1 << i)) != 0);
+    }
+}
+
+#endif /* !CONFIG_ARCH_LEDS */

Reply via email to