From 39c0c27587a76e94996f2f17fef94c8b90c73bf6 Mon Sep 17 00:00:00 2001 From: Aurelien Bondis Date: Mon, 30 Nov 2015 17:36:15 +0000 Subject: [PATCH] Add generic STM32F103C8T6 example. --- keyboard/stm32_f103_onekey/Makefile | 80 +++ .../boards/GENERIC_STM32_F103/board.c | 49 ++ .../boards/GENERIC_STM32_F103/board.h | 166 ++++++ .../boards/GENERIC_STM32_F103/board.mk | 5 + .../GENERIC_STM32_F103/mini_stm32_mapping.png | Bin 0 -> 162908 bytes keyboard/stm32_f103_onekey/bootloader_defs.h | 10 + keyboard/stm32_f103_onekey/chconf.h | 503 ++++++++++++++++++ keyboard/stm32_f103_onekey/config.h | 74 +++ keyboard/stm32_f103_onekey/flash.sh | 2 + keyboard/stm32_f103_onekey/halconf.h | 334 ++++++++++++ keyboard/stm32_f103_onekey/keymap_plain.c | 44 ++ keyboard/stm32_f103_onekey/ld/STM32F103x8.ld | 53 ++ .../ld/STM32F103x8_stm32duino_bootloader.ld | 53 ++ keyboard/stm32_f103_onekey/led.c | 32 ++ keyboard/stm32_f103_onekey/matrix.c | 163 ++++++ keyboard/stm32_f103_onekey/mcuconf.h | 172 ++++++ 16 files changed, 1740 insertions(+) create mode 100644 keyboard/stm32_f103_onekey/Makefile create mode 100644 keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c create mode 100644 keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h create mode 100644 keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk create mode 100644 keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png create mode 100644 keyboard/stm32_f103_onekey/bootloader_defs.h create mode 100644 keyboard/stm32_f103_onekey/chconf.h create mode 100644 keyboard/stm32_f103_onekey/config.h create mode 100755 keyboard/stm32_f103_onekey/flash.sh create mode 100644 keyboard/stm32_f103_onekey/halconf.h create mode 100644 keyboard/stm32_f103_onekey/keymap_plain.c create mode 100644 keyboard/stm32_f103_onekey/ld/STM32F103x8.ld create mode 100644 keyboard/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld create mode 100644 keyboard/stm32_f103_onekey/led.c create mode 100644 keyboard/stm32_f103_onekey/matrix.c create mode 100644 keyboard/stm32_f103_onekey/mcuconf.h diff --git a/keyboard/stm32_f103_onekey/Makefile b/keyboard/stm32_f103_onekey/Makefile new file mode 100644 index 00000000..ea2ee08b --- /dev/null +++ b/keyboard/stm32_f103_onekey/Makefile @@ -0,0 +1,80 @@ +# Target file name (without extension). +PROJECT = ch +TARGET = alps64 + +# Directory common source files exist +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# project specific files +SRC = matrix.c \ + led.c + +ifdef KEYMAP + SRC := keymap_$(KEYMAP).c $(SRC) +else + SRC := keymap_plain.c $(SRC) +endif + +CONFIG_H = config.h + +# GENERIC STM32F103C8T6 board - stm32duino bootloader +# OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000 +# MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader +# BOARD = GENERIC_STM32_F103 + +# GENERIC STM32F103C8T6 board - no bootloader (programmer over serial or SWD) +OPT_DEFS = +MCU_LDSCRIPT = STM32F103x8 +BOARD = GENERIC_STM32_F103 + +# MAPLE MINI +# OPT_DEFS = -DCORTEX_VTOR_INIT=0x5000 +# MCU_LDSCRIPT = STM32F103xE_maplemini_bootloader.ld +# BOARD = MAPLEMINI_STM32_F103 + +## chip/board settings +# the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +MCU_FAMILY = STM32 +MCU_SERIES = STM32F1xx +# linker script to use +# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# startup code to use +# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +MCU_STARTUP = stm32f1xx +# it should exist either in /os/hal/boards/ +# or /boards +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m3 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 7 +# If you want to be able to jump to bootloader from firmware on STM32 MCUs, +# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in +# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have +# a custom board definition that you plan to reuse). +# If you're not setting it here, leave it commented out. +# It is chip dependent, the correct number can be looked up here (page 175): +# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf +# This also requires a patch to chibios: +# /tmk_core/tool/chibios/ch-bootloader-jump.patch +#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 + +# Build Options +# comment out to disable the options. +# +#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +## BOOTMAGIC is not supported on STM32 chips yet. +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover + +include $(TMK_DIR)/tool/chibios/common.mk +include $(TMK_DIR)/tool/chibios/chibios.mk diff --git a/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c b/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c new file mode 100644 index 00000000..31319ef5 --- /dev/null +++ b/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c @@ -0,0 +1,49 @@ +/* + ChibiOS - Copyright (C) 2006..2015 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. +*/ + +#include "hal.h" + +/** + * @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. + */ +#if HAL_USE_PAL || defined(__DOXYGEN__) +const PALConfig pal_default_config = +{ + {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, + {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, + {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, + {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, + {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, +}; +#endif + +/* + * Early initialization code. + * This initialization must be performed just after stack setup and before + * any other initialization. + */ +void __early_init(void) { + + stm32_clock_init(); +} + +/* + * Board-specific initialization code. + */ +void boardInit(void) { +} diff --git a/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h b/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h new file mode 100644 index 00000000..ef7318ee --- /dev/null +++ b/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h @@ -0,0 +1,166 @@ +/* + ChibiOS - Copyright (C) 2006..2015 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. +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/* + * Setup for a Generic STM32F103 board. + */ + +/* + * Board identifier. + */ +#define BOARD_GENERIC_STM32_F103 +#define BOARD_NAME "Generic STM32F103x board" + +/* + * Board frequencies. + */ +#define STM32_LSECLK 32768 +#define STM32_HSECLK 8000000 + +/* + * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. + */ +#define STM32F103xB + +/* + * IO pins assignments + */ + +/* on-board */ + +#define GPIOC_LED 13 +#define GPIOD_OSC_IN 0 +#define GPIOD_OSC_OUT 1 + +/* In case your board has a "USB enable" hardware + controlled by a pin, define it here. (It could be just + a 1.5k resistor connected to D+ line.) +*/ +/* +#define GPIOB_USB_DISC 10 +*/ + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * + * The digits have the following meaning: + * 0 - Analog input. + * 1 - Push Pull output 10MHz. + * 2 - Push Pull output 2MHz. + * 3 - Push Pull output 50MHz. + * 4 - Digital input. + * 5 - Open Drain output 10MHz. + * 6 - Open Drain output 2MHz. + * 7 - Open Drain output 50MHz. + * 8 - Digital input with PullUp or PullDown resistor depending on ODR. + * 9 - Alternate Push Pull output 10MHz. + * A - Alternate Push Pull output 2MHz. + * B - Alternate Push Pull output 50MHz. + * C - Reserved. + * D - Alternate Open Drain output 10MHz. + * E - Alternate Open Drain output 2MHz. + * F - Alternate Open Drain output 50MHz. + * Please refer to the STM32 Reference Manual for details. + */ + +/* + * Port A setup. + * Everything input with pull-up except: + * PA2 - Alternate output (USART2 TX). + * PA3 - Normal input (USART2 RX). + * PA9 - Alternate output (USART1 TX). + * PA10 - Normal input (USART1 RX). + */ +#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ +#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ +#define VAL_GPIOAODR 0xFFFFFFFF + +/* + * Port B setup. + * Everything input with pull-up except: + * PB10 - Push Pull output (USB switch). + */ +#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ +#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ +#define VAL_GPIOBODR 0xFFFFFFFF + +/* + * Port C setup. + * Everything input with pull-up except: + * PC13 - Push Pull output (LED). + */ +#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ +#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ +#define VAL_GPIOCODR 0xFFFFFFFF + +/* + * Port D setup. + * Everything input with pull-up except: + * PD0 - Normal input (XTAL). + * PD1 - Normal input (XTAL). + */ +#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ +#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ +#define VAL_GPIODODR 0xFFFFFFFF + +/* + * Port E setup. + * Everything input with pull-up except: + */ +#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ +#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ +#define VAL_GPIOEODR 0xFFFFFFFF + +/* + * USB bus activation macro, required by the USB driver. + */ +/* The point is that most of the generic STM32F103* boards + have a 1.5k resistor connected on one end to the D+ line + and on the other end to some pin. Or even a slightly more + complicated "USB enable" circuit, controlled by a pin. + That should go here. + + However on some boards (e.g. one that I have), there's no + such hardware. In which case it's better to not do anything. +*/ +/* +#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_connect_bus(usbp) + +/* + * USB bus de-activation macro, required by the USB driver. + */ +/* +#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_disconnect_bus(usbp) + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk b/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk new file mode 100644 index 00000000..a87d78b6 --- /dev/null +++ b/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = ./boards/GENERIC_STM32_F103/board.c + +# Required include directories +BOARDINC = ./boards/GENERIC_STM32_F103 diff --git a/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png b/keyboard/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png new file mode 100644 index 0000000000000000000000000000000000000000..c44a7d9ebcbf5f50ce5ad9a191bcf50cae2b2522 GIT binary patch literal 162908 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%0A*1RQ~AE_7CD2*!ePO3Ptc0b3ThU{N^mV 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 z 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/tmk_core/tool/chibios/ch-bootloader-jump.patch + */ + +// STM32F103* does NOT have an USB bootloader in ROM (only serial), +// so setting anything here does not make much sense +// #define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboard/stm32_f103_onekey/chconf.h b/keyboard/stm32_f103_onekey/chconf.h new file mode 100644 index 00000000..689d4b39 --- /dev/null +++ b/keyboard/stm32_f103_onekey/chconf.h @@ -0,0 +1,503 @@ +/* + ChibiOS - Copyright (C) 2006..2015 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/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_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 16 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 10000 + +/** + * @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. + */ +#define CH_CFG_ST_TIMEDELTA 2 + +/** @} */ + +/*===========================================================================*/ +/** + * @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. + */ +#define CH_CFG_TIME_QUANTUM 0 + +/** + * @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. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @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. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @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. + */ +#define CH_CFG_OPTIMIZE_SPEED FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @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. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores 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_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @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. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @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. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @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. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @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. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @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. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @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. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_QUEUES TRUE + +/** + * @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. + */ +#define CH_CFG_USE_MEMCORE FALSE + +/** + * @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. + */ +#define CH_CFG_USE_HEAP FALSE + +/** + * @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. + */ +#define CH_CFG_USE_MEMPOOLS FALSE + +/** + * @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. + */ +#define CH_CFG_USE_DYNAMIC FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @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. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @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. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @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. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_TRACE FALSE + +/** + * @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. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @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. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @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. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @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 chThdInit() API. + * + * @note It is invoked from within @p chThdInit() 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. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#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 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() { \ +} + +/** + * @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() { \ +} + +/** + * @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.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/keyboard/stm32_f103_onekey/config.h b/keyboard/stm32_f103_onekey/config.h new file mode 100644 index 00000000..8063c57e --- /dev/null +++ b/keyboard/stm32_f103_onekey/config.h @@ -0,0 +1,74 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "TMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' +#define PRODUCT "ChibiOS TMK test" +#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' +#define DESCRIPTION "TMK keyboard firmware over ChibiOS" + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/stm32_f103_onekey/flash.sh b/keyboard/stm32_f103_onekey/flash.sh new file mode 100755 index 00000000..15501dfa --- /dev/null +++ b/keyboard/stm32_f103_onekey/flash.sh @@ -0,0 +1,2 @@ +#!/bin/bash +Arduino_STM32_usb_hid/tools/linux/maple_upload ttyACM0 2 1EAF:0003 build/ch.bin diff --git a/keyboard/stm32_f103_onekey/halconf.h b/keyboard/stm32_f103_onekey/halconf.h new file mode 100644 index 00000000..d3415c55 --- /dev/null +++ b/keyboard/stm32_f103_onekey/halconf.h @@ -0,0 +1,334 @@ +/* + ChibiOS - Copyright (C) 2006..2015 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_ + +#include "mcuconf.h" + +/** + * @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 DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT 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 SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI 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 + +/*===========================================================================*/ +/* 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 + +/*===========================================================================*/ +/* 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 an event sources for incoming packets. + */ +#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 + +/*===========================================================================*/ +/* 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 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#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 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#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 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 + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboard/stm32_f103_onekey/keymap_plain.c b/keyboard/stm32_f103_onekey/keymap_plain.c new file mode 100644 index 00000000..8de1c027 --- /dev/null +++ b/keyboard/stm32_f103_onekey/keymap_plain.c @@ -0,0 +1,44 @@ +/* +Copyright 2012,2013 Jun Wako + +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 "keycode.h" +#include "action.h" +#include "action_macro.h" +#include "report.h" +#include "host.h" +#include "print.h" +#include "debug.h" +#include "keymap.h" + +static const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD +}; + +static const uint16_t fn_actions[] = { +}; + +/* translates key to keycode */ +uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key) +{ + return keymaps[(layer)][(key.row)][(key.col)]; +} + +/* translates Fn keycode to action */ +action_t keymap_fn_to_action(uint8_t keycode) +{ + return (action_t){ .code = fn_actions[FN_INDEX(keycode)] }; +} diff --git a/keyboard/stm32_f103_onekey/ld/STM32F103x8.ld b/keyboard/stm32_f103_onekey/ld/STM32F103x8.ld new file mode 100644 index 00000000..54105375 --- /dev/null +++ b/keyboard/stm32_f103_onekey/ld/STM32F103x8.ld @@ -0,0 +1,53 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio. + + This file is part of ChibiOS. + + ChibiOS 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 3 of the License, or + (at your option) any later version. + + ChibiOS 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 . +*/ + +/* + * ST32F103xB memory setup. + */ +MEMORY +{ + flash : org = 0x08000000, len = 64k + ram0 : org = 0x20000000, len = 20k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +INCLUDE rules.ld diff --git a/keyboard/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboard/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld new file mode 100644 index 00000000..425616af --- /dev/null +++ b/keyboard/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld @@ -0,0 +1,53 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio. + + This file is part of ChibiOS. + + ChibiOS 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 3 of the License, or + (at your option) any later version. + + ChibiOS 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 . +*/ + +/* + * ST32F103xB memory setup. + */ +MEMORY +{ + flash : org = 0x08002000, len = 64k - 0x2000 + ram0 : org = 0x20000C00, len = 20k - 0xC00 + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +INCLUDE rules.ld diff --git a/keyboard/stm32_f103_onekey/led.c b/keyboard/stm32_f103_onekey/led.c new file mode 100644 index 00000000..ddacfd8c --- /dev/null +++ b/keyboard/stm32_f103_onekey/led.c @@ -0,0 +1,32 @@ +/* +Copyright 2012 Jun Wako + +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 "led.h" + + +void led_set(uint8_t usb_led) +{ + if (usb_led & (1< + +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 "ch.h" +#include "hal.h" + +/* + * scan matrix + */ +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "wait.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +#define LED_ON() do { palClearPad(GPIOC, GPIOC_LED) ;} while (0) +#define LED_OFF() do { palSetPad(GPIOC, GPIOC_LED); } while (0) +#define LED_TGL() do { palTogglePad(GPIOC, GPIOC_LED); } while (0) + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + wait_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<