diff options
| author | Giovanni Di Sirio <gdisirio@gmail.com> | 2019-01-21 20:03:19 +0000 | 
|---|---|---|
| committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2019-01-21 20:03:19 +0000 | 
| commit | d8af50ca0d6b3352368f84d5cb93c5b66c52bdf0 (patch) | |
| tree | 4174076a461c8a095e89f4f5189e368168189a26 /os/hal | |
| parent | a3e9966359c432405c8ab1eb49a27133e5271ba2 (diff) | |
| download | ChibiOS-d8af50ca0d6b3352368f84d5cb93c5b66c52bdf0.tar.gz ChibiOS-d8af50ca0d6b3352368f84d5cb93c5b66c52bdf0.tar.bz2 ChibiOS-d8af50ca0d6b3352368f84d5cb93c5b66c52bdf0.zip  | |
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
Diffstat (limited to 'os/hal')
| -rw-r--r-- | os/hal/dox/hal_flash.dox | 30 | ||||
| -rw-r--r-- | os/hal/dox/hal_norflash.dox | 28 | ||||
| -rw-r--r-- | os/hal/hal.mk | 4 | ||||
| -rw-r--r-- | os/hal/include/hal.h | 1 | ||||
| -rw-r--r-- | os/hal/include/hal_ext.h | 151 | ||||
| -rw-r--r-- | os/hal/src/hal.c | 3 | ||||
| -rw-r--r-- | os/hal/src/hal_ext.c | 206 | ||||
| -rw-r--r-- | os/hal/templates/hal_ext_lld.c | 147 | ||||
| -rw-r--r-- | os/hal/templates/hal_ext_lld.h | 150 | ||||
| -rw-r--r-- | os/hal/templates/platform.mk | 4 | 
10 files changed, 42 insertions, 682 deletions
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 \
  | 
