From e15937ea2b99abf2ce9eccb98bbb13f5bcde54c7 Mon Sep 17 00:00:00 2001 From: zhaqian <80608733+zhaqian12@users.noreply.github.com> Date: Thu, 23 Jun 2022 20:35:10 +0800 Subject: [PATCH 1/5] Update mcuconf.h --- .../GENERIC_AIR32_F103/configs/mcuconf.h | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h index 4032d571df88..f10f34a81a42 100644 --- a/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h @@ -34,25 +34,6 @@ /* * HAL driver system settings. */ -// #define AIR32_NO_INIT FALSE -// #define AIR32_HSI_ENABLED TRUE -// #define AIR32_LSI_ENABLED FALSE -// #define AIR32_HSE_ENABLED TRUE -// #define AIR32_LSE_ENABLED FALSE -// #define AIR32_SW AIR32_SW_PLL -// #define AIR32_PLLSRC AIR32_PLLSRC_HSE -// #define AIR32_PLLXTPRE AIR32_PLLXTPRE_DIV1 -// #define AIR32_PLLMUL_VALUE 9 -// #define AIR32_HPRE AIR32_HPRE_DIV1 -// #define AIR32_PPRE1 AIR32_PPRE1_DIV2 -// #define AIR32_PPRE2 AIR32_PPRE2_DIV2 -// #define AIR32_ADCPRE AIR32_ADCPRE_DIV4 -// #define AIR32_USB_CLOCK_REQUIRED TRUE -// #define AIR32_USBPRE AIR32_USBPRE_DIV1P5 -// #define AIR32_MCOSEL AIR32_MCOSEL_NOCLOCK -// #define AIR32_RTCSEL AIR32_RTCSEL_HSEDIV -// #define AIR32_PVD_ENABLE FALSE -// #define AIR32_PLS AIR32_PLS_LEV0 #define AIR32_NO_INIT FALSE #define AIR32_HSI_ENABLED TRUE #define AIR32_LSI_ENABLED FALSE From f95c603b97628b0ec00f8cdba2622584f1c2bd95 Mon Sep 17 00:00:00 2001 From: zhaqian <80608733+zhaqian12@users.noreply.github.com> Date: Thu, 23 Jun 2022 21:02:02 +0800 Subject: [PATCH 2/5] add air32f103 uf2 bootloader --- .gitignore | 2 ++ keyboards/zhaqian/readme.md | 18 +++++++++--------- keyboards/zhaqian/readme_cn.md | 16 +++++++++------- .../uf2boot_air32f103xB_8MHz.bin | Bin 0 -> 16384 bytes .../uf2boot_air32f103xC_8MHz.bin | Bin 0 -> 16384 bytes 5 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 keyboards/zhaqian/zqlib/uf2_bootloader/uf2boot_air32f103xB_8MHz.bin create mode 100644 keyboards/zhaqian/zqlib/uf2_bootloader/uf2boot_air32f103xC_8MHz.bin diff --git a/.gitignore b/.gitignore index a4349a7b7982..6baf7d9787e0 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,8 @@ quantum/version.h !uf2boot_f411_8MHz.bin !uf2boot_f103_8MHz.bin !uf2boot_gd32vf103_8MHz.bin +!uf2boot_air32f103xB_8MHz.bin +!uf2boot_air32f103xC_8MHz.bin # Old-style QMK Makefiles /tmk_core/* diff --git a/keyboards/zhaqian/readme.md b/keyboards/zhaqian/readme.md index c52b7c433278..f1ea60e1b9f8 100644 --- a/keyboards/zhaqian/readme.md +++ b/keyboards/zhaqian/readme.md @@ -176,12 +176,12 @@ You can also alternate these defines to control these feature: ``` ## UF2 Bootloader -| Support Devices | -|---------- | -|STM32F103x8| -|STM32F103xB| -|STM32F401xC| -|STM32F411xE| -|GD32VF103xB| - - +| Support Devices | Description | +|---------- | ---------- | +|STM32F103x8|| +|STM32F103xB|| +|STM32F401xC|| +|STM32F411xE|| +|GD32VF103xB|| +|AIR32F103xB| No hardware DP pull-up required| +|AIR32F103xC| No hardware DP pull-up required| diff --git a/keyboards/zhaqian/readme_cn.md b/keyboards/zhaqian/readme_cn.md index bd24f66afcfe..896c2c04a2ec 100644 --- a/keyboards/zhaqian/readme_cn.md +++ b/keyboards/zhaqian/readme_cn.md @@ -170,13 +170,15 @@ UNDERGLOW_RGB_MATRIX_ENABLE = yes ## UF2 Bootloader UF2 Bootloader储存了预编译好的MSC下载方式的引导程序,目前支持以下型号的主控. -| Support Devices | -|---------- | -|STM32F103x8| -|STM32F103xB| -|STM32F401xC| -|STM32F411xE| -|GD32VF103xB| +| 支持的MCU | 描述 | +|---------- | ---------- | +|STM32F103x8|| +|STM32F103xB|| +|STM32F401xC|| +|STM32F411xE|| +|GD32VF103xB|| +|AIR32F103xB| 无需硬件DP上拉| +|AIR32F103xC| 无需硬件DP上拉| # TODO LIST diff --git a/keyboards/zhaqian/zqlib/uf2_bootloader/uf2boot_air32f103xB_8MHz.bin b/keyboards/zhaqian/zqlib/uf2_bootloader/uf2boot_air32f103xB_8MHz.bin new file mode 100644 index 0000000000000000000000000000000000000000..90a9f189d3ff84c3d87ccb7def866e0d2351e635 GIT binary patch literal 16384 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 OZfoGS2L7Ma!2bZSU&12* literal 0 HcmV?d00001 diff --git a/keyboards/zhaqian/zqlib/uf2_bootloader/uf2boot_air32f103xC_8MHz.bin b/keyboards/zhaqian/zqlib/uf2_bootloader/uf2boot_air32f103xC_8MHz.bin new file mode 100644 index 0000000000000000000000000000000000000000..5ca8533f588591282e1e1f07e12bf3a4f1571b0c GIT binary patch literal 16384 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 Nwgzr%;QvVt{11VV!e{^h literal 0 HcmV?d00001 From 8570df54a798a264b15e1a46724bc56aa94bab6e Mon Sep 17 00:00:00 2001 From: zhaqian <80608733+zhaqian12@users.noreply.github.com> Date: Fri, 24 Jun 2022 16:14:07 +0800 Subject: [PATCH 3/5] add keyboard Jane_v2_ce_slot --- .../Jane_v2_ce_slot/Jane_v2_ce-slot_via.json | 230 ++++++++++++++++++ .../zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.c | 18 ++ .../zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.h | 35 +++ keyboards/zhaqian/Jane_v2_ce_slot/config.h | 43 ++++ .../Jane_v2_ce_slot/keymaps/default/keymap.c | 53 ++++ .../Jane_v2_ce_slot/keymaps/via/keymap.c | 53 ++++ .../Jane_v2_ce_slot/keymaps/via/rules.mk | 1 + keyboards/zhaqian/Jane_v2_ce_slot/readme.md | 14 ++ keyboards/zhaqian/Jane_v2_ce_slot/rules.mk | 19 ++ keyboards/zhaqian/readme.md | 1 + keyboards/zhaqian/readme_cn.md | 1 + 11 files changed, 468 insertions(+) create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce-slot_via.json create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.c create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.h create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/config.h create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/keymaps/default/keymap.c create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/keymap.c create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/rules.mk create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/readme.md create mode 100644 keyboards/zhaqian/Jane_v2_ce_slot/rules.mk diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce-slot_via.json b/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce-slot_via.json new file mode 100644 index 000000000000..a0b9ef26a0d3 --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce-slot_via.json @@ -0,0 +1,230 @@ +{ + "name": "Jane_v2_ce-slot", + "vendorId": "0x00AA", + "productId": "0xAA17", + "lighting": "none", + "matrix": { + "rows": 6, + "cols": 17 + }, + "layouts": { + "labels": [ + "ISO Enter", + ["Bottom Row", "ANSI", "7U"] + ], + "keymap": [ + [ + "0,0", + { + "x": 0.25 + }, + "0,1", + "0,2", + "0,3", + "0,4", + { + "x": 0.25 + }, + "0,5", + "0,6", + "0,7", + "0,8", + { + "x": 0.25 + }, + "0,9", + "0,10", + "0,11", + "0,12", + { + "x": 0.25 + }, + "0,13", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16" + ], + [ + { + "y": 0.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16" + ], + [ + { + "w": 1.5 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13\n\n\n0,0", + { + "x": 0.25 + }, + "2,14", + "2,15", + "2,16", + { + "x": 1, + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "3,13\n\n\n0,1" + ], + [ + { + "w": 1.75 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "w": 2.25 + }, + "3,13\n\n\n0,0", + { + "x": 3.25 + }, + "2,13\n\n\n0,1" + ], + [ + { + "w": 2.25 + }, + "4,0", + "4,1", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + { + "w": 2.75 + }, + "4,12", + { + "x": 1.25 + }, + "4,15" + ], + [ + { + "w": 1.25 + }, + "5,0\n\n\n1,0", + { + "w": 1.25 + }, + "5,1\n\n\n1,0", + { + "w": 1.25 + }, + "5,2\n\n\n1,0", + { + "w": 6.25 + }, + "5,6\n\n\n1,0", + { + "w": 1.25 + }, + "5,10\n\n\n1,0", + { + "w": 1.25 + }, + "5,11\n\n\n1,0", + { + "w": 1.25 + }, + "5,12\n\n\n1,0", + { + "w": 1.25 + }, + "5,13\n\n\n1,0", + { + "x": 0.25 + }, + "5,14", + "5,15", + "5,16" + ], + [ + { + "w": 1.5 + }, + "5,0\n\n\n1,1", + "5,1\n\n\n1,1", + { + "w": 1.5 + }, + "5,2\n\n\n1,1", + { + "w": 7 + }, + "5,6\n\n\n1,1", + { + "w": 1.5 + }, + "5,10\n\n\n1,1", + "5,12\n\n\n1,1", + { + "w": 1.5 + }, + "5,13\n\n\n1,1" + ] + ] + } + } diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.c b/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.c new file mode 100644 index 000000000000..e03fc758283a --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.c @@ -0,0 +1,18 @@ +/* Copyright 2022 ZhaQian + * + * 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 "Jane_v2_ce_slot.h" + diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.h b/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.h new file mode 100644 index 000000000000..0d4d40cfe8ee --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/Jane_v2_ce_slot.h @@ -0,0 +1,35 @@ +/* Copyright 2022 ZhaQian + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K415, \ + K500, K501, K502, K506, K510, K511, K512, K513, K514, K515, K516 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, KC_NO, K412, KC_NO, KC_NO, K415, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515, K516 } \ +} diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/config.h b/keyboards/zhaqian/Jane_v2_ce_slot/config.h new file mode 100644 index 000000000000..7e2cca65df45 --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/config.h @@ -0,0 +1,43 @@ +/* Copyright 2022 ZhaQian + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define VENDOR_ID 0x00AA +#define PRODUCT_ID 0xAA17 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ZhaQian +#define PRODUCT Jane_v2_ce_slot + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, D7, F0 } +#define MATRIX_COL_PINS { D0, D6, D4, D5, D3, D2, D1, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1 } +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +// #define QMK_KEYS_PER_SCAN 12 +// #define FORCE_NKRO + diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/default/keymap.c b/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/default/keymap.c new file mode 100644 index 000000000000..ce6a1f1a2f1b --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2022 ZhaQian + * + * 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 "Jane_v2_ce_slot.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_MENU, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/keymap.c b/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/keymap.c new file mode 100644 index 000000000000..ce6a1f1a2f1b --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2022 ZhaQian + * + * 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 "Jane_v2_ce_slot.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_MENU, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/rules.mk b/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/readme.md b/keyboards/zhaqian/Jane_v2_ce_slot/readme.md new file mode 100644 index 000000000000..8840da815896 --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/readme.md @@ -0,0 +1,14 @@ +# Jane_v2_ce-slot + +A 80% keyboard. + +* Keyboard Maintainer: [zhaqian](https://github.com/zhaqian12) +* Hardware Supported: Jane_v2_ce_slot +* Hardware Availability: [qmk-zq](https://github.com/zhaqian12/qmk_firmware) + +Make example for this keyboard (after setting up your build environment): + + make zhaqian/Jane_v2_ce_slot:default + make zhaqian/Jane_v2_ce_slot:via + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/zhaqian/Jane_v2_ce_slot/rules.mk b/keyboards/zhaqian/Jane_v2_ce_slot/rules.mk new file mode 100644 index 000000000000..9067cbf82720 --- /dev/null +++ b/keyboards/zhaqian/Jane_v2_ce_slot/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +SLEEP_LED_ENABLE = no +NKRO_ENABLE = yes +RGBLIGHT_ENABLE = no +KEY_LOCK_ENABLE = no + diff --git a/keyboards/zhaqian/readme.md b/keyboards/zhaqian/readme.md index f1ea60e1b9f8..1045011a1023 100644 --- a/keyboards/zhaqian/readme.md +++ b/keyboards/zhaqian/readme.md @@ -41,6 +41,7 @@ | s80 | 0x00AA | 0xAA14 | Hotswap | ST stm32f103/f103 | RGB | | sp67 | 0x00AA | 0xAA15 | Hotswap | ST stm32f103/f103 | ENCODER | | zq50 | 0x00AA | 0xAA16 | Hotswap | ST stm32f103/f103 | RGB, UGRGB, ENCODER | +| Jane_v2_ce_slot | 0x00AA | 0xAA17 | Hotswap | Atmel atmega32u4 | | | Mpad12 | 0x00AA | 0xAAAA | Hotswap | Atmel atmega32u4 | RGB, UGRGB, JOYSTICK, ENCODER, OLED | | split69 | 0x00AA | 0xAAAB | Solder | Atmel atmega32u4 | SPLIT, UGRGB, OLED, ENCODER | | GH60 | 0xFEED | 0x6060 | Hotswap | ST stm32f103/f103 | RGB | diff --git a/keyboards/zhaqian/readme_cn.md b/keyboards/zhaqian/readme_cn.md index 896c2c04a2ec..4fb7d68ec1ca 100644 --- a/keyboards/zhaqian/readme_cn.md +++ b/keyboards/zhaqian/readme_cn.md @@ -40,6 +40,7 @@ | s80 | 0x00AA | 0xAA14 | Hotswap | ST stm32f103/f103 | RGB | | sp67 | 0x00AA | 0xAA15 | Hotswap | ST stm32f103/f103 | ENCODER | | zq50 | 0x00AA | 0xAA16 | Hotswap | ST stm32f103/f103 | RGB, UGRGB, ENCODER | +| Jane_v2_ce_slot | 0x00AA | 0xAA17 | Hotswap | Atmel atmega32u4 | | | Mpad12 | 0x00AA | 0xAAAA | Hotswap | Atmel atmega32u4 | RGB, UGRGB, JOYSTICK, ENCODER, OLED | | split69 | 0x00AA | 0xAAAB | Solder | Atmel atmega32u4 | SPLIT, UGRGB, OLED, ENCODER | | GH60 | 0xFEED | 0x6060 | Hotswap | ST stm32f103/f103 | RGB | From 6b70655925bd3a67f4ab2d8b6432144eb8fce944 Mon Sep 17 00:00:00 2001 From: zhaqian <80608733+zhaqian12@users.noreply.github.com> Date: Sun, 26 Jun 2022 13:27:45 +0800 Subject: [PATCH 4/5] fix the bug of air32f103 protocol --- builddefs/common_features.mk | 5 +- keyboards/zhaqian/Mpad12/config.h | 1 - keyboards/zhaqian/comb67/config.h | 1 - keyboards/zhaqian/gh60/config.h | 2 +- keyboards/zhaqian/osu/config.h | 2 +- keyboards/zhaqian/s80/config.h | 2 +- keyboards/zhaqian/sp67/config.h | 2 +- keyboards/zhaqian/tester/air32f103/config.h | 11 +- keyboards/zhaqian/tester/air32f103/halconf.h | 21 + keyboards/zhaqian/tester/air32f103/mcuconf.h | 25 + keyboards/zhaqian/tester/air32f103/rules.mk | 3 + keyboards/zhaqian/tester/config.h | 2 +- keyboards/zhaqian/tester/rules.mk | 2 +- keyboards/zhaqian/zq46/config.h | 2 +- keyboards/zhaqian/zq48/config.h | 2 +- keyboards/zhaqian/zq50/config.h | 2 +- keyboards/zhaqian/zq64/config.h | 2 +- keyboards/zhaqian/zq68/config.h | 2 +- keyboards/zhaqian/zq75v2/config.h | 2 +- keyboards/zhaqian/zq80/config.h | 2 +- keyboards/zhaqian/zq89/config.h | 2 +- .../GENERIC_AIR32_F103/configs/mcuconf.h | 84 +- .../boards/GENERIC_CM32_M101A/board/board.c | 3 - .../GENERIC_CM32_M101A/configs/chconf.h | 763 +----------------- .../GENERIC_CM32_M101A/configs/halconf.h | 531 ------------ platforms/chibios/chibios_config.h | 11 + platforms/chibios/flash_stm32.c | 8 +- 27 files changed, 146 insertions(+), 1349 deletions(-) create mode 100644 keyboards/zhaqian/tester/air32f103/halconf.h create mode 100644 keyboards/zhaqian/tester/air32f103/mcuconf.h delete mode 100644 platforms/chibios/boards/GENERIC_CM32_M101A/configs/halconf.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index e5c3a64534fa..d6cf3e592cac 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -188,7 +188,7 @@ else ifeq ($(PLATFORM),AVR) # Automatically provided by avr-libc, nothing required else ifeq ($(PLATFORM),CHIBIOS) - ifneq ($(filter STM32F3xx_% STM32F1xx_% STM32F4xx_% STM32L4xx_% GD32VF103_% CM32M101A_% AIR32F103_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8 ,$(MCU_SERIES)_$(MCU_LDSCRIPT)),) + ifneq ($(filter STM32F3xx_% STM32F1xx_% STM32F4xx_% STM32L4xx_% GD32VF103_% CM32M101A_% AIR32F10x_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8 ,$(MCU_SERIES)_$(MCU_LDSCRIPT)),) # Emulated EEPROM OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED COMMON_VPATH += $(DRIVER_PATH)/eeprom @@ -517,12 +517,13 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) ifeq ($(strip $(WS2812_DRIVER)), bitbang) SRC += ws2812.c else - SRC += ws2812_$(strip $(WS2812_DRIVER)).c + SRC += ws2812_$(strip $(WS2812_DRIVER)).c ifeq ($(strip $(PLATFORM)), CHIBIOS) ifeq ($(strip $(WS2812_DRIVER)), pwm) OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE OPT_DEFS += -DGD32_DMA_REQUIRED=TRUE + OPT_DEFS += -DAIR32_DMA_REQUIRED=TRUE endif endif endif diff --git a/keyboards/zhaqian/Mpad12/config.h b/keyboards/zhaqian/Mpad12/config.h index 82b92305a771..13e4ee9db09d 100644 --- a/keyboards/zhaqian/Mpad12/config.h +++ b/keyboards/zhaqian/Mpad12/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT Mpad12 -#define DESCRIPTION multifunction pad12 /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/zhaqian/comb67/config.h b/keyboards/zhaqian/comb67/config.h index 95faaf531d00..8312c4837920 100644 --- a/keyboards/zhaqian/comb67/config.h +++ b/keyboards/zhaqian/comb67/config.h @@ -23,7 +23,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT Comb67 -#define DESCRIPTION Keyboard #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/zhaqian/gh60/config.h b/keyboards/zhaqian/gh60/config.h index 8e348b513e84..02dfb365fc18 100644 --- a/keyboards/zhaqian/gh60/config.h +++ b/keyboards/zhaqian/gh60/config.h @@ -22,7 +22,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER zhaqian #define PRODUCT gh60_example -#define DESCRIPTION Keyboard + /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/zhaqian/osu/config.h b/keyboards/zhaqian/osu/config.h index 207f085b969e..0a0a70fb8fbf 100644 --- a/keyboards/zhaqian/osu/config.h +++ b/keyboards/zhaqian/osu/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT osu -#define DESCRIPTION Keyboard + #define DIRECT_PINS { \ {B12, B13, B14, A15, B3, B4, B5}, \ diff --git a/keyboards/zhaqian/s80/config.h b/keyboards/zhaqian/s80/config.h index 8570d1a1b824..6f17ad75ffa2 100644 --- a/keyboards/zhaqian/s80/config.h +++ b/keyboards/zhaqian/s80/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT S80 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/zhaqian/sp67/config.h b/keyboards/zhaqian/sp67/config.h index e4791ec3d0e9..260a0074dda7 100644 --- a/keyboards/zhaqian/sp67/config.h +++ b/keyboards/zhaqian/sp67/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT SP67 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/zhaqian/tester/air32f103/config.h b/keyboards/zhaqian/tester/air32f103/config.h index b28759ffc109..f657de66f842 100644 --- a/keyboards/zhaqian/tester/air32f103/config.h +++ b/keyboards/zhaqian/tester/air32f103/config.h @@ -19,15 +19,15 @@ #include "config_common.h" #define MATRIX_COL_PINS { A9, A0, B15, B14, B13 } -#define MATRIX_ROW_PINS { A10, B6, C14 } +#define MATRIX_ROW_PINS { A1, B6, C14 } #define UNUSED_PINS #ifdef RGB_MATRIX_ENABLE -#define RGB_DI_PIN B3 -#define WS2812_PWM_DRIVER PWMD2 +#define RGB_DI_PIN A10 +#define WS2812_PWM_DRIVER PWMD1 #define WS2812_PWM_CHANNEL 2 #define WS2812_PWM_PAL_MODE 2 -#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_STREAM AIR32_DMA1_STREAM5 #define WS2812_DMA_CHANNEL 2 #endif @@ -46,8 +46,9 @@ #define UG_RGB_MATRIX_CYCLEOUTIN #undef UG_RGB_MATRIX_WPM_ANIMATIONS #endif + // #define DEBUG_EEPROM_OUTPUT -#define DEBUG_MATRIX_SCAN_RATE +// #define DEBUG_MATRIX_SCAN_RATE // #define SERIAL_DRIVER SD2 // #define SD1_TX_PIN A2 diff --git a/keyboards/zhaqian/tester/air32f103/halconf.h b/keyboards/zhaqian/tester/air32f103/halconf.h new file mode 100644 index 000000000000..ea16f19d0370 --- /dev/null +++ b/keyboards/zhaqian/tester/air32f103/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +// #define HAL_USE_SERIAL TRUE +#include_next diff --git a/keyboards/zhaqian/tester/air32f103/mcuconf.h b/keyboards/zhaqian/tester/air32f103/mcuconf.h new file mode 100644 index 000000000000..bea3b564b2ef --- /dev/null +++ b/keyboards/zhaqian/tester/air32f103/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +#pragma once + +#include_next + +#undef AIR32_PWM_USE_TIM1 +#define AIR32_PWM_USE_TIM1 TRUE + +// #undef AIR32_SERIAL_USE_USART2 +// #define AIR32_SERIAL_USE_USART2 TRUE \ No newline at end of file diff --git a/keyboards/zhaqian/tester/air32f103/rules.mk b/keyboards/zhaqian/tester/air32f103/rules.mk index e194004d61a5..88cb3592cc2e 100644 --- a/keyboards/zhaqian/tester/air32f103/rules.mk +++ b/keyboards/zhaqian/tester/air32f103/rules.mk @@ -6,6 +6,9 @@ BOOTLOADER = custom OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE +KEYBOARD_SHARED_EP = yes +# WS2812_DRIVER = pwm + SRC += uf2_boot.c diff --git a/keyboards/zhaqian/tester/config.h b/keyboards/zhaqian/tester/config.h index 9a7dcc8db434..6916099a3352 100644 --- a/keyboards/zhaqian/tester/config.h +++ b/keyboards/zhaqian/tester/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT Tester -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 3 #define MATRIX_COLS 5 diff --git a/keyboards/zhaqian/tester/rules.mk b/keyboards/zhaqian/tester/rules.mk index 65009517c187..903cc79501c7 100644 --- a/keyboards/zhaqian/tester/rules.mk +++ b/keyboards/zhaqian/tester/rules.mk @@ -1,6 +1,6 @@ BOOTMAGIC_ENABLE = yes MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = yes +CONSOLE_ENABLE = no COMMAND_ENABLE = no NKRO_ENABLE = yes diff --git a/keyboards/zhaqian/zq46/config.h b/keyboards/zhaqian/zq46/config.h index 8748a74619e6..e802f6d6bc46 100644 --- a/keyboards/zhaqian/zq46/config.h +++ b/keyboards/zhaqian/zq46/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT zq46 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/zhaqian/zq48/config.h b/keyboards/zhaqian/zq48/config.h index 34e8e994a247..893efc82f012 100644 --- a/keyboards/zhaqian/zq48/config.h +++ b/keyboards/zhaqian/zq48/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT zq48 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/zhaqian/zq50/config.h b/keyboards/zhaqian/zq50/config.h index faefa823b084..c8664bc04258 100644 --- a/keyboards/zhaqian/zq50/config.h +++ b/keyboards/zhaqian/zq50/config.h @@ -21,7 +21,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT zq50 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/zhaqian/zq64/config.h b/keyboards/zhaqian/zq64/config.h index 76ebb07ce61c..0a45645b67f6 100644 --- a/keyboards/zhaqian/zq64/config.h +++ b/keyboards/zhaqian/zq64/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT zq64 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/zhaqian/zq68/config.h b/keyboards/zhaqian/zq68/config.h index 34bca0dc3014..174b2b691756 100644 --- a/keyboards/zhaqian/zq68/config.h +++ b/keyboards/zhaqian/zq68/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT zq68 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/zhaqian/zq75v2/config.h b/keyboards/zhaqian/zq75v2/config.h index 1ca71b485c20..5af6f4dbc554 100644 --- a/keyboards/zhaqian/zq75v2/config.h +++ b/keyboards/zhaqian/zq75v2/config.h @@ -24,7 +24,7 @@ #define MANUFACTURER ZhaQian #define PRODUCT 剳牵的ZQ75V2pro -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/zhaqian/zq80/config.h b/keyboards/zhaqian/zq80/config.h index 53e2d6b20d7c..3a7c25e6a1fa 100644 --- a/keyboards/zhaqian/zq80/config.h +++ b/keyboards/zhaqian/zq80/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT zq80 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/zhaqian/zq89/config.h b/keyboards/zhaqian/zq89/config.h index 4f3369f0ac3e..e93abd661fc1 100644 --- a/keyboards/zhaqian/zq89/config.h +++ b/keyboards/zhaqian/zq89/config.h @@ -23,7 +23,7 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ZhaQian #define PRODUCT zq89 -#define DESCRIPTION Keyboard + #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h index f10f34a81a42..294aaf08a929 100644 --- a/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_AIR32_F103/configs/mcuconf.h @@ -27,7 +27,7 @@ * driver is enabled in halconf.h. * * IRQ priorities: - * 7...0 Lowest...Highest. + * 3...0 Lowest...Highest. * */ @@ -59,11 +59,11 @@ */ #define AIR32_ADC_USE_ADC1 FALSE #define AIR32_ADC_ADC1_DMA_PRIORITY 2 -#define AIR32_ADC_ADC1_IRQ_PRIORITY 6 +#define AIR32_ADC_ADC1_IRQ_PRIORITY 2 #define AIR32_ADC_USE_ADC2 FALSE #define AIR32_ADC_ADC2_DMA_PRIORITY 2 -#define AIR32_ADC_ADC2_IRQ_PRIORITY 6 +#define AIR32_ADC_ADC2_IRQ_PRIORITY 2 /* * DAC driver system settings. @@ -71,10 +71,10 @@ #define AIR32_DAC_DUAL_MODE FALSE #define AIR32_DAC_USE_DAC1_CH1 FALSE #define AIR32_DAC_USE_DAC1_CH2 FALSE -#define AIR32_DAC_DAC1_CH1_IRQ_PRIORITY 7 -#define AIR32_DAC_DAC1_CH2_IRQ_PRIORITY 7 -#define AIR32_DAC_DAC1_CH1_DMA_PRIORITY 7 -#define AIR32_DAC_DAC1_CH2_DMA_PRIORITY 7 +#define AIR32_DAC_DAC1_CH1_IRQ_PRIORITY 3 +#define AIR32_DAC_DAC1_CH2_IRQ_PRIORITY 3 +#define AIR32_DAC_DAC1_CH1_DMA_PRIORITY 3 +#define AIR32_DAC_DAC1_CH2_DMA_PRIORITY 3 /* * CAN driver system settings. @@ -85,13 +85,13 @@ /* * EXT driver system settings. */ -#define AIR32_EXT_EXTI0_IRQ_PRIORITY 6 -#define AIR32_EXT_EXTI1_IRQ_PRIORITY 6 -#define AIR32_EXT_EXTI2_IRQ_PRIORITY 6 -#define AIR32_EXT_EXTI3_IRQ_PRIORITY 6 -#define AIR32_EXT_EXTI4_IRQ_PRIORITY 6 -#define AIR32_EXT_EXTI5_9_IRQ_PRIORITY 6 -#define AIR32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define AIR32_EXT_EXTI0_IRQ_PRIORITY 2 +#define AIR32_EXT_EXTI1_IRQ_PRIORITY 2 +#define AIR32_EXT_EXTI2_IRQ_PRIORITY 2 +#define AIR32_EXT_EXTI3_IRQ_PRIORITY 2 +#define AIR32_EXT_EXTI4_IRQ_PRIORITY 2 +#define AIR32_EXT_EXTI5_9_IRQ_PRIORITY 2 +#define AIR32_EXT_EXTI10_15_IRQ_PRIORITY 2 /* * GPT driver system settings. @@ -101,11 +101,11 @@ #define AIR32_GPT_USE_TIM3 FALSE #define AIR32_GPT_USE_TIM4 FALSE #define AIR32_GPT_USE_TIM5 FALSE -#define AIR32_GPT_TIM1_IRQ_PRIORITY 7 -#define AIR32_GPT_TIM2_IRQ_PRIORITY 7 -#define AIR32_GPT_TIM3_IRQ_PRIORITY 7 -#define AIR32_GPT_TIM4_IRQ_PRIORITY 7 -#define AIR32_GPT_TIM5_IRQ_PRIORITY 7 +#define AIR32_GPT_TIM1_IRQ_PRIORITY 3 +#define AIR32_GPT_TIM2_IRQ_PRIORITY 3 +#define AIR32_GPT_TIM3_IRQ_PRIORITY 3 +#define AIR32_GPT_TIM4_IRQ_PRIORITY 3 +#define AIR32_GPT_TIM5_IRQ_PRIORITY 3 /* * I2C driver system settings. @@ -127,11 +127,11 @@ #define AIR32_ICU_USE_TIM3 FALSE #define AIR32_ICU_USE_TIM4 FALSE #define AIR32_ICU_USE_TIM5 FALSE -#define AIR32_ICU_TIM1_IRQ_PRIORITY 7 -#define AIR32_ICU_TIM2_IRQ_PRIORITY 7 -#define AIR32_ICU_TIM3_IRQ_PRIORITY 7 -#define AIR32_ICU_TIM4_IRQ_PRIORITY 7 -#define AIR32_ICU_TIM5_IRQ_PRIORITY 7 +#define AIR32_ICU_TIM1_IRQ_PRIORITY 3 +#define AIR32_ICU_TIM2_IRQ_PRIORITY 3 +#define AIR32_ICU_TIM3_IRQ_PRIORITY 3 +#define AIR32_ICU_TIM4_IRQ_PRIORITY 3 +#define AIR32_ICU_TIM5_IRQ_PRIORITY 3 /* * PWM driver system settings. @@ -142,16 +142,16 @@ #define AIR32_PWM_USE_TIM3 FALSE #define AIR32_PWM_USE_TIM4 FALSE #define AIR32_PWM_USE_TIM5 FALSE -#define AIR32_PWM_TIM1_IRQ_PRIORITY 7 -#define AIR32_PWM_TIM2_IRQ_PRIORITY 7 -#define AIR32_PWM_TIM3_IRQ_PRIORITY 7 -#define AIR32_PWM_TIM4_IRQ_PRIORITY 7 -#define AIR32_PWM_TIM5_IRQ_PRIORITY 7 +#define AIR32_PWM_TIM1_IRQ_PRIORITY 3 +#define AIR32_PWM_TIM2_IRQ_PRIORITY 3 +#define AIR32_PWM_TIM3_IRQ_PRIORITY 3 +#define AIR32_PWM_TIM4_IRQ_PRIORITY 3 +#define AIR32_PWM_TIM5_IRQ_PRIORITY 3 /* * RTC driver system settings. */ -#define AIR32_RTC_IRQ_PRIORITY 7 +#define AIR32_RTC_IRQ_PRIORITY 3 /* * SERIAL driver system settings. @@ -159,9 +159,9 @@ #define AIR32_SERIAL_USE_USART1 FALSE #define AIR32_SERIAL_USE_USART2 FALSE #define AIR32_SERIAL_USE_USART3 FALSE -#define AIR32_SERIAL_USART1_PRIORITY 12 -#define AIR32_SERIAL_USART2_PRIORITY 12 -#define AIR32_SERIAL_USART3_PRIORITY 12 +#define AIR32_SERIAL_USART1_PRIORITY 6 +#define AIR32_SERIAL_USART2_PRIORITY 6 +#define AIR32_SERIAL_USART3_PRIORITY 6 /* * SPI driver system settings. @@ -172,15 +172,15 @@ #define AIR32_SPI_SPI1_DMA_PRIORITY 1 #define AIR32_SPI_SPI2_DMA_PRIORITY 1 #define AIR32_SPI_SPI3_DMA_PRIORITY 1 -#define AIR32_SPI_SPI1_IRQ_PRIORITY 10 -#define AIR32_SPI_SPI2_IRQ_PRIORITY 10 -#define AIR32_SPI_SPI3_IRQ_PRIORITY 10 +#define AIR32_SPI_SPI1_IRQ_PRIORITY 6 +#define AIR32_SPI_SPI2_IRQ_PRIORITY 6 +#define AIR32_SPI_SPI3_IRQ_PRIORITY 6 #define AIR32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") /* * ST driver system settings. */ -#define AIR32_ST_IRQ_PRIORITY 8 +#define AIR32_ST_IRQ_PRIORITY 4 #define AIR32_ST_USE_TIMER 2 /* @@ -189,9 +189,9 @@ #define AIR32_UART_USE_USART1 FALSE #define AIR32_UART_USE_USART2 FALSE #define AIR32_UART_USE_USART3 FALSE -#define AIR32_UART_USART1_IRQ_PRIORITY 12 -#define AIR32_UART_USART2_IRQ_PRIORITY 12 -#define AIR32_UART_USART3_IRQ_PRIORITY 12 +#define AIR32_UART_USART1_IRQ_PRIORITY 6 +#define AIR32_UART_USART2_IRQ_PRIORITY 6 +#define AIR32_UART_USART3_IRQ_PRIORITY 6 #define AIR32_UART_USART1_DMA_PRIORITY 0 #define AIR32_UART_USART2_DMA_PRIORITY 0 #define AIR32_UART_USART3_DMA_PRIORITY 0 @@ -202,8 +202,8 @@ */ #define AIR32_USB_USE_USB1 TRUE #define AIR32_USB_LOW_POWER_ON_SUSPEND FALSE -#define AIR32_USB_USB1_HP_IRQ_PRIORITY 13 -#define AIR32_USB_USB1_LP_IRQ_PRIORITY 14 +#define AIR32_USB_USB1_HP_IRQ_PRIORITY 5 +#define AIR32_USB_USB1_LP_IRQ_PRIORITY 6 #endif /* MCUCONF_H */ diff --git a/platforms/chibios/boards/GENERIC_CM32_M101A/board/board.c b/platforms/chibios/boards/GENERIC_CM32_M101A/board/board.c index 13a9f84759ae..60b093480139 100644 --- a/platforms/chibios/boards/GENERIC_CM32_M101A/board/board.c +++ b/platforms/chibios/boards/GENERIC_CM32_M101A/board/board.c @@ -20,7 +20,6 @@ */ #include "hal.h" -#include "../../../../../lib/RTT/SEGGER_RTT.h" /*===========================================================================*/ /* Driver local definitions. */ /*===========================================================================*/ @@ -69,9 +68,7 @@ static void cm32_gpio_init(void) { * any other initialization. */ void __early_init(void) { - SEGGER_RTT_printf(0, "printf Test: %s", "CM32_CLOCK_INIT"); cm32_clock_init(); - SEGGER_RTT_printf(0, "printf Test: %s", "CM32_GPIO_INIT"); cm32_gpio_init(); } /** diff --git a/platforms/chibios/boards/GENERIC_CM32_M101A/configs/chconf.h b/platforms/chibios/boards/GENERIC_CM32_M101A/configs/chconf.h index 97be2e8e4321..295bac53cc60 100644 --- a/platforms/chibios/boards/GENERIC_CM32_M101A/configs/chconf.h +++ b/platforms/chibios/boards/GENERIC_CM32_M101A/configs/chconf.h @@ -1,756 +1,21 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - 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. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_1_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 0 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY FALSE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT FALSE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. +/* Copyright 2020 QMK * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. + * 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. * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS FALSE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES FALSE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name OSLIB options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES FALSE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Objects Caches APIs. - * @details If enabled then the objects caches APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_CACHES) -#define CH_CFG_USE_OBJ_CACHES FALSE -#endif - -/** - * @brief Delegate threads APIs. - * @details If enabled then the delegate threads APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_DELEGATES) -#define CH_CFG_USE_DELEGATES FALSE -#endif - -/** - * @brief Jobs Queues APIs. - * @details If enabled then the jobs queues APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_JOBS) -#define CH_CFG_USE_JOBS FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} - -/** @} */ -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#pragma once -#endif /* CHCONF_H */ +#define CH_CFG_ST_TIMEDELTA 0 -/** @} */ +#include_next \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_CM32_M101A/configs/halconf.h b/platforms/chibios/boards/GENERIC_CM32_M101A/configs/halconf.h deleted file mode 100644 index c80f67ee27c1..000000000000 --- a/platforms/chibios/boards/GENERIC_CM32_M101A/configs/halconf.h +++ /dev/null @@ -1,531 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - 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. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_1_ - -#include - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the EFlash subsystem. - */ -#if !defined(HAL_USE_EFL) || defined(__DOXYGEN__) -#define HAL_USE_EFL FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 128 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -#endif /* HALCONF_H */ - -/** @} */ diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index c19e9b1d99ae..5edc2dc7ea2e 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -80,8 +80,19 @@ # define CPU_CLOCK AIR32_SYSCLK # if defined(AIR32F10x) +# define USE_GPIOV1 +# define USE_I2CV1 # define PAL_MODE_ALTERNATE_OPENDRAIN PAL_MODE_AIR32_ALTERNATE_OPENDRAIN # define PAL_MODE_ALTERNATE_PUSHPULL PAL_MODE_AIR32_ALTERNATE_PUSHPULL +# define STM32_DMA_STREAM(stream) AIR32_DMA_STREAM(stream) +# define STM32_DMA_STREAM_ID(peripheral, channel) AIR32_DMA_STREAM_ID(peripheral, channel) +# define STM32_DMA_CR_DIR_M2P AIR32_DMA_CR_DIR_M2P +# define STM32_DMA_CR_PSIZE_WORD AIR32_DMA_CR_PSIZE_WORD +# define STM32_DMA_CR_MSIZE_WORD AIR32_DMA_CR_MSIZE_WORD +# define STM32_DMA_CR_MINC AIR32_DMA_CR_MINC +# define STM32_DMA_CR_CIRC AIR32_DMA_CR_CIRC +# define STM32_DMA_CR_PL AIR32_DMA_CR_PL +# define STM32_DMA_CR_CHSEL AIR32_DMA_CR_CHSEL # endif #endif diff --git a/platforms/chibios/flash_stm32.c b/platforms/chibios/flash_stm32.c index aa5f3060ab21..192593c61d6e 100644 --- a/platforms/chibios/flash_stm32.c +++ b/platforms/chibios/flash_stm32.c @@ -19,7 +19,7 @@ #include #include "flash_stm32.h" -#if defined(STM32F1XX) || defined(AIR32F10x) +#if defined(STM32F1XX) # define FLASH_SR_WRPERR FLASH_SR_WRPRTERR #endif @@ -66,6 +66,12 @@ static uint8_t ADDR2PAGE(uint32_t Page_Address) { } #endif +#if defined(AIR32F10x) +# define FLASH_SR_WRPERR FLASH_SR_WRPRTERR +# define FLASH_KEY1 0x45670123U +# define FLASH_KEY2 0xCDEF89ABU +#endif + /* Delay definition */ #define EraseTimeout ((uint32_t)0x00000FFF) #define ProgramTimeout ((uint32_t)0x0000001F) From 44e8dd74dd17a7db155c9c4b27ead5b765c6ed3c Mon Sep 17 00:00:00 2001 From: zhaqian <80608733+zhaqian12@users.noreply.github.com> Date: Sun, 26 Jun 2022 13:33:53 +0800 Subject: [PATCH 5/5] update air32f103 protocol --- lib/chibios-contrib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/chibios-contrib b/lib/chibios-contrib index 09309b9595ae..eafdffab6854 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit 09309b9595ae7fe74912131a938c751689e70411 +Subproject commit eafdffab68547b9c18914f8b33cd7be67fc1fdd2