From f0d102c214d255067896a597882568db2f1aa58f Mon Sep 17 00:00:00 2001 From: bwisn Date: Sat, 13 Nov 2021 12:31:10 +0100 Subject: [PATCH] apply CR suggestions --- keyboards/annepro2/annepro2.c | 39 ++++--- .../annepro2/boards/ANNEPRO2_C15/board.c | 8 -- .../annepro2/boards/ANNEPRO2_C18/board.c | 107 ++++++++++++++++++ .../annepro2/boards/ANNEPRO2_C18/board.mk | 2 +- keyboards/annepro2/c15/rules.mk | 3 - keyboards/annepro2/c18/post_rules.mk | 4 - keyboards/annepro2/c18/rules.mk | 3 - keyboards/annepro2/hardfault_handler.c | 62 ---------- 8 files changed, 131 insertions(+), 97 deletions(-) create mode 100644 keyboards/annepro2/boards/ANNEPRO2_C18/board.c delete mode 100644 keyboards/annepro2/c18/post_rules.mk delete mode 100644 keyboards/annepro2/hardfault_handler.c diff --git a/keyboards/annepro2/annepro2.c b/keyboards/annepro2/annepro2.c index 7ea5058883d..596300a1aef 100644 --- a/keyboards/annepro2/annepro2.c +++ b/keyboards/annepro2/annepro2.c @@ -1,18 +1,18 @@ - /* Copyright 2021 OpenAnnePro community - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +/* Copyright 2021 OpenAnnePro community + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include "hal.h" #include "annepro2.h" @@ -37,6 +37,14 @@ static const SerialConfig bleUartConfig = { .speed = 115200, }; +const ioline_t row_list[MATRIX_ROWS] = { + LINE_ROW1, LINE_ROW2, LINE_ROW3, LINE_ROW4, LINE_ROW5, +}; + +const ioline_t col_list[MATRIX_COLS] = { + LINE_COL1, LINE_COL2, LINE_COL3, LINE_COL4, LINE_COL5, LINE_COL6, LINE_COL7, LINE_COL8, LINE_COL9, LINE_COL10, LINE_COL11, LINE_COL12, LINE_COL13, LINE_COL14, +}; + static uint8_t ledMcuWakeup[11] = {0x7b, 0x10, 0x43, 0x10, 0x03, 0x00, 0x00, 0x7d, 0x02, 0x01, 0x02}; ble_capslock_t BLECapsLock = {._dummy = {0}, .caps_lock = false}; @@ -97,7 +105,6 @@ void keyboard_post_init_kb(void) { keyboard_post_init_user(); } - void matrix_scan_kb() { // if there's stuff on the ble serial buffer // read it into the capslock struct diff --git a/keyboards/annepro2/boards/ANNEPRO2_C15/board.c b/keyboards/annepro2/boards/ANNEPRO2_C15/board.c index d62bd1dbd05..27ba153ee21 100644 --- a/keyboards/annepro2/boards/ANNEPRO2_C15/board.c +++ b/keyboards/annepro2/boards/ANNEPRO2_C15/board.c @@ -98,14 +98,6 @@ const PALConfig pal_default_config = { .ESSR[1] = 0x00000000, }; -const ioline_t row_list[MATRIX_ROWS] = { - LINE_ROW1, LINE_ROW2, LINE_ROW3, LINE_ROW4, LINE_ROW5, -}; - -const ioline_t col_list[MATRIX_COLS] = { - LINE_COL1, LINE_COL2, LINE_COL3, LINE_COL4, LINE_COL5, LINE_COL6, LINE_COL7, LINE_COL8, LINE_COL9, LINE_COL10, LINE_COL11, LINE_COL12, LINE_COL13, LINE_COL14, -}; - void __early_init(void) {} void early_hardware_init_pre(void) { ht32_clock_init(); } diff --git a/keyboards/annepro2/boards/ANNEPRO2_C18/board.c b/keyboards/annepro2/boards/ANNEPRO2_C18/board.c new file mode 100644 index 00000000000..27ba153ee21 --- /dev/null +++ b/keyboards/annepro2/boards/ANNEPRO2_C18/board.c @@ -0,0 +1,107 @@ +/* + Copyright (C) 2020 Yaotian Feng, Codetector + + Licensed 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. +*/ + +#include "hal.h" + +/* ============ Private Defines ===================== */ + +/* ============ Function Prototypes ================== */ + +#define PBIT(PORT, LINE) ((PAL_PORT(LINE) == PORT) ? (1 << PAL_PAD(LINE)) : 0) +#define PAFIO_L(PORT, LINE, AF) (((PAL_PORT(LINE) == PORT) && (PAL_PAD(LINE) < 8)) ? (AF << (PAL_PAD(LINE) << 2)) : 0) +#define PAFIO_H(PORT, LINE, AF) (((PAL_PORT(LINE) == PORT) && (PAL_PAD(LINE) >= 8)) ? (AF << ((PAL_PAD(LINE) - 8) << 2)) : 0) +#define PAFIO(PORT, N, LINE, AF) ((N) ? PAFIO_H(PORT, LINE, AF) : PAFIO_L(PORT, LINE, AF)) + +#define OUT_BITS(PORT) (PBIT(PORT, LINE_ROW1) | PBIT(PORT, LINE_ROW2) | PBIT(PORT, LINE_ROW3) | PBIT(PORT, LINE_ROW4) | PBIT(PORT, LINE_ROW5) | 0) + +#define IN_BITS(PORT) (PBIT(PORT, LINE_COL1) | PBIT(PORT, LINE_COL2) | PBIT(PORT, LINE_COL3) | PBIT(PORT, LINE_COL4) | PBIT(PORT, LINE_COL5) | PBIT(PORT, LINE_COL6) | PBIT(PORT, LINE_COL7) | PBIT(PORT, LINE_COL8) | PBIT(PORT, LINE_COL9) | PBIT(PORT, LINE_COL10) | PBIT(PORT, LINE_COL11) | PBIT(PORT, LINE_COL12) | PBIT(PORT, LINE_COL13) | PBIT(PORT, LINE_COL14) | 0) + +// Alternate Functions +#define AF_BITS(PORT, N) (PAFIO(PORT, N, LINE_UART_RX, AFIO_USART) | PAFIO(PORT, N, LINE_UART_TX, AFIO_USART) | PAFIO(PORT, N, LINE_BT_UART_TX, AFIO_USART) | PAFIO(PORT, N, LINE_BT_UART_RX, AFIO_USART) | PAFIO(PORT, N, LINE_ROW1, AFIO_GPIO) | PAFIO(PORT, N, LINE_ROW2, AFIO_GPIO) | PAFIO(PORT, N, LINE_ROW3, AFIO_GPIO) | PAFIO(PORT, N, LINE_ROW4, AFIO_GPIO) | PAFIO(PORT, N, LINE_ROW5, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL1, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL2, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL3, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL4, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL5, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL6, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL7, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL8, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL9, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL10, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL11, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL12, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL13, AFIO_GPIO) | PAFIO(PORT, N, LINE_COL14, AFIO_GPIO) | 0) + +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +const PALConfig pal_default_config = { + // GPIO A + .setup[0] = + { + .DIR = OUT_BITS(IOPORTA), + .INE = IN_BITS(IOPORTA), + .PU = IN_BITS(IOPORTA), + .PD = 0x0000, + .OD = 0x0000, + .DRV = 0x0000, + .LOCK = 0x0000, + .OUT = 0x0000, + .CFG[0] = AF_BITS(IOPORTA, 0), + .CFG[1] = AF_BITS(IOPORTA, 1), + }, + // GPIO B + .setup[1] = + { + .DIR = OUT_BITS(IOPORTB), + .INE = IN_BITS(IOPORTB), + .PU = IN_BITS(IOPORTB), + .PD = 0x0000, + .OD = 0x0000, + .DRV = 0x0000, + .LOCK = 0x0000, + .OUT = 0x0000, + .CFG[0] = AF_BITS(IOPORTB, 0), + .CFG[1] = AF_BITS(IOPORTB, 1), + }, + // GPIO C + .setup[2] = + { + .DIR = OUT_BITS(IOPORTC), + .INE = IN_BITS(IOPORTC), + .PU = IN_BITS(IOPORTC), + .PD = 0x0000, + .OD = 0x0000, + .DRV = 0x0000, + .LOCK = 0x0000, + .OUT = 0x0000, + .CFG[0] = AF_BITS(IOPORTC, 0), + .CFG[1] = AF_BITS(IOPORTC, 1), + }, + // GPIO D + .setup[3] = + { + .DIR = OUT_BITS(IOPORTD), + .INE = IN_BITS(IOPORTD), + .PU = IN_BITS(IOPORTD), + .PD = 0x0000, + .OD = 0x0000, + .DRV = 0x0000, + .LOCK = 0x0000, + .OUT = 0x0000, + .CFG[0] = AF_BITS(IOPORTD, 0), + .CFG[1] = AF_BITS(IOPORTD, 1), + }, + .ESSR[0] = 0x00000000, + .ESSR[1] = 0x00000000, +}; + +void __early_init(void) {} + +void early_hardware_init_pre(void) { ht32_clock_init(); } + +void board_init(void) {} + +void boardInit(void) {} diff --git a/keyboards/annepro2/boards/ANNEPRO2_C18/board.mk b/keyboards/annepro2/boards/ANNEPRO2_C18/board.mk index eb35a913da5..1b41dede851 100644 --- a/keyboards/annepro2/boards/ANNEPRO2_C18/board.mk +++ b/keyboards/annepro2/boards/ANNEPRO2_C18/board.mk @@ -1,5 +1,5 @@ # List of all the board related files. -BOARDSRC = $(BOARD_PATH)/boards/ANNEPRO2_C15/board.c +BOARDSRC = $(BOARD_PATH)/boards/ANNEPRO2_C18/board.c # Required include directories BOARDINC = $(BOARD_PATH)/boards/ANNEPRO2_C18 diff --git a/keyboards/annepro2/c15/rules.mk b/keyboards/annepro2/c15/rules.mk index e62c0e88caa..ea4d1b44122 100644 --- a/keyboards/annepro2/c15/rules.mk +++ b/keyboards/annepro2/c15/rules.mk @@ -16,9 +16,6 @@ MCU_STARTUP = ht32f523xx BOARD = ANNEPRO2_C15 -OPT_DEFS += -Wno-unused-function -fdump-rtl-dfinish -fstack-usage -#EXTRALDFLAGS = -Wl,--print-memory-usage - # Options # Keys diff --git a/keyboards/annepro2/c18/post_rules.mk b/keyboards/annepro2/c18/post_rules.mk deleted file mode 100644 index 5cfbe9a7d16..00000000000 --- a/keyboards/annepro2/c18/post_rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -ifeq ($(strip $(ANNEPRO2_EEPROM)), yes) - OPT_DEFS += -DANNEPRO2_EEPROM - SRC += spi_master.c eeprom_w25x20cl.c -endif diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk index ee595ac3567..3858c7f46a4 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -16,9 +16,6 @@ MCU_STARTUP = ht32f523xx BOARD = ANNEPRO2_C18 -OPT_DEFS += -Wno-unused-function -fdump-rtl-dfinish -fstack-usage -#EXTRALDFLAGS = -Wl,--print-memory-usage - # Options # Keys diff --git a/keyboards/annepro2/hardfault_handler.c b/keyboards/annepro2/hardfault_handler.c deleted file mode 100644 index f9d32c75a06..00000000000 --- a/keyboards/annepro2/hardfault_handler.c +++ /dev/null @@ -1,62 +0,0 @@ - /* Copyright 2021 OpenAnnePro community - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include -#include "hal.h" - -#define bkpt() __asm volatile("BKPT #0\n") -OSAL_IRQ_HANDLER(HardFault_Handler) { - // Copy to local variables (not pointers) to allow GDB "i loc" to directly show the info - struct port_extctx ctx; - volatile unsigned long _CFSR; - volatile unsigned long _HFSR; - volatile unsigned long _DFSR; - volatile unsigned long _AFSR; - volatile unsigned long _BFAR; - volatile unsigned long _MMAR; - // Get thread context. Contains main registers including PC and LR - memcpy(&ctx, (void *)__get_PSP(), sizeof(struct port_extctx)); - (void)ctx; - - // Configurable Fault Status Register - // Consists of MMSR, BFSR and UFSR - _CFSR = (*((volatile unsigned long *)(0xE000ED28))); - (void)(_CFSR); - - // Hard Fault Status Register - _HFSR = (*((volatile unsigned long *)(0xE000ED2C))); - (void)(_HFSR); - - // Debug Fault Status Register - _DFSR = (*((volatile unsigned long *)(0xE000ED30))); - (void)(_DFSR); - - // Auxiliary Fault Status Register - _AFSR = (*((volatile unsigned long *)(0xE000ED3C))); - (void)(_AFSR); - - // Read the Fault Address Registers. These may not contain valid values. - // Check BFARVALID/MMARVALID to see if they are valid values - // MemManage Fault Address Register - _MMAR = (*((volatile unsigned long *)(0xE000ED34))); - (void)(_MMAR); - // Bus Fault Address Register - _BFAR = (*((volatile unsigned long *)(0xE000ED38))); - (void)(_BFAR); - // Cause debugger to stop. Ignored if no debugger is attached - bkpt(); - NVIC_SystemReset(); // If no debugger connected, just reset the board -}