From d8af50ca0d6b3352368f84d5cb93c5b66c52bdf0 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Mon, 21 Jan 2019 20:03:19 +0000 Subject: Fixed flash state machine, removed EXT remains. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12572 110e8d01-0319-4d1e-a829-52ad28d1bb01 --- os/hal/dox/hal_flash.dox | 30 ++++++ os/hal/dox/hal_norflash.dox | 28 +++--- os/hal/hal.mk | 4 - os/hal/include/hal.h | 1 - os/hal/include/hal_ext.h | 151 ------------------------------ os/hal/src/hal.c | 3 - os/hal/src/hal_ext.c | 206 ----------------------------------------- os/hal/templates/hal_ext_lld.c | 147 ----------------------------- os/hal/templates/hal_ext_lld.h | 150 ------------------------------ os/hal/templates/platform.mk | 4 - 10 files changed, 42 insertions(+), 682 deletions(-) delete mode 100644 os/hal/include/hal_ext.h delete mode 100644 os/hal/src/hal_ext.c delete mode 100644 os/hal/templates/hal_ext_lld.c delete mode 100644 os/hal/templates/hal_ext_lld.h (limited to 'os/hal') diff --git a/os/hal/dox/hal_flash.dox b/os/hal/dox/hal_flash.dox index 4cf395292..8be3efea8 100644 --- a/os/hal/dox/hal_flash.dox +++ b/os/hal/dox/hal_flash.dox @@ -18,5 +18,35 @@ * @defgroup HAL_FLASH Generic NOR Flash Interface * @brief HAL Generic NOR Flash Driver Interface. * + * @section flash_1 Driver State Machine + * The flash driver implements a state machine internally, not all the driver + * functionalities can be used in any moment, any transition not explicitly + * shown in the following diagram has to be considered an error and shall + * be captured by an assertion (if enabled). + * @dot + digraph example { + rankdir="LR"; + node [shape=circle, fontname=Helvetica, fontsize=8, fixedsize="true", width="0.9", height="0.9"]; + edge [fontname=Helvetica, fontsize=8]; + stop [label="FLS_STOP\nLow Power"]; + uninit [label="FLS_UNINIT", style="bold"]; + ready [label="FLS_READY\nClock Enabled"]; + read [label="FLS_READ\nReading"]; + pgm [label="FLS_PGM\nProgramming"]; + erase [label="FLS_ERASE\nErasing"]; + uninit -> stop [label=" xxxInit()", constraint=false]; + stop -> stop [label=" xxxStop()"]; + stop -> ready [label=" xxxStart()"]; + ready -> stop [label=" xStop()"]; + ready -> read [label=" flashRead()\nflashVerifyErase()"]; + read -> ready [label=" return"]; + ready -> pgm [label=" flashProgram()"]; + pgm -> ready [label=" return"]; + ready -> erase [label=" \n\nflashEraseAll()\nflashEraseSector()"]; + erase -> ready [label=" flashQueryErase()\nFLASH_NO_ERROR\nFLASH_ERROR_*"]; + erase -> erase [label=" flashQueryErase()\nflashProgram()\nflashRead()\nFLASH_BUSY_ERASING"]; + } + * @enddot + * * @ingroup HAL_ABSTRACT_PERIPHERALS */ diff --git a/os/hal/dox/hal_norflash.dox b/os/hal/dox/hal_norflash.dox index 2196363bd..24f30d9e4 100644 --- a/os/hal/dox/hal_norflash.dox +++ b/os/hal/dox/hal_norflash.dox @@ -20,7 +20,7 @@ * @details This module implements a generic driver for serial NOR Flash * devices. * - * @section flash_1 Driver State Machine + * @section snorflash_1 Driver State Machine * The flash driver implements a state machine internally, not all the driver * functionalities can be used in any moment, any transition not explicitly * shown in the following diagram has to be considered an error and shall @@ -34,23 +34,19 @@ uninit [label="FLS_UNINIT", style="bold"]; ready [label="FLS_READY\nClock Enabled"]; read [label="FLS_READ\nReading"]; - program [label="FLS_PGM\nProgramming"]; - erasea [label="FLS_ERASEA\nErasing All"]; - erases [label="FLS_ERASES\nErasing Sector"]; - uninit -> stop [label=" flashInit()", constraint=false]; - stop -> stop [label=" flashStop()"]; - stop -> ready [label=" flashStart()"]; - ready -> stop [label=" flashStop()"]; + pgm [label="FLS_PGM\nProgramming"]; + erase [label="FLS_ERASE\nErasing"]; + uninit -> stop [label=" snorInit()", constraint=false]; + stop -> stop [label=" snorStop()"]; + stop -> ready [label=" snorStart()"]; + ready -> stop [label=" snorStop()"]; ready -> read [label=" flashRead()\nflashVerifyErase()"]; read -> ready [label=" return"]; - ready -> program [label=" flashProgram()"]; - program -> ready [label=" return"]; - ready -> erasea [label=" flashEraseAll)"]; - erasea -> ready [label=" flashQueryErase()\nFLASH_NO_ERROR\nFLASH_ERROR_*"]; - erasea -> erasea [label=" flashQueryErase()\nflashProgram()\nflashRead()\nFLASH_BUSY_ERASE"]; - ready -> erases [label=" flashEraseSector()"]; - erases -> ready [label=" flashQueryErase()\nFLASH_NO_ERROR\nFLASH_ERROR_*"]; - erases -> erases [label=" flashQueryErase()\nflashProgram()\nflashRead()\nFLASH_BUSY_ERASE"]; + ready -> pgm [label=" flashProgram()"]; + pgm -> ready [label=" return"]; + ready -> erase [label=" \n\nflashEraseAll()\nflashEraseSector()"]; + erase -> ready [label=" flashQueryErase()\nFLASH_NO_ERROR\nFLASH_ERROR_*"]; + erase -> erase [label=" flashQueryErase()\nflashProgram()\nflashRead()\nFLASH_BUSY_ERASING"]; } * @enddot * diff --git a/os/hal/hal.mk b/os/hal/hal.mk index 7d7db63aa..8a44fbcde 100644 --- a/os/hal/hal.mk +++ b/os/hal/hal.mk @@ -30,9 +30,6 @@ endif ifneq ($(findstring HAL_USE_DAC TRUE,$(HALCONF)),) HALSRC += $(CHIBIOS)/os/hal/src/hal_dac.c endif -ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),) -HALSRC += $(CHIBIOS)/os/hal/src/hal_ext.c -endif ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),) HALSRC += $(CHIBIOS)/os/hal/src/hal_gpt.c endif @@ -99,7 +96,6 @@ HALSRC = $(CHIBIOS)/os/hal/src/hal.c \ $(CHIBIOS)/os/hal/src/hal_can.c \ $(CHIBIOS)/os/hal/src/hal_crypto.c \ $(CHIBIOS)/os/hal/src/hal_dac.c \ - $(CHIBIOS)/os/hal/src/hal_ext.c \ $(CHIBIOS)/os/hal/src/hal_gpt.c \ $(CHIBIOS)/os/hal/src/hal_i2c.c \ $(CHIBIOS)/os/hal/src/hal_i2s.c \ diff --git a/os/hal/include/hal.h b/os/hal/include/hal.h index 429b7d97d..5b9f7e889 100644 --- a/os/hal/include/hal.h +++ b/os/hal/include/hal.h @@ -140,7 +140,6 @@ #include "hal_can.h" #include "hal_crypto.h" #include "hal_dac.h" -#include "hal_ext.h" #include "hal_gpt.h" #include "hal_i2c.h" #include "hal_i2s.h" diff --git a/os/hal/include/hal_ext.h b/os/hal/include/hal_ext.h deleted file mode 100644 index 2c0b0d062..000000000 --- a/os/hal/include/hal_ext.h +++ /dev/null @@ -1,151 +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 hal_ext.h - * @brief EXT Driver macros and structures. - * - * @addtogroup EXT - * @{ - */ - -#ifndef HAL_EXT_H -#define HAL_EXT_H - -#if (HAL_USE_EXT == TRUE) || defined(__DOXYGEN__) - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/** - * @name EXT channel modes - * @{ - */ -#define EXT_CH_MODE_EDGES_MASK 3U /**< @brief Mask of edges field. */ -#define EXT_CH_MODE_DISABLED 0U /**< @brief Channel disabled. */ -#define EXT_CH_MODE_RISING_EDGE 1U /**< @brief Rising edge callback. */ -#define EXT_CH_MODE_FALLING_EDGE 2U /**< @brief Falling edge callback. */ -#define EXT_CH_MODE_BOTH_EDGES 3U /**< @brief Both edges callback. */ -#define EXT_CH_MODE_LOW_LEVEL 5U /**< @brief low level callback. */ - -#define EXT_CH_MODE_AUTOSTART 4U /**< @brief Channel started - automatically on driver start. */ -/** @} */ - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief Driver state machine possible states. - */ -typedef enum { - EXT_UNINIT = 0, /**< Not initialized. */ - EXT_STOP = 1, /**< Stopped. */ - EXT_ACTIVE = 2 /**< Active. */ -} extstate_t; - -/** - * @brief Type of a structure representing a EXT driver. - */ -typedef struct EXTDriver EXTDriver; - -#include "hal_ext_lld.h" - -/*===========================================================================*/ -/* Driver macros. */ -/*===========================================================================*/ - -/** - * @name Macro Functions - * @{ - */ -/** - * @brief Enables an EXT channel. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be enabled - * - * @iclass - */ -#define extChannelEnableI(extp, channel) ext_lld_channel_enable(extp, channel) - -/** - * @brief Disables an EXT channel. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be disabled - * - * @iclass - */ -#define extChannelDisableI(extp, channel) ext_lld_channel_disable(extp, channel) - -/** - * @brief Changes the operation mode of a channel. - * @note This function attempts to write over the current configuration - * structure that must have been not declared constant. This - * violates the @p const qualifier in @p extStart() but it is - * intentional. This function cannot be used if the configuration - * structure is declared @p const. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be changed - * @param[in] extcp new configuration for the channel - * - * @api - */ -#define extSetChannelMode(extp, channel, extcp) { \ - osalSysLock(); \ - extSetChannelModeI(extp, channel, extcp); \ - osalSysUnlock(); \ -} - -/** @} */ - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void extInit(void); - void extObjectInit(EXTDriver *extp); - void extStart(EXTDriver *extp, const EXTConfig *config); - void extStop(EXTDriver *extp); - void extChannelEnable(EXTDriver *extp, expchannel_t channel); - void extChannelDisable(EXTDriver *extp, expchannel_t channel); - void extSetChannelModeI(EXTDriver *extp, - expchannel_t channel, - const EXTChannelConfig *extcp); -#ifdef __cplusplus -} -#endif - -#endif /* HAL_USE_EXT == TRUE */ - -#endif /* HAL_EXT_H */ - -/** @} */ diff --git a/os/hal/src/hal.c b/os/hal/src/hal.c index 604303725..8429285cd 100644 --- a/os/hal/src/hal.c +++ b/os/hal/src/hal.c @@ -80,9 +80,6 @@ void halInit(void) { #if (HAL_USE_DAC == TRUE) || defined(__DOXYGEN__) dacInit(); #endif -#if (HAL_USE_EXT == TRUE) || defined(__DOXYGEN__) - extInit(); -#endif #if (HAL_USE_GPT == TRUE) || defined(__DOXYGEN__) gptInit(); #endif diff --git a/os/hal/src/hal_ext.c b/os/hal/src/hal_ext.c deleted file mode 100644 index 0ea5addf1..000000000 --- a/os/hal/src/hal_ext.c +++ /dev/null @@ -1,206 +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 hal_ext.c - * @brief EXT Driver code. - * - * @addtogroup EXT - * @{ - */ - -#include "hal.h" - -#if (HAL_USE_EXT == TRUE) || defined(__DOXYGEN__) - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local variables and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief EXT Driver initialization. - * @note This function is implicitly invoked by @p halInit(), there is - * no need to explicitly initialize the driver. - * - * @init - */ -void extInit(void) { - - ext_lld_init(); -} - -/** - * @brief Initializes the standard part of a @p EXTDriver structure. - * - * @param[out] extp pointer to the @p EXTDriver object - * - * @init - */ -void extObjectInit(EXTDriver *extp) { - - extp->state = EXT_STOP; - extp->config = NULL; -} - -/** - * @brief Configures and activates the EXT peripheral. - * @post After activation all EXT channels are in the disabled state, - * use @p extChannelEnable() in order to activate them. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] config pointer to the @p EXTConfig object - * - * @api - */ -void extStart(EXTDriver *extp, const EXTConfig *config) { - - osalDbgCheck((extp != NULL) && (config != NULL)); - - osalSysLock(); - osalDbgAssert((extp->state == EXT_STOP) || (extp->state == EXT_ACTIVE), - "invalid state"); - extp->config = config; - ext_lld_start(extp); - extp->state = EXT_ACTIVE; - osalSysUnlock(); -} - -/** - * @brief Deactivates the EXT peripheral. - * - * @param[in] extp pointer to the @p EXTDriver object - * - * @api - */ -void extStop(EXTDriver *extp) { - - osalDbgCheck(extp != NULL); - - osalSysLock(); - - osalDbgAssert((extp->state == EXT_STOP) || (extp->state == EXT_ACTIVE), - "invalid state"); - - ext_lld_stop(extp); - extp->config = NULL; - extp->state = EXT_STOP; - - osalSysUnlock(); -} - -/** - * @brief Enables an EXT channel. - * @pre The channel must not be in @p EXT_CH_MODE_DISABLED mode. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be enabled - * - * @api - */ -void extChannelEnable(EXTDriver *extp, expchannel_t channel) { - - osalDbgCheck((extp != NULL) && (channel < (expchannel_t)EXT_MAX_CHANNELS)); - - osalSysLock(); - osalDbgAssert((extp->state == EXT_ACTIVE) && - ((extp->config->channels[channel].mode & - EXT_CH_MODE_EDGES_MASK) != EXT_CH_MODE_DISABLED), - "invalid state"); - extChannelEnableI(extp, channel); - osalSysUnlock(); -} - -/** - * @brief Disables an EXT channel. - * @pre The channel must not be in @p EXT_CH_MODE_DISABLED mode. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be disabled - * - * @api - */ -void extChannelDisable(EXTDriver *extp, expchannel_t channel) { - - osalDbgCheck((extp != NULL) && (channel < (expchannel_t)EXT_MAX_CHANNELS)); - - osalSysLock(); - osalDbgAssert((extp->state == EXT_ACTIVE) && - ((extp->config->channels[channel].mode & - EXT_CH_MODE_EDGES_MASK) != EXT_CH_MODE_DISABLED), - "invalid state"); - extChannelDisableI(extp, channel); - osalSysUnlock(); -} - -/** - * @brief Changes the operation mode of a channel. - * @note This function attempts to write over the current configuration - * structure that must have been not declared constant. This - * violates the @p const qualifier in @p extStart() but it is - * intentional. - * @note This function cannot be used if the configuration structure is - * declared @p const. - * @note The effect of this function on constant configuration structures - * is not defined. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be changed - * @param[in] extcp new configuration for the channel - * - * @iclass - */ -void extSetChannelModeI(EXTDriver *extp, - expchannel_t channel, - const EXTChannelConfig *extcp) { - EXTChannelConfig *oldcp; - - osalDbgCheck((extp != NULL) && - (channel < (expchannel_t)EXT_MAX_CHANNELS) && - (extcp != NULL)); - - osalDbgAssert(extp->state == EXT_ACTIVE, "invalid state"); - - /* Note that here the access is enforced as non-const, known access - violation.*/ - /*lint -save -e9005 [11.8] Known issue, the driver needs rework here.*/ - oldcp = (EXTChannelConfig *)&extp->config->channels[channel]; - /*lint -restore*/ - - /* Overwriting the old channels configuration then the channel is - reconfigured by the low level driver.*/ - *oldcp = *extcp; - ext_lld_channel_enable(extp, channel); -} - -#endif /* HAL_USE_EXT == TRUE */ - -/** @} */ diff --git a/os/hal/templates/hal_ext_lld.c b/os/hal/templates/hal_ext_lld.c deleted file mode 100644 index bfe203eb5..000000000 --- a/os/hal/templates/hal_ext_lld.c +++ /dev/null @@ -1,147 +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 hal_ext_lld.c - * @brief PLATFORM EXT subsystem low level driver source. - * - * @addtogroup EXT - * @{ - */ - -#include "hal.h" - -#if (HAL_USE_EXT == TRUE) || defined(__DOXYGEN__) - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported variables. */ -/*===========================================================================*/ - -/** - * @brief EXT1 driver identifier. - */ -#if (PLATFORM_EXT_USE_EXT1 == TRUE) || defined(__DOXYGEN__) -EXTDriver EXTD1; -#endif - -/*===========================================================================*/ -/* Driver local variables and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Low level EXT driver initialization. - * - * @notapi - */ -void ext_lld_init(void) { - -#if PLATFORM_EXT_USE_EXT1 == TRUE - /* Driver initialization.*/ - extObjectInit(&EXTD1); -#endif -} - -/** - * @brief Configures and activates the EXT peripheral. - * - * @param[in] extp pointer to the @p EXTDriver object - * - * @notapi - */ -void ext_lld_start(EXTDriver *extp) { - - if (extp->state == EXT_STOP) { - /* Enables the peripheral.*/ -#if PLATFORM_EXT_USE_EXT1 == TRUE - if (&EXTD1 == extp) { - - } -#endif - } - /* Configures the peripheral.*/ - -} - -/** - * @brief Deactivates the EXT peripheral. - * - * @param[in] extp pointer to the @p EXTDriver object - * - * @notapi - */ -void ext_lld_stop(EXTDriver *extp) { - - if (extp->state == EXT_ACTIVE) { - /* Resets the peripheral.*/ - - /* Disables the peripheral.*/ -#if PLATFORM_EXT_USE_EXT1 == TRUE - if (&EXTD1 == extp) { - - } -#endif - } -} - -/** - * @brief Enables an EXT channel. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be enabled - * - * @notapi - */ -void ext_lld_channel_enable(EXTDriver *extp, expchannel_t channel) { - - (void)extp; - (void)channel; - -} - -/** - * @brief Disables an EXT channel. - * - * @param[in] extp pointer to the @p EXTDriver object - * @param[in] channel channel to be disabled - * - * @notapi - */ -void ext_lld_channel_disable(EXTDriver *extp, expchannel_t channel) { - - (void)extp; - (void)channel; - -} - -#endif /* HAL_USE_EXT == TRUE */ - -/** @} */ diff --git a/os/hal/templates/hal_ext_lld.h b/os/hal/templates/hal_ext_lld.h deleted file mode 100644 index 7e5385b89..000000000 --- a/os/hal/templates/hal_ext_lld.h +++ /dev/null @@ -1,150 +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 hal_ext_lld.h - * @brief PLATFORM EXT subsystem low level driver header. - * - * @addtogroup EXT - * @{ - */ - -#ifndef HAL_EXT_LLD_H -#define HAL_EXT_LLD_H - -#if (HAL_USE_EXT == TRUE) || defined(__DOXYGEN__) - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/** - * @brief Available number of EXT channels. - */ -#define EXT_MAX_CHANNELS 20 - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/** - * @name PLATFORM configuration options - * @{ - */ -/** - * @brief EXT driver enable switch. - * @details If set to @p TRUE the support for EXT1 is included. - * @note The default is @p FALSE. - */ -#if !defined(PLATFORM_EXT_USE_EXT1) || defined(__DOXYGEN__) -#define PLATFORM_EXT_USE_EXT1 FALSE -#endif -/** @} */ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief EXT channel identifier. - */ -typedef uint32_t expchannel_t; - -/** - * @brief Type of an EXT generic notification callback. - * - * @param[in] extp pointer to the @p EXPDriver object triggering the - * callback - */ -typedef void (*extcallback_t)(EXTDriver *extp, expchannel_t channel); - -/** - * @brief Channel configuration structure. - */ -typedef struct { - /** - * @brief Channel mode. - */ - uint32_t mode; - /** - * @brief Channel callback. - * @details In the STM32 implementation a @p NULL callback pointer is - * valid and configures the channel as an event sources instead - * of an interrupt source. - */ - extcallback_t cb; -} EXTChannelConfig; - -/** - * @brief Driver configuration structure. - * @note It could be empty on some architectures. - */ -typedef struct { - /** - * @brief Channel configurations. - */ - EXTChannelConfig channels[EXT_MAX_CHANNELS]; - /* End of the mandatory fields.*/ -} EXTConfig; - -/** - * @brief Structure representing an EXT driver. - */ -struct EXTDriver { - /** - * @brief Driver state. - */ - extstate_t state; - /** - * @brief Current configuration data. - */ - const EXTConfig *config; - /* End of the mandatory fields.*/ -}; - -/*===========================================================================*/ -/* Driver macros. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#if (PLATFORM_EXT_USE_EXT1 == TRUE) && !defined(__DOXYGEN__) -extern EXTDriver EXTD1; -#endif - -#ifdef __cplusplus -extern "C" { -#endif - void ext_lld_init(void); - void ext_lld_start(EXTDriver *extp); - void ext_lld_stop(EXTDriver *extp); - void ext_lld_channel_enable(EXTDriver *extp, expchannel_t channel); - void ext_lld_channel_disable(EXTDriver *extp, expchannel_t channel); -#ifdef __cplusplus -} -#endif - -#endif /* HAL_USE_EXT == TRUE */ - -#endif /* HAL_EXT_LLD_H */ - -/** @} */ diff --git a/os/hal/templates/platform.mk b/os/hal/templates/platform.mk index 3371bf00e..2c4542d6b 100644 --- a/os/hal/templates/platform.mk +++ b/os/hal/templates/platform.mk @@ -22,9 +22,6 @@ endif ifneq ($(findstring HAL_USE_DAC TRUE,$(HALCONF)),) PLATFORMSRC += ${CHIBIOS}/os/hal/templates/hal_dac_lld.c endif -ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),) -PLATFORMSRC += ${CHIBIOS}/os/hal/templates/hal_ext_lld.c -endif ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),) PLATFORMSRC += ${CHIBIOS}/os/hal/templates/hal_gpt_lld.c endif @@ -82,7 +79,6 @@ PLATFORMSRC = ${CHIBIOS}/os/hal/templates/hal_lld.c \ ${CHIBIOS}/os/hal/templates/hal_can_lld.c \ ${CHIBIOS}/os/hal/templates/hal_crypto_lld.c \ ${CHIBIOS}/os/hal/templates/hal_dac_lld.c \ - ${CHIBIOS}/os/hal/templates/hal_ext_lld.c \ ${CHIBIOS}/os/hal/templates/hal_gpt_lld.c \ ${CHIBIOS}/os/hal/templates/hal_i2c_lld.c \ ${CHIBIOS}/os/hal/templates/hal_i2s_lld.c \ -- cgit v1.2.3