Skip to content

Commit 4fbcb68

Browse files
committed
sonix sn32f2xx platform support
1 parent 9f95844 commit 4fbcb68

File tree

23 files changed

+4550
-5
lines changed

23 files changed

+4550
-5
lines changed

builddefs/bootloader.mk

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
# stm32duino STM32Duino (STM32F103x8)
3636
# stm32-dfu STM32 USB DFU in ROM
3737
# apm32-dfu APM32 USB DFU in ROM
38+
# sn32-dfu SN32 USB DFU in ROM
3839
# RISC-V:
3940
# gd32v-dfu GD32V USB DFU in ROM
4041
#
@@ -203,6 +204,11 @@ ifeq ($(strip $(BOOTLOADER)), md-boot)
203204
BOOTLOADER_TYPE = md_boot
204205
endif
205206

207+
ifeq ($(strip $(BOOTLOADER)), sn32-dfu)
208+
OPT_DEFS += -DBOOTLOADER_SN32_DFU
209+
BOOTLOADER_TYPE = sn32_dfu
210+
endif
211+
206212
ifeq ($(strip $(BOOTLOADER_TYPE)),)
207213
$(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate 'BOOTLOADER' in your keyboard's 'rules.mk' file.)
208214
endif

builddefs/mcu_selection.mk

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,102 @@ ifneq ($(findstring GD32VF103, $(MCU)),)
677677
USE_FPU ?= no
678678
endif
679679

680+
ifneq ($(findstring SN32F248F, $(MCU)),)
681+
# Cortex version
682+
MCU = cortex-m0
683+
684+
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
685+
ARMV = 6
686+
687+
## chip/board settings
688+
# - the next two should match the directories in
689+
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
690+
MCU_FAMILY = SN32
691+
MCU_SERIES = SN32F240
692+
693+
# Linker script to use
694+
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
695+
# or <keyboard_dir>/ld/
696+
MCU_LDSCRIPT ?= SN32F240
697+
698+
# Startup code to use
699+
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
700+
MCU_STARTUP ?= sn32f24x
701+
702+
# Board: it should exist either in <chibios>/os/hal/boards/,
703+
# <keyboard_dir>/boards/, or drivers/boards/
704+
BOARD ?= SN_SN32F240
705+
706+
USE_FPU ?= no
707+
708+
# Bootloader address for SN32 DFU
709+
SN32_BOOTLOADER_ADDRESS = 0x1FFF0301
710+
endif
711+
712+
ifneq ($(findstring SN32F248BF, $(MCU)),)
713+
# Cortex version
714+
MCU = cortex-m0
715+
716+
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
717+
ARMV = 6
718+
719+
## chip/board settings
720+
# - the next two should match the directories in
721+
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
722+
MCU_FAMILY = SN32
723+
MCU_SERIES = SN32F240B
724+
725+
# Linker script to use
726+
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
727+
# or <keyboard_dir>/ld/
728+
MCU_LDSCRIPT ?= SN32F240B
729+
730+
# Startup code to use
731+
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
732+
MCU_STARTUP ?= sn32f24xb
733+
734+
# Board: it should exist either in <chibios>/os/hal/boards/,
735+
# <keyboard_dir>/boards/, or drivers/boards/
736+
BOARD ?= SN_SN32F240B
737+
738+
USE_FPU ?= no
739+
740+
# Bootloader address for SN32 DFU
741+
SN32_BOOTLOADER_ADDRESS = 0x1FFF0301
742+
endif
743+
744+
ifneq ($(findstring SN32F268F, $(MCU)),)
745+
# Cortex version
746+
MCU = cortex-m0
747+
748+
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
749+
ARMV = 6
750+
751+
## chip/board settings
752+
# - the next two should match the directories in
753+
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
754+
MCU_FAMILY = SN32
755+
MCU_SERIES = SN32F260
756+
757+
# Linker script to use
758+
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
759+
# or <keyboard_dir>/ld/
760+
MCU_LDSCRIPT ?= SN32F260
761+
762+
# Startup code to use
763+
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
764+
MCU_STARTUP ?= sn32f26x
765+
766+
# Board: it should exist either in <chibios>/os/hal/boards/,
767+
# <keyboard_dir>/boards/, or drivers/boards/
768+
BOARD ?= SN_SN32F260
769+
770+
USE_FPU ?= no
771+
772+
# Bootloader address for SN32 DFU
773+
SN32_BOOTLOADER_ADDRESS = 0x1FFF0009
774+
endif
775+
680776
ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647 at90usb1286 at90usb1287))
681777
PROTOCOL = LUFA
682778

data/schemas/keyboard.jsonschema

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
},
1414
"processor": {
1515
"type": "string",
16-
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
16+
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "SN32F248F", "SN32F248BF", "SN32F268F", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
1717
},
1818
"audio": {
1919
"type": "object",
@@ -57,7 +57,7 @@
5757
},
5858
"bootloader": {
5959
"type": "string",
60-
"enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2"],
60+
"enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2", "sn32_dfu"],
6161
},
6262
"bootloader_instructions": {
6363
"type": "string",

lib/python/qmk/constants.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
MAX_KEYBOARD_SUBFOLDERS = 5
1414

1515
# Supported processor types
16-
CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK66FX1M0', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71'
16+
CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK66FX1M0', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'SN32F248F', 'SN32F248BF', 'SN32F268F'
1717
LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None
1818
VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85'
1919

@@ -42,6 +42,9 @@
4242
"STM32L443": "stm32-dfu",
4343
"GD32VF103": "gd32v-dfu",
4444
"WB32F3G71": "wb32-dfu",
45+
"SN32F248F": "sn32-dfu",
46+
"SN32F248BF": "sn32-dfu",
47+
"SN32F268F": "sn32-dfu",
4548
"atmega16u2": "atmel-dfu",
4649
"atmega32u2": "atmel-dfu",
4750
"atmega16u4": "atmel-dfu",
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# List of all the board related files.
2+
BOARDSRC = $(CHIBIOS_CONTRIB)/os/hal/boards/SN_SN32F240/board.c
3+
4+
# Required include directories
5+
BOARDINC = $(CHIBIOS_CONTRIB)/os/hal/boards/SN_SN32F240
6+
7+
# Optimize for speed
8+
OPT = 2
9+
10+
# Shared variables
11+
ALLCSRC += $(BOARDSRC)
12+
ALLINC += $(BOARDINC)

0 commit comments

Comments
 (0)