From 87417b01023059aa833f376d9bd7aea5174a5f1b Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 29 Nov 2009 08:48:27 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1350 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/io/templates/adc_lld.c | 101 ------------ os/io/templates/adc_lld.h | 141 ----------------- os/io/templates/can_lld.c | 159 ------------------- os/io/templates/can_lld.h | 154 ------------------ os/io/templates/hal_lld.c | 57 ------- os/io/templates/hal_lld.h | 56 ------- os/io/templates/halconf.h | 88 ---------- os/io/templates/mac_lld.c | 153 ------------------ os/io/templates/mac_lld.h | 121 -------------- os/io/templates/meta/driver.c | 87 ---------- os/io/templates/meta/driver.h | 54 ------- os/io/templates/meta/driver_lld.c | 79 --------- os/io/templates/meta/driver_lld.h | 81 ---------- os/io/templates/mii_lld.c | 70 -------- os/io/templates/mii_lld.h | 65 -------- os/io/templates/pal_lld.c | 54 ------- os/io/templates/pal_lld.h | 326 -------------------------------------- os/io/templates/serial_lld.c | 91 ----------- os/io/templates/serial_lld.h | 113 ------------- os/io/templates/spi_lld.c | 160 ------------------- os/io/templates/spi_lld.h | 108 ------------- 21 files changed, 2318 deletions(-) delete mode 100644 os/io/templates/adc_lld.c delete mode 100644 os/io/templates/adc_lld.h delete mode 100644 os/io/templates/can_lld.c delete mode 100644 os/io/templates/can_lld.h delete mode 100644 os/io/templates/hal_lld.c delete mode 100644 os/io/templates/hal_lld.h delete mode 100644 os/io/templates/halconf.h delete mode 100644 os/io/templates/mac_lld.c delete mode 100644 os/io/templates/mac_lld.h delete mode 100644 os/io/templates/meta/driver.c delete mode 100644 os/io/templates/meta/driver.h delete mode 100644 os/io/templates/meta/driver_lld.c delete mode 100644 os/io/templates/meta/driver_lld.h delete mode 100644 os/io/templates/mii_lld.c delete mode 100644 os/io/templates/mii_lld.h delete mode 100644 os/io/templates/pal_lld.c delete mode 100644 os/io/templates/pal_lld.h delete mode 100644 os/io/templates/serial_lld.c delete mode 100644 os/io/templates/serial_lld.h delete mode 100644 os/io/templates/spi_lld.c delete mode 100644 os/io/templates/spi_lld.h (limited to 'os/io/templates') diff --git a/os/io/templates/adc_lld.c b/os/io/templates/adc_lld.c deleted file mode 100644 index 9aabc4bcd..000000000 --- a/os/io/templates/adc_lld.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/adc_lld.c - * @brief ADC Driver subsystem low level driver source template - * @addtogroup ADC_LLD - * @{ - */ - -#include "ch.h" -#include "hal.h" - -#if CH_HAL_USE_ADC - -/*===========================================================================*/ -/* Low Level Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Low level ADC driver initialization. - */ -void adc_lld_init(void) { - -} - -/** - * @brief Configures and activates the ADC peripheral. - * - * @param[in] adcp pointer to the @p ADCDriver object - */ -void adc_lld_start(ADCDriver *adcp) { - - if (adcp->adc_state == ADC_STOP) { - /* Clock activation.*/ - } - /* Configuration.*/ -} - -/** - * @brief Deactivates the ADC peripheral. - * - * @param[in] adcp pointer to the @p ADCDriver object - */ -void adc_lld_stop(ADCDriver *adcp) { - -} - -/** - * @brief Starts an ADC conversion. - * - * @param[in] adcp pointer to the @p ADCDriver object - */ -void adc_lld_start_conversion(ADCDriver *adcp) { - -} - -/** - * @brief Stops an ongoing conversion. - * - * @param[in] adcp pointer to the @p ADCDriver object - */ -void adc_lld_stop_conversion(ADCDriver *adcp) { - -} - -#endif /* CH_HAL_USE_ADC */ - -/** @} */ diff --git a/os/io/templates/adc_lld.h b/os/io/templates/adc_lld.h deleted file mode 100644 index ca14577f0..000000000 --- a/os/io/templates/adc_lld.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/adc_lld.h - * @brief ADC Driver subsystem low level driver header template - * @addtogroup ADC_LLD - * @{ - */ - -#ifndef _ADC_LLD_H_ -#define _ADC_LLD_H_ - -#if CH_HAL_USE_ADC - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief ADC sample data type. - */ -typedef uint16_t adcsample_t; - -/** - * @brief Channels number in a conversion group. - */ -typedef uint16_t adc_channels_num_t; - -/** - * @brief ADC notification callback type. - * @param[in] buffer pointer to the most recent samples data - * @param[in] n number of buffer rows available starting from @p buffer - */ -typedef void (*adccallback_t)(adcsample_t *buffer, size_t n); - -/** - * @brief Conversion group configuration structure. - * @details This implementation-dependent structure describes a conversion - * operation. - */ -typedef struct { - /** - * @brief Enables the circular buffer mode for the group. - */ - bool_t acg_circular; - /** - * @brief Number of the analog channels belonging to the conversion group. - */ - adc_channels_num_t acg_num_channels; - /* End of the mandatory fields.*/ -} ADCConversionGroup; - -/** - * @brief Driver configuration structure. - * @note It could be empty on some architectures. - */ -typedef struct { - -} ADCConfig; - -/** - * @brief Structure representing an ADC driver. - */ -typedef struct { - /** - * @brief Driver state. - */ - adcstate_t ad_state; - /** - * @brief Current configuration data. - */ - const ADCConfig *ad_config; - /** - * @brief Synchronization semaphore. - */ - Semaphore ad_sem; - /** - * @brief Current callback function or @p NULL. - */ - adccallback_t ad_callback; - /** - * @brief Current samples buffer pointer or @p NULL. - */ - adcsample_t *ad_samples; - /** - * @brief Current samples buffer depth or @p 0. - */ - size_t ad_depth; - /** - * @brief Current conversion group pointer or @p NULL. - */ - const ADCConversionGroup *ad_grpp; - /* End of the mandatory fields.*/ -} ADCDriver; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void adc_lld_init(void); - void adc_lld_start(ADCDriver *adcp); - void adc_lld_stop(ADCDriver *adcp); - void adc_lld_start_conversion(ADCDriver *adcp); - void adc_lld_stop_conversion(ADCDriver *adcp); -#ifdef __cplusplus -} -#endif - -#endif /* CH_HAL_USE_ADC */ - -#endif /* _ADC_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/can_lld.c b/os/io/templates/can_lld.c deleted file mode 100644 index 7c56acad1..000000000 --- a/os/io/templates/can_lld.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/can_lld.c - * @brief CAN Driver subsystem low level driver source template - * @addtogroup CAN_LLD - * @{ - */ - -#include "ch.h" -#include "hal.h" - -#if CH_HAL_USE_CAN - -/*===========================================================================*/ -/* Low Level Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Low level CAN driver initialization. - */ -void can_lld_init(void) { - -} - -/** - * @brief Configures and activates the CAN peripheral. - * - * @param[in] canp pointer to the @p CANDriver object - */ -void can_lld_start(CANDriver *canp) { - - if (canp->can_state == CAN_STOP) { - /* Clock activation.*/ - } - /* Configuration.*/ -} - -/** - * @brief Deactivates the CAN peripheral. - * - * @param[in] canp pointer to the @p CANDriver object - */ -void can_lld_stop(CANDriver *canp) { - -} - -/** - * @brief Determines whether a frame can be transmitted. - * - * @param[in] canp pointer to the @p CANDriver object - * - * @return The queue space availability. - * @retval FALSE no space in the transmit queue. - * @retval TRUE transmit slot available. - */ -bool_t can_lld_can_transmit(CANDriver *canp) { - - return FALSE; -} - -/** - * @brief Inserts a frame into the transmit queue. - * - * @param[in] canp pointer to the @p CANDriver object - * @param[in] cfp pointer to the CAN frame to be transmitted - * - * @return The operation status. - * @retval RDY_OK frame transmitted. - */ -msg_t can_lld_transmit(CANDriver *canp, const CANFrame *cfp) { - - return RDY_OK; -} - -/** - * @brief Determines whether a frame has been received. - * - * @param[in] canp pointer to the @p CANDriver object - * - * @return The queue space availability. - * @retval FALSE no space in the transmit queue. - * @retval TRUE transmit slot available. - */ -bool_t can_lld_can_receive(CANDriver *canp) { - - return FALSE; -} - -/** - * @brief Receives a frame from the input queue. - * - * @param[in] canp pointer to the @p CANDriver object - * @param[out] cfp pointer to the buffer where the CAN frame is copied - * - * @return The operation status. - * @retval RDY_OK frame received. - */ -msg_t can_lld_receive(CANDriver *canp, CANFrame *cfp) { - - return RDY_OK; -} - -#if CAN_USE_SLEEP_MODE || defined(__DOXYGEN__) -/** - * @brief Enters the sleep mode. - * - * @param[in] canp pointer to the @p CANDriver object - */ -void can_lld_sleep(CANDriver *canp) { - -} - -/** - * @brief Enforces leaving the sleep mode. - * - * @param[in] canp pointer to the @p CANDriver object - */ -void can_lld_wakeup(CANDriver *canp) { - -} -#endif /* CAN_USE_SLEEP_MODE */ - -#endif /* CH_HAL_USE_CAN */ - -/** @} */ diff --git a/os/io/templates/can_lld.h b/os/io/templates/can_lld.h deleted file mode 100644 index c899055c6..000000000 --- a/os/io/templates/can_lld.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/can_lld.h - * @brief CAN Driver subsystem low level driver header template - * @addtogroup CAN_LLD - * @{ - */ - -#ifndef _CAN_LLD_H_ -#define _CAN_LLD_H_ - -#if CH_HAL_USE_CAN - -/** - * @brief This switch defines whether the driver implementation supports - * a low power switch mode with automatic an wakeup feature. - */ -#define CAN_SUPPORTS_SLEEP TRUE - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - * @note This switch is enforced to @p FALSE if the driver implementation - * does not support the sleep mode. - */ -#if CAN_SUPPORTS_SLEEP || defined(__DOXYGEN__) -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif -#else /* !CAN_SUPPORTS_SLEEP */ -#define CAN_USE_SLEEP_MODE FALSE -#endif /* !CAN_SUPPORTS_SLEEP */ - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief CAN frame. - * @note Accessing the frame data as word16 or word32 is not portable because - * machine data endianness, it can be still useful for a quick filling. - */ -typedef struct { - uint8_t cf_DLC:4; /**< @brief Data length. */ - uint8_t cf_IDE:1; /**< @brief Identifier type. */ - uint8_t cf_RTR:1; /**< @brief Frame type. */ - uint32_t cf_id; /**< @brief Frame identifier. */ - union { - uint8_t cf_data8[8]; /**< @brief Frame data. */ - uint16_t cf_data16[4]; /**< @brief Frame data. */ - uint32_t cf_data32[2]; /**< @brief Frame data. */ - }; -} CANFrame; - -/** - * @brief Driver configuration structure. - * @note It could be empty on some architectures. - */ -typedef struct { -} CANConfig; - -/** - * @brief Structure representing an CAN driver. - */ -typedef struct { - /** - * @brief Driver state. - */ - canstate_t can_state; - /** - * @brief Current configuration data. - */ - const CANConfig *can_config; - /** - * @brief Transmission queue semaphore. - */ - Semaphore can_txsem; - /** - * @brief Receive queue semaphore. - */ - Semaphore can_rxsem; - /** - * @brief One or more frames become available. - */ - EventSource can_rxfull_event; - /** - * @brief One or more transmission slots become available. - */ - EventSource can_txempty_event; -#if CAN_USE_SLEEP_MODE || defined (__DOXYGEN__) - /** - * @brief Entering sleep state event. - */ - EventSource can_sleep_event; - /** - * @brief Exiting sleep state event. - */ - EventSource can_wakeup_event; -#endif /* CAN_USE_SLEEP_MODE */ - /* End of the mandatory fields.*/ -} CANDriver; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void can_lld_init(void); - void can_lld_start(CANDriver *canp); - void can_lld_stop(CANDriver *canp); - bool_t can_lld_can_transmit(CANDriver *canp); - msg_t can_lld_transmit(CANDriver *canp, const CANFrame *cfp); - bool_t can_lld_can_receive(CANDriver *canp); - msg_t can_lld_receive(CANDriver *canp, CANFrame *cfp); -#if CAN_USE_SLEEP_MODE - void can_lld_sleep(CANDriver *canp); - void can_lld_wakeup(CANDriver *canp); -#endif /* CAN_USE_SLEEP_MODE */ -#ifdef __cplusplus -} -#endif - -#endif /* CH_HAL_USE_CAN */ - -#endif /* _CAN_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/hal_lld.c b/os/io/templates/hal_lld.c deleted file mode 100644 index 0d2d46dcc..000000000 --- a/os/io/templates/hal_lld.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/hal_lld.c - * @brief HAL Driver subsystem low level driver source template - * @addtogroup HAL_LLD - * @{ - */ - -#include -#include - -/*===========================================================================*/ -/* Low Level Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Low level HAL driver initialization. - */ -void hal_lld_init(void) { - -} - -/** @} */ diff --git a/os/io/templates/hal_lld.h b/os/io/templates/hal_lld.h deleted file mode 100644 index b401e4217..000000000 --- a/os/io/templates/hal_lld.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/hal_lld.h - * @brief HAL subsystem low level driver header template - * @addtogroup HAL_LLD - * @{ - */ - -#ifndef _HAL_LLD_H_ -#define _HAL_LLD_H_ - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void hal_lld_init(void); -#ifdef __cplusplus -} -#endif - -#endif /* _HAL_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/halconf.h b/os/io/templates/halconf.h deleted file mode 100644 index f08ffcda5..000000000 --- a/os/io/templates/halconf.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef _HALCONF_H_ -#define _HALCONF_H_ - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(CH_HAL_USE_PAL) || defined(__DOXYGEN__) -#define CH_HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(CH_HAL_USE_ADC) || defined(__DOXYGEN__) -#define CH_HAL_USE_ADC TRUE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(CH_HAL_USE_CAN) || defined(__DOXYGEN__) -#define CH_HAL_USE_CAN TRUE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(CH_HAL_USE_MAC) || defined(__DOXYGEN__) -#define CH_HAL_USE_MAC TRUE -#endif - -/** - * @brief Enables the MII subsystem. - */ -#if !defined(CH_HAL_USE_MII) || defined(__DOXYGEN__) -#define CH_HAL_USE_MII TRUE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(CH_HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define CH_HAL_USE_SERIAL TRUE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(CH_HAL_USE_SPI) || defined(__DOXYGEN__) -#define CH_HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(CH_HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define CH_HAL_USE_MMC_SPI TRUE -#endif - -#endif /* _HALCONF_H_ */ - -/** @} */ diff --git a/os/io/templates/mac_lld.c b/os/io/templates/mac_lld.c deleted file mode 100644 index fa6ef7a9e..000000000 --- a/os/io/templates/mac_lld.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/mac_lld.c - * @brief MAC Driver subsystem low level driver source template - * @addtogroup MAC_LLD - * @{ - */ - -#include "ch.h" -#include "hal.h" - -#if CH_HAL_USE_MAC - -/** - * @brief Low level MAC initialization. - */ -void mac_lld_init(void) { - -} - -/** - * @brief Low level MAC address setup. - * - * @param[in] macp pointer to the @p MACDriver object - * @param[in] p pointer to a six bytes buffer containing the MAC address. If - * this parameter is set to @p NULL then a system default MAC is - * used. - */ -void mac_lld_set_address(MACDriver *macp, const uint8_t *p) { - -} - -/** - * @brief Returns a transmission descriptor. - * @details One of the available transmission descriptors is locked and - * returned. - * - * @param[in] macp pointer to the @p MACDriver object - * @param[out] tdp pointer to a @p MACTransmitDescriptor structure - * @return The operation status. - * @retval RDY_OK the descriptor was obtained. - * @retval RDY_TIMEOUT descriptor not available. - */ -msg_t max_lld_get_transmit_descriptor(MACDriver *macp, - MACTransmitDescriptor *tdp) { - - return RDY_OK; -} - -/** - * @brief Writes to a transmit descriptor's stream. - * - * @param[in] tdp pointer to a @p MACTransmitDescriptor structure - * @param[in] buf pointer to the buffer cointaining the data to be written - * @param[in] size number of bytes to be written - * @return The number of bytes written into the descriptor's stream, this - * value can be less than the amount specified in the parameter - * @p size if the maximum frame size is reached. - */ -size_t mac_lld_write_transmit_descriptor(MACTransmitDescriptor *tdp, - uint8_t *buf, - size_t size) { - - return 0; -} - -/** - * @brief Releases a transmit descriptor and starts the transmission of the - * enqueued data as a single frame. - * - * @param[in] tdp the pointer to the @p MACTransmitDescriptor structure - */ -void mac_lld_release_transmit_descriptor(MACTransmitDescriptor *tdp) { - -} - -/** - * @brief Returns a receive descriptor. - * - * @param[in] macp pointer to the @p MACDriver object - * @param[out] rdp pointer to a @p MACReceiveDescriptor structure - * @return The operation status. - * @retval RDY_OK the descriptor was obtained. - * @retval RDY_TIMEOUT descriptor not available. - */ -msg_t max_lld_get_receive_descriptor(MACDriver *macp, - MACReceiveDescriptor *rdp) { - - return RDY_OK; -} - -/** - * @brief Reads from a receive descriptor's stream. - * - * @param[in] rdp pointer to a @p MACReceiveDescriptor structure - * @param[in] buf pointer to the buffer that will receive the read data - * @param[in] size number of bytes to be read - * @return The number of bytes read from the descriptor's stream, this - * value can be less than the amount specified in the parameter - * @p size if there are no more bytes to read. - */ -size_t mac_lld_read_receive_descriptor(MACReceiveDescriptor *rdp, - uint8_t *buf, - size_t size) { - - return 0; -} - -/** - * @brief Releases a receive descriptor. - * @details The descriptor and its buffer are made available for more incoming - * frames. - * - * @param[in] rdp the pointer to the @p MACReceiveDescriptor structure - */ -void mac_lld_release_receive_descriptor(MACReceiveDescriptor *rdp) { - -} - -/** - * @brief Updates and returns the link status. - * - * @param[in] macp pointer to the @p MACDriver object - * @return The link status. - * @retval TRUE if the link is active. - * @retval FALSE if the link is down. - */ -bool_t mac_lld_poll_link_status(MACDriver *macp) { - - return FALSE; -} - -#endif /* CH_HAL_USE_MAC */ - -/** @} */ diff --git a/os/io/templates/mac_lld.h b/os/io/templates/mac_lld.h deleted file mode 100644 index 07a199f7e..000000000 --- a/os/io/templates/mac_lld.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/mac_lld.h - * @brief MAC Driver subsystem low level driver header template - * @addtogroup MAC_LLD - * @{ - */ - -#ifndef _MAC_LLD_H_ -#define _MAC_LLD_H_ - -#if CH_HAL_USE_MAC - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/** - * @brief Number of available transmit buffers. - */ -#if !defined(MAC_TRANSMIT_BUFFERS) || defined(__DOXYGEN__) -#define MAC_TRANSMIT_BUFFERS 2 -#endif - -/** - * @brief Number of available receive buffers. - */ -#if !defined(MAC_RECEIVE_BUFFERS) || defined(__DOXYGEN__) -#define MAC_RECEIVE_BUFFERS 2 -#endif - -/** - * @brief Maximum supported frame size. - */ -#if !defined(MAC_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define MAC_BUFFERS_SIZE 1518 -#endif - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief Structure representing a MAC driver. - */ -typedef struct { - Semaphore md_tdsem; /**< Transmit semaphore. */ - Semaphore md_rdsem; /**< Receive semaphore. */ -#if CH_USE_EVENTS - EventSource md_rdevent; /**< Receive event source. */ -#endif - /* End of the mandatory fields.*/ -} MACDriver; - -/** - * @brief Structure representing a transmit descriptor. - */ -typedef struct { - size_t td_offset; /**< Current write offset. */ - size_t td_size; /**< Available space size. */ - /* End of the mandatory fields.*/ -} MACTransmitDescriptor; - -/** - * @brief Structure representing a receive descriptor. - */ -typedef struct { - size_t rd_offset; /**< Current read offset. */ - size_t rd_size; /**< Available data size. */ - /* End of the mandatory fields.*/ -} MACReceiveDescriptor; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void mac_lld_init(void); - void mac_lld_set_address(MACDriver *macp, const uint8_t *p); - msg_t max_lld_get_transmit_descriptor(MACDriver *macp, - MACTransmitDescriptor *tdp); - size_t mac_lld_write_transmit_descriptor(MACTransmitDescriptor *tdp, - uint8_t *buf, - size_t size); - void mac_lld_release_transmit_descriptor(MACTransmitDescriptor *tdp); - msg_t max_lld_get_receive_descriptor(MACDriver *macp, - MACReceiveDescriptor *rdp); - size_t mac_lld_read_receive_descriptor(MACReceiveDescriptor *rdp, - uint8_t *buf, - size_t size); - void mac_lld_release_receive_descriptor(MACReceiveDescriptor *rdp); - bool_t mac_lld_poll_link_status(MACDriver *macp); -#ifdef __cplusplus -} -#endif - -#endif /* CH_HAL_USE_MAC */ - -#endif /* _MAC_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/meta/driver.c b/os/io/templates/meta/driver.c deleted file mode 100644 index 9bf785ed2..000000000 --- a/os/io/templates/meta/driver.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file XXX.c - * @brief XXX Driver code. - * @addtogroup XXX - * @{ - */ - -#include -#include - -/** - * @brief XXX Driver initialization. - */ -void xxxInit(void) { - - xxx_lld_init(); -} - -/** - * @brief Initializes the standard part of a @p XXXDriver structure. - * - * @param[in] xxxp pointer to the @p XXXDriver object - */ -void xxxObjectInit(XXXDriver *xxxp) { - - xxxp->xxx_state = XXX_STOP; - xxxp->xxx_config = NULL; -} - -/** - * @brief Configures and activates the XXX peripheral. - * - * @param[in] xxxp pointer to the @p XXXDriver object - * @param[in] config pointer to the @p XXXConfig object - */ -void xxxStart(XXXDriver *xxxp, const XXXConfig *config) { - - chDbgCheck((xxxp != NULL) && (config != NULL), "xxxStart"); - - chSysLock(); - chDbgAssert((xxxp->xxx_state == XXX_STOP) || (xxxp->xxx_state == XXX_READY), - "xxxStart(), #1", - "invalid state"); - xxxp->xxx_config = config; - xxx_lld_start(xxxp); - xxxp->xxx_state = XXX_READY; - chSysUnlock(); -} - -/** - * @brief Deactivates the XXX peripheral. - * - * @param[in] xxxp pointer to the @p XXXDriver object - */ -void xxxStop(XXXDriver *xxxp) { - - chDbgCheck(xxxp != NULL, "xxxStop"); - - chSysLock(); - chDbgAssert((xxxp->xxx_state == XXX_STOP) || (xxxp->xxx_state == XXX_READY), - "xxxStop(), #1", - "invalid state"); - xxx_lld_stop(xxxp); - xxxp->xxx_state = XXX_STOP; - chSysUnlock(); -} - -/** @} */ diff --git a/os/io/templates/meta/driver.h b/os/io/templates/meta/driver.h deleted file mode 100644 index 675bc6689..000000000 --- a/os/io/templates/meta/driver.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file xxx.h - * @brief XXX Driver macros and structures. - * @addtogroup XXX - * @{ - */ - -#ifndef _XXX_H_ -#define _XXX_H_ - -/** - * @brief Driver state machine possible states. - */ -typedef enum { - XXX_UNINIT = 0, /**< @brief Not initialized. */ - XXX_STOP = 1, /**< @brief Stopped. */ - XXX_READY = 2, /**< @brief Ready. */ -} xxxstate_t; - -#include "xxx_lld.h" - -#ifdef __cplusplus -extern "C" { -#endif - void xxxInit(void); - void xxxObjectInit(XXXDriver *xxxp); - void xxxStart(XXXDriver *xxxp, const XXXConfig *config); - void xxxStop(XXXDriver *xxxp); -#ifdef __cplusplus -} -#endif - -#endif /* _XXX_H_ */ - -/** @} */ diff --git a/os/io/templates/meta/driver_lld.c b/os/io/templates/meta/driver_lld.c deleted file mode 100644 index df91ed21b..000000000 --- a/os/io/templates/meta/driver_lld.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/xxx_lld.c - * @brief XXX Driver subsystem low level driver source template - * @addtogroup XXX_LLD - * @{ - */ - -#include -#include - -/*===========================================================================*/ -/* Low Level Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Low level XXX driver initialization. - */ -void xxx_lld_init(void) { - -} - -/** - * @brief Configures and activates the XXX peripheral. - * - * @param[in] xxxp pointer to the @p XXXDriver object - */ -void xxx_lld_start(XXXDriver *xxxp) { - - if (xxxp->xxx_state == XXX_STOP) { - /* Clock activation.*/ - } - /* Configuration.*/ -} - -/** - * @brief Deactivates the XXX peripheral. - * - * @param[in] xxxp pointer to the @p XXXDriver object - */ -void xxx_lld_stop(XXXDriver *xxxp) { - -} - -/** @} */ diff --git a/os/io/templates/meta/driver_lld.h b/os/io/templates/meta/driver_lld.h deleted file mode 100644 index 92194664e..000000000 --- a/os/io/templates/meta/driver_lld.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/xxx_lld.h - * @brief XXX Driver subsystem low level driver header template - * @addtogroup XXX_LLD - * @{ - */ - -#ifndef _XXX_LLD_H_ -#define _XXX_LLD_H_ - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief Driver configuration structure. - * @note It could be empty on some architectures. - */ -typedef struct { - -} XXXConfig; - -/** - * @brief Structure representing an XXX driver. - */ -typedef struct { - /** - * @brief Driver state. - */ - xxxstate_t xxx_state; - /** - * @brief Current configuration data. - */ - const XXXConfig *xxx_config; - /* End of the mandatory fields.*/ -} XXXDriver; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void xxx_lld_init(void); - void xxx_lld_start(XXXDriver *xxxp); - void xxx_lld_stop(XXXDriver *xxxp); -#ifdef __cplusplus -} -#endif - -#endif /* _XXX_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/mii_lld.c b/os/io/templates/mii_lld.c deleted file mode 100644 index 2381c4f1e..000000000 --- a/os/io/templates/mii_lld.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/mii_lld.c - * @brief MII Driver subsystem low level driver source template - * @addtogroup MII_LLD - * @{ - */ - -#include "ch.h" -#include "mac.h" -#include "mii.h" - -/** - * @brief Low level MII driver initialization. - */ -void mii_lld_init(void) { - -} - -/** - * Resets a PHY device. - * - * @param[in] macp pointer to the @p MACDriver object - */ -void mii_lld_reset(MACDriver *macp) { - -} - -/** - * @brief Reads a PHY register through the MII interface. - * - * @param[in] macp pointer to the @p MACDriver object - * @param addr the register address - * @return The register value. - */ -phyreg_t mii_lld_get(MACDriver *macp, phyaddr_t addr) { - - return 0; -} - -/** - * @brief Writes a PHY register through the MII interface. - * - * @param[in] macp pointer to the @p MACDriver object - * @param addr the register address - * @param value the new register value - */ -void mii_lld_put(MACDriver *macp, phyaddr_t addr, phyreg_t value) { - -} - -/** @} */ diff --git a/os/io/templates/mii_lld.h b/os/io/templates/mii_lld.h deleted file mode 100644 index 974588363..000000000 --- a/os/io/templates/mii_lld.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/mii_lld.h - * @brief MII Driver subsystem low level driver header template - * @addtogroup MII_LLD - * @{ - */ - -#ifndef _MII_LLD_H_ -#define _MII_LLD_H_ - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief Type of a PHY register value. - */ -typedef uint16_t phyreg_t; - -/** - * @brief Type of a PHY register address. - */ -typedef uint8_t phyaddr_t; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void mii_lld_init(void); - void mii_lld_reset(MACDriver *macp); - phyreg_t mii_lld_get(MACDriver *macp, phyaddr_t addr); - void mii_lld_put(MACDriver *macp, phyaddr_t addr, phyreg_t value); -#ifdef __cplusplus -} -#endif - -#endif /* _MII_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/pal_lld.c b/os/io/templates/pal_lld.c deleted file mode 100644 index 598832d09..000000000 --- a/os/io/templates/pal_lld.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/pal_lld.c - * @brief PAL subsystem low level driver template - * @addtogroup PAL_LLD - * @{ - */ - -#include "ch.h" -#include "hal.h" - -#if CH_HAL_USE_PAL - -/*===========================================================================*/ -/* Low Level Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -#endif /* CH_HAL_USE_PAL */ - -/** @} */ diff --git a/os/io/templates/pal_lld.h b/os/io/templates/pal_lld.h deleted file mode 100644 index a8caf089b..000000000 --- a/os/io/templates/pal_lld.h +++ /dev/null @@ -1,326 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/pal_lld.h - * @brief PAL subsystem low level driver header template - * @addtogroup PAL_LLD - * @{ - */ - -#ifndef _PAL_LLD_H_ -#define _PAL_LLD_H_ - -#if CH_HAL_USE_PAL - -/*===========================================================================*/ -/* Unsupported modes and specific modes */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* I/O Ports Types and constants. */ -/*===========================================================================*/ - -/** - * @brief Generic I/O ports static initializer. - * @details An instance of this structure must be passed to @p palInit() at - * system startup time in order to initialized the digital I/O - * subsystem. This represents only the initial setup, specific pads - * or whole ports can be reprogrammed at later time. - * - * @note This structure content is architecture dependent. The nome should be - * changed to include the architecture name following this pattern:
- * - [ARCH][CELL]Config. - * . - * As example:
- * - MSP430DIOConfig. - * . - */ -typedef struct { - -} GenericConfig; - -/** - * @brief Width, in bits, of an I/O port. - */ -#define PAL_IOPORTS_WIDTH 32 - -/** - * @brief Whole port mask. - * @brief This macro specifies all the valid bits into a port. - */ -#define PAL_WHOLE_PORT ((ioportmask_t)0xFFFFFFFF) - -/** - * @brief Digital I/O port sized unsigned type. - */ -typedef uint32_t ioportmask_t; - -/** - * @brief Port Identifier. - * @details This type can be a scalar or some kind of pointer, do not make - * any assumption about it, use the provided macros when populating - * variables of this type. - */ -typedef uint32_t ioportid_t; - -/*===========================================================================*/ -/* I/O Ports Identifiers. */ -/*===========================================================================*/ - -/** - * @brief First I/O port identifier. - * @details Low level drivers can define multiple ports, it is suggested to - * use this naming convention. - */ -#define IOPORT1 0 - -/*===========================================================================*/ -/* Implementation, some of the following macros could be implemented as */ -/* functions, if so please put them in pal_lld.c. */ -/*===========================================================================*/ - -/** - * @brief Low level PAL subsystem initialization. - * - * @param[in] config the architecture-dependent ports configuration - */ -#define pal_lld_init(config) - -/** - * @brief Reads the physical I/O port states. - * - * @param[in] port the port identifier - * @return The port bits. - * - * @note This function is not meant to be invoked directly by the application - * code. - */ -#define pal_lld_readport(port) - -/** - * @brief Reads the output latch. - * @details The purpose of this function is to read back the latched output - * value. - * - * @param[in] port the port identifier - * @return The latched logical states. - * - * @note This function is not meant to be invoked directly by the application - * code. - */ -#define pal_lld_readlatch(port) - -/** - * @brief Writes a bits mask on a I/O port. - * - * @param[in] port the port identifier - * @param[in] bits the bits to be written on the specified port - * - * @note This function is not meant to be invoked directly by the application - * code. - */ -#define pal_lld_writeport(port, bits) - -/** - * @brief Sets a bits mask on a I/O port. - * - * @param[in] port the port identifier - * @param[in] bits the bits to be ORed on the specified port - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_setport(port, bits) - -/** - * @brief Clears a bits mask on a I/O port. - * - * @param[in] port the port identifier - * @param[in] bits the bits to be cleared on the specified port - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_clearport(port, bits) - -/** - * @brief Toggles a bits mask on a I/O port. - * - * @param[in] port the port identifier - * @param[in] bits the bits to be XORed on the specified port - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_toggleport(port, bits) - -/** - * @brief Reads a group of bits. - * - * @param[in] port the port identifier - * @param[in] mask the group mask - * @param[in] offset the group bit offset within the port - * @return The group logical states. - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_readgroup(port, mask, offset) - -/** - * @brief Writes a group of bits. - * - * @param[in] port the port identifier - * @param[in] mask the group mask - * @param[in] offset the group bit offset within the port - * @param[in] bits the bits to be written. Values exceeding the group width - * are masked. - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_writegroup(port, mask, offset, bits) - -/** - * @brief Pads group mode setup. - * @details This function programs a pads group belonging to the same port - * with the specified mode. - * - * @param[in] port the port identifier - * @param[in] mask the group mask - * @param[in] mode the mode - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note Programming an unknown or unsupported mode is silently ignored. - */ -#define pal_lld_setgroupmode(port, mask, mode) - -/** - * @brief Reads a logical state from an I/O pad. - * - * @param[in] port the port identifier - * @param[in] pad the pad number within the port - * @return The logical state. - * @retval 0 low logical state. - * @retval 1 high logical state. - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_readpad(port, pad) - -/** - * @brief Writes a logical state on an output pad. - * - * @param[in] port the port identifier - * @param[in] pad the pad number within the port - * @param[out] bit the logical value, the value must be @p 0 or @p 1 - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_writepad(port, pad, bit) - -/** - * @brief Sets a pad logical state to @p 1. - * - * @param[in] port the port identifier - * @param[in] pad the pad number within the port - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_setpad(port, pad) - -/** - * @brief Clears a pad logical state to @p 0. - * - * @param[in] port the port identifier - * @param[in] pad the pad number within the port - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_clearpad(port, pad) - -/** - * @brief Toggles a pad logical state. - * - * @param[in] port the port identifier - * @param[in] pad the pad number within the port - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - */ -#define pal_lld_togglepad(port, pad) - -/** - * @brief Pad mode setup. - * @details This function programs a pad with the specified mode. - * - * @param[in] port the port identifier - * @param[in] pad the pad number within the port - * @param[in] mode the mode - * - * @note This function is not meant to be invoked directly by the application - * code. - * @note The @ref PAL provides a default software implementation of this - * functionality, implement this function if can optimize it by using - * special hardware functionalities or special coding. - * @note Programming an unknown or unsupported mode is silently ignored. - */ -#define pal_lld_setpadmode(port, pad, mode) - -#endif /* CH_HAL_USE_PAL */ - -#endif /* _PAL_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/serial_lld.c b/os/io/templates/serial_lld.c deleted file mode 100644 index c4d63ed76..000000000 --- a/os/io/templates/serial_lld.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/serial_lld.c - * @brief Serial Driver subsystem low level driver source template - * @addtogroup SERIAL_LLD - * @{ - */ - -#include "ch.h" -#include "hal.h" - -#if CH_HAL_USE_SERIAL - -/** @brief Driver default configuration.*/ -static const SerialDriverConfig default_config = { -}; - -/*===========================================================================*/ -/* Low Level Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -/** - * Low level serial driver initialization. - */ -void sd_lld_init(void) { - -} - -/** - * @brief Low level serial driver configuration and (re)start. - * - * @param[in] sdp pointer to a @p SerialDriver object - * @param[in] config the architecture-dependent serial driver configuration. - * If this parameter is set to @p NULL then a default - * configuration is used. - */ -void sd_lld_start(SerialDriver *sdp, const SerialDriverConfig *config) { - - if (config == NULL) - config = &default_config; - -} - -/** - * @brief Low level serial driver stop. - * @details De-initializes the USART, stops the associated clock, resets the - * interrupt vector. - * - * @param[in] sdp pointer to a @p SerialDriver object - */ -void sd_lld_stop(SerialDriver *sdp) { - -} - -#endif /* CH_HAL_USE_SERIAL */ - -/** @} */ diff --git a/os/io/templates/serial_lld.h b/os/io/templates/serial_lld.h deleted file mode 100644 index 53cf2ce25..000000000 --- a/os/io/templates/serial_lld.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/serial_lld.h - * @brief Serial Driver subsystem low level driver header template - * @addtogroup SERIAL_LLD - * @{ - */ - -#ifndef _SERIAL_LLD_H_ -#define _SERIAL_LLD_H_ - -#if CH_HAL_USE_SERIAL - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * Serial Driver condition flags type. - */ -typedef uint8_t sdflags_t; - -/** - * @brief @p SerialDriver specific data. - */ -struct _serial_driver_data { - /** - * Input queue, incoming data can be read from this input queue by - * using the queues APIs. - */ - InputQueue iqueue; - /** - * Output queue, outgoing data can be written to this output queue by - * using the queues APIs. - */ - OutputQueue oqueue; - /** - * Status Change @p EventSource. This event is generated when one or more - * condition flags change. - */ - EventSource sevent; - /** - * I/O driver status flags. - */ - sdflags_t flags; - /** - * Input circular buffer. - */ - uint8_t ib[SERIAL_BUFFERS_SIZE]; - /** - * Output circular buffer. - */ - uint8_t ob[SERIAL_BUFFERS_SIZE]; -}; - -/** - * @brief Generic Serial Driver configuration structure. - * @details An instance of this structure must be passed to @p sdStart() - * in order to configure and start a serial driver operations. - * - * @note This structure content is architecture dependent, each driver - * implementation defines its own version and the custom static - * initializers. - */ -typedef struct { - -} SerialDriverConfig; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void sd_lld_init(void); - void sd_lld_start(SerialDriver *sdp, const SerialDriverConfig *config); - void sd_lld_stop(SerialDriver *sdp); -#ifdef __cplusplus -} -#endif - -#endif /* CH_HAL_USE_SERIAL */ - -#endif /* _SERIAL_LLD_H_ */ - -/** @} */ diff --git a/os/io/templates/spi_lld.c b/os/io/templates/spi_lld.c deleted file mode 100644 index 5fd6295d2..000000000 --- a/os/io/templates/spi_lld.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/spi_lld.c - * @brief SPI Driver subsystem low level driver source template - * @addtogroup SPI_LLD - * @{ - */ - -#include "ch.h" -#include "hal.h" - -#if CH_HAL_USE_SPI - -/*===========================================================================*/ -/* Low Level Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Low level SPI driver initialization. - */ -void spi_lld_init(void) { - -} - -/** - * @brief Configures and activates the SPI peripheral. - * - * @param[in] spip pointer to the @p SPIDriver object - */ -void spi_lld_start(SPIDriver *spip) { - - if (spip->spd_state == SPI_STOP) { - /* Clock activation.*/ - } - /* Configuration.*/ -} - -/** - * @brief Deactivates the SPI peripheral. - * - * @param[in] spip pointer to the @p SPIDriver object - */ -void spi_lld_stop(SPIDriver *spip) { - -} - -/** - * @brief Asserts the slave select signal and prepares for transfers. - * - * @param[in] spip pointer to the @p SPIDriver object - */ -void spi_lld_select(SPIDriver *spip) { - -} - -/** - * @brief Deasserts the slave select signal. - * @details The previously selected peripheral is unselected. - * - * @param[in] spip pointer to the @p SPIDriver object - */ -void spi_lld_unselect(SPIDriver *spip) { - -} - -/** - * @brief Ignores data on the SPI bus. - * @details This function transmits a series of idle words on the SPI bus and - * ignores the received data. This function can be invoked even - * when a slave select signal has not been yet asserted. - * - * @param[in] spip pointer to the @p SPIDriver object - * @param[in] n number of words to be ignored - */ -void spi_lld_ignore(SPIDriver *spip, size_t n) { - -} - -/** - * @brief Exchanges data on the SPI bus. - * @details This function performs a simultaneous transmit/receive operation. - * - * @param[in] spip pointer to the @p SPIDriver object - * @param[in] n number of words to be exchanged - * @param[in] txbuf the pointer to the transmit buffer - * @param[out] rxbuf the pointer to the receive buffer - * - * @note The buffers are organized as uint8_t arrays for data sizes below or - * equal to 8 bits else it is organized as uint16_t arrays. - */ -void spi_lld_exchange(SPIDriver *spip, size_t n, - const void *txbuf, void *rxbuf) { - -} - -/** - * @brief Sends data ever the SPI bus. - * - * @param[in] spip pointer to the @p SPIDriver object - * @param[in] n number of words to send - * @param[in] txbuf the pointer to the transmit buffer - * - * @note The buffers are organized as uint8_t arrays for data sizes below or - * equal to 8 bits else it is organized as uint16_t arrays. - */ -void spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) { - -} - -/** - * @brief Receives data from the SPI bus. - * - * @param[in] spip pointer to the @p SPIDriver object - * @param[in] n number of words to receive - * @param[out] rxbuf the pointer to the receive buffer - * - * @note The buffers are organized as uint8_t arrays for data sizes below or - * equal to 8 bits else it is organized as uint16_t arrays. - */ -void spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) { - -} - -#endif /* CH_HAL_USE_SPI */ - -/** @} */ diff --git a/os/io/templates/spi_lld.h b/os/io/templates/spi_lld.h deleted file mode 100644 index 907bad859..000000000 --- a/os/io/templates/spi_lld.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 . -*/ - -/** - * @file templates/spi_lld.h - * @brief SPI Driver subsystem low level driver header template - * @addtogroup SPI_LLD - * @{ - */ - -#ifndef _SPI_LLD_H_ -#define _SPI_LLD_H_ - -#if CH_HAL_USE_SPI - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the SPI bus. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -#if SPI_USE_MUTUAL_EXCLUSION && !CH_USE_MUTEXES && !CH_USE_SEMAPHORES -#error "SPI_USE_MUTUAL_EXCLUSION requires CH_USE_MUTEXES and/or CH_USE_SEMAPHORES" -#endif - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * @brief Driver configuration structure. - */ -typedef struct { - -} SPIConfig; - -/** - * @brief Structure representing a SPI driver. - */ -typedef struct { - /** - * @brief Driver state. - */ - spistate_t spd_state; -#if SPI_USE_MUTUAL_EXCLUSION || defined(__DOXYGEN__) -#if CH_USE_MUTEXES || defined(__DOXYGEN__) - /** - * @brief Mutex protecting the bus. - */ - Mutex spd_mutex; -#elif CH_USE_SEMAPHORES - Semaphore spd_semaphore; -#endif -#endif /* SPI_USE_MUTUAL_EXCLUSION */ - /** - * @brief Current configuration data. - */ - const SPIConfig *spd_config; - /* End of the mandatory fields.*/ -} SPIDriver; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void spi_lld_init(void); - void spi_lld_start(SPIDriver *spip); - void spi_lld_stop(SPIDriver *spip); - void spi_lld_select(SPIDriver *spip); - void spi_lld_unselect(SPIDriver *spip); - void spi_lld_ignore(SPIDriver *spip, size_t n); - void spi_lld_exchange(SPIDriver *spip, size_t n, - const void *txbuf, void *rxbuf); - void spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf); - void spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf); -#ifdef __cplusplus -} -#endif - -#endif /* CH_HAL_USE_SPI */ - -#endif /* _SPI_LLD_H_ */ - -/** @} */ -- cgit v1.2.3