diff options
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/audio/audio_arm.c | 10 | ||||
-rw-r--r-- | quantum/backlight/backlight_avr.c | 58 | ||||
-rw-r--r-- | quantum/encoder.c | 15 | ||||
-rw-r--r-- | quantum/keymap_common.c | 20 | ||||
-rw-r--r-- | quantum/process_keycode/process_backlight.c | 51 | ||||
-rw-r--r-- | quantum/process_keycode/process_backlight.h | 21 | ||||
-rw-r--r-- | quantum/quantum.c | 3 | ||||
-rw-r--r-- | quantum/quantum.h | 4 | ||||
-rw-r--r-- | quantum/serial_link/system/serial_link.c | 4 | ||||
-rw-r--r-- | quantum/stm32/chconf.h | 269 | ||||
-rw-r--r-- | quantum/stm32/halconf.h | 166 | ||||
-rw-r--r-- | quantum/stm32/mcuconf.h | 62 | ||||
-rw-r--r-- | quantum/visualizer/common_gfxconf.h | 453 | ||||
-rw-r--r-- | quantum/visualizer/visualizer.c | 4 | ||||
-rw-r--r-- | quantum/visualizer/visualizer.h | 4 |
15 files changed, 812 insertions, 332 deletions
diff --git a/quantum/audio/audio_arm.c b/quantum/audio/audio_arm.c index e4483c3028..fba7c59873 100644 --- a/quantum/audio/audio_arm.c +++ b/quantum/audio/audio_arm.c @@ -218,17 +218,11 @@ static const dacsample_t dac_buffer_2[DAC_BUFFER_SIZE] = { /* * DAC streaming callback. */ -size_t nx = 0, ny = 0, nz = 0; -static void end_cb1(DACDriver *dacp, dacsample_t *buffer, size_t n) { +size_t nz = 0; +static void end_cb1(DACDriver *dacp) { (void)dacp; nz++; - if (dac_buffer == buffer) { - nx += n; - } else { - ny += n; - } - if ((nz % 1000) == 0) { // palTogglePad(GPIOD, GPIOD_LED3); } diff --git a/quantum/backlight/backlight_avr.c b/quantum/backlight/backlight_avr.c index 7cf1e0fb30..519c0c2cf2 100644 --- a/quantum/backlight/backlight_avr.c +++ b/quantum/backlight/backlight_avr.c @@ -22,12 +22,15 @@ # define TOIEx TOIE1 # if BACKLIGHT_PIN == B5 +# define COMxx0 COM1A0 # define COMxx1 COM1A1 # define OCRxx OCR1A # elif BACKLIGHT_PIN == B6 +# define COMxx0 COM1B0 # define COMxx1 COM1B1 # define OCRxx OCR1B # elif BACKLIGHT_PIN == B7 +# define COMxx0 COM1C0 # define COMxx1 COM1C1 # define OCRxx OCR1C # endif @@ -44,6 +47,7 @@ # if (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) # error This MCU has no C4 pin! # else +# define COMxx0 COM3C0 # define COMxx1 COM3C1 # define OCRxx OCR3C # endif @@ -51,10 +55,12 @@ # if (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) # error This MCU has no C5 pin! # else +# define COMxx0 COM3B0 # define COMxx1 COM3B1 # define OCRxx OCR3B # endif # elif BACKLIGHT_PIN == C6 +# define COMxx0 COM3A0 # define COMxx1 COM3A1 # define OCRxx OCR3A # endif @@ -68,12 +74,15 @@ # define TOIEx TOIE1 # if BACKLIGHT_PIN == B7 +# define COMxx0 COM1C0 # define COMxx1 COM1C1 # define OCRxx OCR1C # elif BACKLIGHT_PIN == C5 +# define COMxx0 COM1B0 # define COMxx1 COM1B1 # define OCRxx OCR1B # elif BACKLIGHT_PIN == C6 +# define COMxx0 COM1A0 # define COMxx1 COM1A1 # define OCRxx OCR1A # endif @@ -87,9 +96,11 @@ # define TOIEx TOIE1 # if BACKLIGHT_PIN == D4 +# define COMxx0 COM1B0 # define COMxx1 COM1B1 # define OCRxx OCR1B # elif BACKLIGHT_PIN == D5 +# define COMxx0 COM1A0 # define COMxx1 COM1A1 # define OCRxx OCR1A # endif @@ -103,9 +114,11 @@ # define TOIEx TOIE1 # if BACKLIGHT_PIN == B1 +# define COMxx0 COM1A0 # define COMxx1 COM1A1 # define OCRxx OCR1A # elif BACKLIGHT_PIN == B2 +# define COMxx0 COM1B0 # define COMxx1 COM1B1 # define OCRxx OCR1B # endif @@ -156,22 +169,22 @@ # endif # ifndef BACKLIGHT_ON_STATE -# define BACKLIGHT_ON_STATE 0 +# define BACKLIGHT_ON_STATE 1 # endif void backlight_on(pin_t backlight_pin) { -# if BACKLIGHT_ON_STATE == 0 - writePinLow(backlight_pin); -# else +# if BACKLIGHT_ON_STATE == 1 writePinHigh(backlight_pin); +# else + writePinLow(backlight_pin); # endif } void backlight_off(pin_t backlight_pin) { -# if BACKLIGHT_ON_STATE == 0 - writePinHigh(backlight_pin); -# else +# if BACKLIGHT_ON_STATE == 1 writePinLow(backlight_pin); +# else + writePinHigh(backlight_pin); # endif } @@ -199,6 +212,22 @@ static const pin_t backlight_pins[BACKLIGHT_LED_COUNT] = BACKLIGHT_PIN_INIT; # else // full hardware PWM +static inline void enable_pwm(void) { +# if BACKLIGHT_ON_STATE == 1 + TCCRxA |= _BV(COMxx1); +# else + TCCRxA |= _BV(COMxx1) | _BV(COMxx0); +# endif +} + +static inline void disable_pwm(void) { +# if BACKLIGHT_ON_STATE == 1 + TCCRxA &= ~(_BV(COMxx1)); +# else + TCCRxA &= ~(_BV(COMxx1) | _BV(COMxx0)); +# endif +} + // we support only one backlight pin static const pin_t backlight_pin = BACKLIGHT_PIN; # define FOR_EACH_LED(x) x @@ -309,12 +338,12 @@ void backlight_set(uint8_t level) { if (OCRxx) { TIMSKx &= ~(_BV(OCIExA)); TIMSKx &= ~(_BV(TOIEx)); - FOR_EACH_LED(backlight_off(backlight_pin);) } # else // Turn off PWM control on backlight pin - TCCRxA &= ~(_BV(COMxx1)); + disable_pwm(); # endif + FOR_EACH_LED(backlight_off(backlight_pin);) } else { # ifdef BACKLIGHT_PWM_TIMER if (!OCRxx) { @@ -323,7 +352,7 @@ void backlight_set(uint8_t level) { } # else // Turn on PWM control of backlight pin - TCCRxA |= _BV(COMxx1); + enable_pwm(); # endif } // Set the brightness @@ -471,8 +500,13 @@ void backlight_init_ports(void) { "In fast PWM mode, the compare units allow generation of PWM waveforms on the OCnx pins. Setting the COMnx1:0 bits to two will produce a non-inverted PWM [..]." "In fast PWM mode the counter is incremented until the counter value matches either one of the fixed values 0x00FF, 0x01FF, or 0x03FF (WGMn3:0 = 5, 6, or 7), the value in ICRn (WGMn3:0 = 14), or the value in OCRnA (WGMn3:0 = 15)." */ - TCCRxA = _BV(COMxx1) | _BV(WGM11); // = 0b00001010; - TCCRxB = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; +# if BACKLIGHT_ON_STATE == 1 + TCCRxA = _BV(COMxx1) | _BV(WGM11); +# else + TCCRxA = _BV(COMxx1) | _BV(COMxx0) | _BV(WGM11); +# endif + + TCCRxB = _BV(WGM13) | _BV(WGM12) | _BV(CS10); # endif // Use full 16-bit resolution. Counter counts to ICR1 before reset to 0. ICRx = TIMER_TOP; diff --git a/quantum/encoder.c b/quantum/encoder.c index 8e11562eb7..81ec1bb376 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -35,6 +35,13 @@ static pin_t encoders_pad_a[] = ENCODERS_PAD_A; static pin_t encoders_pad_b[] = ENCODERS_PAD_B; +#ifndef ENCODER_DIRECTION_FLIP +# define ENCODER_CLOCKWISE true +# define ENCODER_COUNTER_CLOCKWISE false +#else +# define ENCODER_CLOCKWISE false +# define ENCODER_COUNTER_CLOCKWISE true +#endif static int8_t encoder_LUT[] = {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0}; static uint8_t encoder_state[NUMBER_OF_ENCODERS] = {0}; @@ -86,11 +93,11 @@ static void encoder_update(int8_t index, uint8_t state) { encoder_pulses[i] += encoder_LUT[state & 0xF]; if (encoder_pulses[i] >= ENCODER_RESOLUTION) { encoder_value[index]++; - encoder_update_kb(index, true); + encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE); } if (encoder_pulses[i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise encoder_value[index]--; - encoder_update_kb(index, false); + encoder_update_kb(index, ENCODER_CLOCKWISE); } encoder_pulses[i] %= ENCODER_RESOLUTION; } @@ -113,12 +120,12 @@ void encoder_update_raw(uint8_t* slave_state) { while (delta > 0) { delta--; encoder_value[index]++; - encoder_update_kb(index, true); + encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE); } while (delta < 0) { delta++; encoder_value[index]--; - encoder_update_kb(index, false); + encoder_update_kb(index, ENCODER_CLOCKWISE); } } } diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index c82c446399..f34ba26e5a 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -139,26 +139,6 @@ action_t action_for_key(uint8_t layer, keypos_t key) { mod = mod_config((keycode >> 0x8) & 0x1F); action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF); break; -#ifdef BACKLIGHT_ENABLE - case BL_ON: - action.code = ACTION_BACKLIGHT_ON(); - break; - case BL_OFF: - action.code = ACTION_BACKLIGHT_OFF(); - break; - case BL_DEC: - action.code = ACTION_BACKLIGHT_DECREASE(); - break; - case BL_INC: - action.code = ACTION_BACKLIGHT_INCREASE(); - break; - case BL_TOGG: - action.code = ACTION_BACKLIGHT_TOGGLE(); - break; - case BL_STEP: - action.code = ACTION_BACKLIGHT_STEP(); - break; -#endif #ifdef SWAP_HANDS_ENABLE case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: action.code = ACTION(ACT_SWAP_HANDS, keycode & 0xff); diff --git a/quantum/process_keycode/process_backlight.c b/quantum/process_keycode/process_backlight.c new file mode 100644 index 0000000000..4d12f6813a --- /dev/null +++ b/quantum/process_keycode/process_backlight.c @@ -0,0 +1,51 @@ +/* Copyright 2019 + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#include "process_backlight.h" + +#include "backlight.h" + +bool process_backlight(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case BL_ON: + backlight_level(BACKLIGHT_LEVELS); + return false; + case BL_OFF: + backlight_level(0); + return false; + case BL_DEC: + backlight_decrease(); + return false; + case BL_INC: + backlight_increase(); + return false; + case BL_TOGG: + backlight_toggle(); + return false; + case BL_STEP: + backlight_step(); + return false; +#ifdef BACKLIGHT_BREATHING + case BL_BRTG: + backlight_toggle_breathing(); + return false; +#endif + } + } + + return true; +} diff --git a/quantum/process_keycode/process_backlight.h b/quantum/process_keycode/process_backlight.h new file mode 100644 index 0000000000..7fe887ae67 --- /dev/null +++ b/quantum/process_keycode/process_backlight.h @@ -0,0 +1,21 @@ +/* Copyright 2019 + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +bool process_backlight(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/quantum.c b/quantum/quantum.c index 1b5ce3292c..7c19a3bbb6 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -224,6 +224,9 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef AUDIO_ENABLE process_audio(keycode, record) && #endif +#ifdef BACKLIGHT_ENABLE + process_backlight(keycode, record) && +#endif #ifdef STENO_ENABLE process_steno(keycode, record) && #endif diff --git a/quantum/quantum.h b/quantum/quantum.h index fbd5e90792..7dc14e6280 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -88,6 +88,10 @@ extern layer_state_t layer_state; # include "process_music.h" #endif +#ifdef BACKLIGHT_ENABLE +# include "process_backlight.h" +#endif + #ifdef LEADER_ENABLE # include "process_leader.h" #endif diff --git a/quantum/serial_link/system/serial_link.c b/quantum/serial_link/system/serial_link.c index feac64e297..c59c068944 100644 --- a/quantum/serial_link/system/serial_link.c +++ b/quantum/serial_link/system/serial_link.c @@ -119,7 +119,7 @@ static THD_FUNCTION(serialThread, arg) { eventflags_t flags1 = 0; eventflags_t flags2 = 0; if (need_wait) { - eventmask_t mask = chEvtWaitAnyTimeout(ALL_EVENTS, MS2ST(1000)); + eventmask_t mask = chEvtWaitAnyTimeout(ALL_EVENTS, TIME_MS2I(1000)); if (mask & EVENT_MASK(1)) { flags1 = chEvtGetAndClearFlags(&sd1_listener); print_error("DOWNLINK", flags1, &SD1); @@ -192,7 +192,7 @@ void serial_link_update(void) { systime_t current_time = chVTGetSystemTimeX(); systime_t delta = current_time - last_update; - if (changed || delta > US2ST(5000)) { + if (changed || delta > TIME_US2I(5000)) { last_update = current_time; last_matrix = matrix; matrix_object_t* m = begin_write_keyboard_matrix(); diff --git a/quantum/stm32/chconf.h b/quantum/stm32/chconf.h index 6b691950a6..b6e66f9e49 100644 --- a/quantum/stm32/chconf.h +++ b/quantum/stm32/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + 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. @@ -15,7 +15,7 @@ */ /** - * @file templates/chconf.h + * @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. @@ -29,6 +29,7 @@ # define CHCONF_H # define _CHIBIOS_RT_CONF_ +# define _CHIBIOS_RT_CONF_VER_6_0_ /*===========================================================================*/ /** @@ -41,14 +42,34 @@ * @brief System time counter resolution. * @note Allowed values are 16 or 32 bits. */ -# define CH_CFG_ST_RESOLUTION 32 +# 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. */ -# define CH_CFG_ST_FREQUENCY 100000 +# 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. @@ -58,7 +79,9 @@ * The value one is not valid, timeouts are rounded up to * this value. */ -# define CH_CFG_ST_TIMEDELTA 2 +# if !defined(CH_CFG_ST_TIMEDELTA) +# define CH_CFG_ST_TIMEDELTA 2 +# endif /** @} */ @@ -81,7 +104,9 @@ * @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 +# if !defined(CH_CFG_TIME_QUANTUM) +# define CH_CFG_TIME_QUANTUM 0 +# endif /** * @brief Managed RAM size. @@ -94,7 +119,9 @@ * provide the @p __heap_base__ and @p __heap_end__ symbols. * @note Requires @p CH_CFG_USE_MEMCORE. */ -# define CH_CFG_MEMCORE_SIZE 0 +# if !defined(CH_CFG_MEMCORE_SIZE) +# define CH_CFG_MEMCORE_SIZE 0 +# endif /** * @brief Idle thread automatic spawn suppression. @@ -103,7 +130,9 @@ * function becomes the idle thread and must implement an * infinite loop. */ -# define CH_CFG_NO_IDLE_THREAD FALSE +# if !defined(CH_CFG_NO_IDLE_THREAD) +# define CH_CFG_NO_IDLE_THREAD FALSE +# endif /** @} */ @@ -122,7 +151,9 @@ * @note This is not related to the compiler optimization options. * @note The default is @p TRUE. */ -# define CH_CFG_OPTIMIZE_SPEED TRUE +# if !defined(CH_CFG_OPTIMIZE_SPEED) +# define CH_CFG_OPTIMIZE_SPEED TRUE +# endif /** @} */ @@ -140,7 +171,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_TM TRUE +# if !defined(CH_CFG_USE_TM) +# define CH_CFG_USE_TM TRUE +# endif /** * @brief Threads registry APIs. @@ -148,7 +181,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_REGISTRY TRUE +# if !defined(CH_CFG_USE_REGISTRY) +# define CH_CFG_USE_REGISTRY TRUE +# endif /** * @brief Threads synchronization APIs. @@ -157,7 +192,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_WAITEXIT TRUE +# if !defined(CH_CFG_USE_WAITEXIT) +# define CH_CFG_USE_WAITEXIT TRUE +# endif /** * @brief Semaphores APIs. @@ -165,7 +202,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_SEMAPHORES TRUE +# if !defined(CH_CFG_USE_SEMAPHORES) +# define CH_CFG_USE_SEMAPHORES TRUE +# endif /** * @brief Semaphores queuing mode. @@ -176,7 +215,9 @@ * requirements. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ -# define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +# if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +# define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +# endif /** * @brief Mutexes APIs. @@ -184,7 +225,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_MUTEXES TRUE +# if !defined(CH_CFG_USE_MUTEXES) +# define CH_CFG_USE_MUTEXES TRUE +# endif /** * @brief Enables recursive behavior on mutexes. @@ -194,7 +237,9 @@ * @note The default is @p FALSE. * @note Requires @p CH_CFG_USE_MUTEXES. */ -# define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +# if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +# define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +# endif /** * @brief Conditional Variables APIs. @@ -204,7 +249,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_MUTEXES. */ -# define CH_CFG_USE_CONDVARS TRUE +# if !defined(CH_CFG_USE_CONDVARS) +# define CH_CFG_USE_CONDVARS TRUE +# endif /** * @brief Conditional Variables APIs with timeout. @@ -214,7 +261,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_CONDVARS. */ -# define CH_CFG_USE_CONDVARS_TIMEOUT TRUE +# if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +# define CH_CFG_USE_CONDVARS_TIMEOUT TRUE +# endif /** * @brief Events Flags APIs. @@ -222,7 +271,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_EVENTS TRUE +# if !defined(CH_CFG_USE_EVENTS) +# define CH_CFG_USE_EVENTS TRUE +# endif /** * @brief Events Flags APIs with timeout. @@ -232,7 +283,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_EVENTS. */ -# define CH_CFG_USE_EVENTS_TIMEOUT TRUE +# if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +# define CH_CFG_USE_EVENTS_TIMEOUT TRUE +# endif /** * @brief Synchronous Messages APIs. @@ -241,7 +294,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_MESSAGES TRUE +# if !defined(CH_CFG_USE_MESSAGES) +# define CH_CFG_USE_MESSAGES TRUE +# endif /** * @brief Synchronous Messages queuing mode. @@ -252,7 +307,9 @@ * requirements. * @note Requires @p CH_CFG_USE_MESSAGES. */ -# define CH_CFG_USE_MESSAGES_PRIORITY TRUE +# if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +# define CH_CFG_USE_MESSAGES_PRIORITY TRUE +# endif /** * @brief Mailboxes APIs. @@ -262,7 +319,9 @@ * @note The default is @p TRUE. * @note Requires @p CH_CFG_USE_SEMAPHORES. */ -# define CH_CFG_USE_MAILBOXES TRUE +# if !defined(CH_CFG_USE_MAILBOXES) +# define CH_CFG_USE_MAILBOXES TRUE +# endif /** * @brief Core Memory Manager APIs. @@ -271,7 +330,9 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_MEMCORE TRUE +# if !defined(CH_CFG_USE_MEMCORE) +# define CH_CFG_USE_MEMCORE TRUE +# endif /** * @brief Heap Allocator APIs. @@ -283,7 +344,9 @@ * @p CH_CFG_USE_SEMAPHORES. * @note Mutexes are recommended. */ -# define CH_CFG_USE_HEAP TRUE +# if !defined(CH_CFG_USE_HEAP) +# define CH_CFG_USE_HEAP TRUE +# endif /** * @brief Memory Pools Allocator APIs. @@ -292,7 +355,31 @@ * * @note The default is @p TRUE. */ -# define CH_CFG_USE_MEMPOOLS TRUE +# if !defined(CH_CFG_USE_MEMPOOLS) +# define CH_CFG_USE_MEMPOOLS TRUE +# endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_OBJ_FIFOS) +# define CH_CFG_USE_OBJ_FIFOS TRUE +# 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 TRUE +# endif /** * @brief Dynamic Threads APIs. @@ -303,7 +390,80 @@ * @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 TRUE +# if !defined(CH_CFG_USE_DYNAMIC) +# define CH_CFG_USE_DYNAMIC TRUE +# 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 TRUE +# 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 TRUE +# endif + +/** + * @brief Enables factory for generic buffers. + */ +# if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +# define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE +# endif + +/** + * @brief Enables factory for semaphores. + */ +# if !defined(CH_CFG_FACTORY_SEMAPHORES) +# define CH_CFG_FACTORY_SEMAPHORES TRUE +# endif + +/** + * @brief Enables factory for mailboxes. + */ +# if !defined(CH_CFG_FACTORY_MAILBOXES) +# define CH_CFG_FACTORY_MAILBOXES TRUE +# endif + +/** + * @brief Enables factory for objects FIFOs. + */ +# if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +# define CH_CFG_FACTORY_OBJ_FIFOS TRUE +# endif + +/** + * @brief Enables factory for Pipes. + */ +# if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +# define CH_CFG_FACTORY_PIPES TRUE +# endif /** @} */ @@ -319,7 +479,9 @@ * * @note The default is @p FALSE. */ -# define CH_DBG_STATISTICS FALSE +# if !defined(CH_DBG_STATISTICS) +# define CH_DBG_STATISTICS FALSE +# endif /** * @brief Debug option, system state check. @@ -328,7 +490,9 @@ * * @note The default is @p FALSE. */ -# define CH_DBG_SYSTEM_STATE_CHECK FALSE +# if !defined(CH_DBG_SYSTEM_STATE_CHECK) +# define CH_DBG_SYSTEM_STATE_CHECK FALSE +# endif /** * @brief Debug option, parameters checks. @@ -337,7 +501,9 @@ * * @note The default is @p FALSE. */ -# define CH_DBG_ENABLE_CHECKS FALSE +# if !defined(CH_DBG_ENABLE_CHECKS) +# define CH_DBG_ENABLE_CHECKS FALSE +# endif /** * @brief Debug option, consistency checks. @@ -347,7 +513,9 @@ * * @note The default is @p FALSE. */ -# define CH_DBG_ENABLE_ASSERTS FALSE +# if !defined(CH_DBG_ENABLE_ASSERTS) +# define CH_DBG_ENABLE_ASSERTS FALSE +# endif /** * @brief Debug option, trace buffer. @@ -355,14 +523,18 @@ * * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. */ -# define CH_DBG_TRACE_MASK 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. */ -# define CH_DBG_TRACE_BUFFER_SIZE 128 +# if !defined(CH_DBG_TRACE_BUFFER_SIZE) +# define CH_DBG_TRACE_BUFFER_SIZE 128 +# endif /** * @brief Debug option, stack checks. @@ -374,7 +546,9 @@ * @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 TRUE +# if !defined(CH_DBG_ENABLE_STACK_CHECK) +# define CH_DBG_ENABLE_STACK_CHECK TRUE +# endif /** * @brief Debug option, stacks initialization. @@ -384,7 +558,9 @@ * * @note The default is @p FALSE. */ -# define CH_DBG_FILL_THREADS FALSE +# if !defined(CH_DBG_FILL_THREADS) +# define CH_DBG_FILL_THREADS FALSE +# endif /** * @brief Debug option, threads profiling. @@ -395,7 +571,9 @@ * @note This debug option is not currently compatible with the * tickless mode. */ -# define CH_DBG_THREADS_PROFILING FALSE +# if !defined(CH_DBG_THREADS_PROFILING) +# define CH_DBG_THREADS_PROFILING FALSE +# endif /** @} */ @@ -407,6 +585,21 @@ /*===========================================================================*/ /** + * @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. */ @@ -414,9 +607,9 @@ /** * @brief Threads initialization hook. - * @details User initialization code added to the @p chThdInit() API. + * @details User initialization code added to the @p _thread_init() function. * - * @note It is invoked from within @p chThdInit() and implicitly from all + * @note It is invoked from within @p _thread_init() and implicitly from all * the threads creation APIs. */ # define CH_CFG_THREAD_INIT_HOOK(tp) \ diff --git a/quantum/stm32/halconf.h b/quantum/stm32/halconf.h index 72e011d3dc..106f0f5755 100644 --- a/quantum/stm32/halconf.h +++ b/quantum/stm32/halconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + 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. @@ -28,6 +28,9 @@ #ifndef HALCONF_H # define HALCONF_H +# define _CHIBIOS_HAL_CONF_ +# define _CHIBIOS_HAL_CONF_VER_7_0_ + # include "mcuconf.h" /** @@ -52,17 +55,17 @@ # endif /** - * @brief Enables the DAC subsystem. + * @brief Enables the cryptographic subsystem. */ -# if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -# define HAL_USE_DAC TRUE +# if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +# define HAL_USE_CRY FALSE # endif /** - * @brief Enables the EXT subsystem. + * @brief Enables the DAC subsystem. */ -# if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) -# define HAL_USE_EXT FALSE +# if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +# define HAL_USE_DAC TRUE # endif /** @@ -115,13 +118,6 @@ # endif /** - * @brief Enables the QSPI subsystem. - */ -# if !defined(HAL_USE_QSPI) || defined(__DOXYGEN__) -# define HAL_USE_QSPI FALSE -# endif - -/** * @brief Enables the RTC subsystem. */ # if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) @@ -150,6 +146,13 @@ # endif |