From 47b48c1bdda8fbc7fb7805902d6f02b58650a977 Mon Sep 17 00:00:00 2001 From: skiinder Date: Tue, 7 Apr 2026 10:21:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(boards):=20=E6=B7=BB=E5=8A=A0=20atguigu=20?= =?UTF-8?q?mini=5Fkeyboard=20=E5=BC=80=E5=8F=91=E6=9D=BF=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 nrf52840_qiaa SoC 配置支持 - 配置 JLink 和 pyOCD 调试器参数 - 定义开发板引脚控制和设备树配置 - 设置 Flash 分区和内存布局 - 配置 LED 灯和 GPIO 控制器 - 添加预编译设备树配置选项 --- .../mini_keyboard/Kconfig.mini_keyboard | 2 + boards/atguigu/mini_keyboard/board.cmake | 9 +++ boards/atguigu/mini_keyboard/board.yml | 5 ++ .../mini_keyboard/mini_keyboard-pinctrl.dtsi | 2 + .../atguigu/mini_keyboard/mini_keyboard.dts | 61 +++++++++++++++++++ .../atguigu/mini_keyboard/mini_keyboard.yaml | 10 +++ .../mini_keyboard/mini_keyboard_defconfig | 2 + .../atguigu/mini_keyboard/pre_dt_board.cmake | 2 + 8 files changed, 93 insertions(+) create mode 100644 boards/atguigu/mini_keyboard/Kconfig.mini_keyboard create mode 100644 boards/atguigu/mini_keyboard/board.cmake create mode 100644 boards/atguigu/mini_keyboard/board.yml create mode 100644 boards/atguigu/mini_keyboard/mini_keyboard-pinctrl.dtsi create mode 100644 boards/atguigu/mini_keyboard/mini_keyboard.dts create mode 100644 boards/atguigu/mini_keyboard/mini_keyboard.yaml create mode 100644 boards/atguigu/mini_keyboard/mini_keyboard_defconfig create mode 100644 boards/atguigu/mini_keyboard/pre_dt_board.cmake diff --git a/boards/atguigu/mini_keyboard/Kconfig.mini_keyboard b/boards/atguigu/mini_keyboard/Kconfig.mini_keyboard new file mode 100644 index 0000000..dd1692e --- /dev/null +++ b/boards/atguigu/mini_keyboard/Kconfig.mini_keyboard @@ -0,0 +1,2 @@ +config BOARD_MINI_KEYBOARD + select SOC_NRF52840_QIAA \ No newline at end of file diff --git a/boards/atguigu/mini_keyboard/board.cmake b/boards/atguigu/mini_keyboard/board.cmake new file mode 100644 index 0000000..03e8860 --- /dev/null +++ b/boards/atguigu/mini_keyboard/board.cmake @@ -0,0 +1,9 @@ +set(OPENOCD_NRF5_SUBFAMILY "nrf52") +board_runner_args(jlink "--device=nRF52840_xxAA" "--speed=4000") +board_runner_args(pyocd "--target=nrf52840" "--frequency=4000000") + +include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake) +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd-nrf5.board.cmake) \ No newline at end of file diff --git a/boards/atguigu/mini_keyboard/board.yml b/boards/atguigu/mini_keyboard/board.yml new file mode 100644 index 0000000..b842fc4 --- /dev/null +++ b/boards/atguigu/mini_keyboard/board.yml @@ -0,0 +1,5 @@ +board: + name: mini_keyboard + vendor: atguigu + socs: + - name: nrf52840 \ No newline at end of file diff --git a/boards/atguigu/mini_keyboard/mini_keyboard-pinctrl.dtsi b/boards/atguigu/mini_keyboard/mini_keyboard-pinctrl.dtsi new file mode 100644 index 0000000..eb124f5 --- /dev/null +++ b/boards/atguigu/mini_keyboard/mini_keyboard-pinctrl.dtsi @@ -0,0 +1,2 @@ +&pinctrl { +}; diff --git a/boards/atguigu/mini_keyboard/mini_keyboard.dts b/boards/atguigu/mini_keyboard/mini_keyboard.dts new file mode 100644 index 0000000..ad93fe6 --- /dev/null +++ b/boards/atguigu/mini_keyboard/mini_keyboard.dts @@ -0,0 +1,61 @@ +/dts-v1/; +#include +#include "mini_keyboard-pinctrl.dtsi" + +/ { + model = "Mini keyboard"; + compatible = "atguigu,mini-keyboard"; + + chosen { + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + }; + + aliases { + led0 = &myled0; + }; + + leds { + compatible = "gpio-leds"; + myled0: led_0 { + gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x00000000 DT_SIZE_K(48)>; + }; + + slot0_partition: partition@c000 { + label = "image-0"; + reg = <0x0000c000 DT_SIZE_K(472)>; + }; + + slot1_partition: partition@82000 { + label = "image-1"; + reg = <0x00082000 DT_SIZE_K(472)>; + }; + + storage_partition: partition@f8000 { + label = "storage"; + reg = <0x000f8000 DT_SIZE_K(32)>; + }; + }; +}; + +&gpio1 { + status = "okay"; +}; + +&gpiote { + status = "okay"; +}; diff --git a/boards/atguigu/mini_keyboard/mini_keyboard.yaml b/boards/atguigu/mini_keyboard/mini_keyboard.yaml new file mode 100644 index 0000000..77cd466 --- /dev/null +++ b/boards/atguigu/mini_keyboard/mini_keyboard.yaml @@ -0,0 +1,10 @@ +identifier: mini_keyboard/nrf52840 +name: Mini keyboard +vendor: atguigu +type: mcu +arch: arm +ram: 256 +flash: 1024 +toolchain: + - zephyr +supported: [] \ No newline at end of file diff --git a/boards/atguigu/mini_keyboard/mini_keyboard_defconfig b/boards/atguigu/mini_keyboard/mini_keyboard_defconfig new file mode 100644 index 0000000..fe65101 --- /dev/null +++ b/boards/atguigu/mini_keyboard/mini_keyboard_defconfig @@ -0,0 +1,2 @@ +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y \ No newline at end of file diff --git a/boards/atguigu/mini_keyboard/pre_dt_board.cmake b/boards/atguigu/mini_keyboard/pre_dt_board.cmake new file mode 100644 index 0000000..519d784 --- /dev/null +++ b/boards/atguigu/mini_keyboard/pre_dt_board.cmake @@ -0,0 +1,2 @@ +# Suppress "unique_unit_address_if_enabled" to handle some overlaps +list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")