diff --git a/docs/Doxyfile b/docs/Doxyfile index c01a26e0a..3c9227521 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -586,13 +586,15 @@ INPUT = ../docs/src \ ../os/ports/GCC/ARMCM3/crt0.s \ ../os/ports/GCC/MSP430 \ ../os/ports/GCC/AVR \ - ../os/io \ - ../os/io/templates \ - ../os/io/platforms/AT91SAM7 \ - ../os/io/platforms/AVR \ - ../os/io/platforms/LPC214x \ - ../os/io/platforms/MSP430 \ - ../os/io/platforms/STM32 \ + ../os/hal \ + ../os/hal/include \ + ../os/hal/src \ + ../os/hal/templates \ + ../os/hal/platforms/AT91SAM7 \ + ../os/hal/platforms/AVR \ + ../os/hal/platforms/LPC214x \ + ../os/hal/platforms/MSP430 \ + ../os/hal/platforms/STM32 \ ../os/various \ ../test @@ -650,7 +652,7 @@ RECURSIVE = NO # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = ../os/io/platforms/STM32/stm32f10x.h +EXCLUDE = ../os/hal/platforms/STM32/stm32f10x.h # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded diff --git a/os/hal/hal.dox b/os/hal/hal.dox index ea90d8ff6..b17562dec 100644 --- a/os/hal/hal.dox +++ b/os/hal/hal.dox @@ -18,13 +18,11 @@ */ /** - * @defgroup IO I/O - * @brief I/O related services. - * @details This section contains the I/O related services. - * - * The I/O subsystem is a collection of device driver portable interfaces and - * platform dependent implementations.
- * Under ChibiOS/RT a device driver is split in two layers: + * @defgroup IO HAL + * @brief Hardware Abstraction Layer. + * @details Under ChibiOS/RT the set of the various device driver interfaces + * is called the HAL subsystem: Hardware Abstraction Layer.
+ * A device driver is usually split in two layers: * - High Level Device Driver (HLD). This layer contains the definitions * of the driver's APIs and the platform independent part of the driver.
* An HLD is composed by two files: @@ -41,21 +39,50 @@ * - @_lld.h, the high level header file. This file is implicitly * included by the HLD header file. * . + * The LLD may be not present in those drivers that do not access the + * hardware directly but through other device drivers, as example the + * @ref MMC_SPI driver uses the @ref SPI and @ref PAL drivers in order + * to implement its functionalities. * . *

Available Device Drivers

* The I/O subsystem currently includes support for: + * - @ref HAL. * - @ref PAL. * - @ref SERIAL. - * - @ref SPI. * - @ref ADC. + * - @ref CAN. * - @ref MAC. * - @ref MII. * - @ref MMC_SPI. + * - @ref SPI. * . */ /** - * @defgroup PAL Ports Abstraction Layer (PAL) + * @defgroup HAL HAL Driver + * @brief Hardware Abstraction Layer. + * @details The HAL driver performs the system initialization and includes + * the platform support code shared by the other drivers. + * + * @ingroup IO + */ + +/** + * @defgroup HAL_LLD HAL Low Level Driver + * @brief @ref HAL low level driver template. + * + * @ingroup HAL + */ + +/** + * @defgroup HAL_CONF Configuration + * @brief @ref HAL Configuration. + * + * @ingroup HAL + */ + +/** + * @defgroup PAL PAL Driver * @brief I/O Ports Abstraction Layer * @details This module defines an abstract interface for digital I/O ports. * Note that most I/O ports functions are just macros. The macros @@ -191,20 +218,26 @@ * @dot digraph example { rankdir="LR"; - node [shape=circle, fontname=Helvetica, fontsize=8, fixedsize="true", width="0.75", height="0.75"]; + node [shape=circle, fontname=Helvetica, fontsize=8, fixedsize="true", width="0.8", height="0.8"]; edge [fontname=Helvetica, fontsize=8]; uninit [label="ADC_UNINIT", style="bold"]; stop [label="ADC_STOP\nLow Power"]; ready [label="ADC_READY\nClock Enabled"]; - running [label="ADC_RUNNING\nConverting"]; + running [label="ADC_RUNNING"]; + complete [label="ADC_COMPLETE"]; uninit -> stop [label="adcObjectInit()"]; stop -> ready [label="adcStart()"]; ready -> ready [label="adcStart()"]; + ready -> ready [label="adcWaitConversion()"]; ready -> stop [label="adcStop()"]; stop -> stop [label="adcStop()"]; ready -> running [label="adcStartConversion()"]; running -> ready [label="adcStopConversion()"]; - running -> ready [label="End of Conversion"]; + running -> complete [label="End of Conversion"]; + complete -> running [label="adcStartConversion()"]; + complete -> ready [label="adcStopConversion()"]; + complete -> ready [label="adcWaitConversion()"]; + complete -> stop [label="adcStop()"]; } * @enddot * @@ -223,6 +256,29 @@ * @ingroup ADC */ +/** + * @defgroup CAN CAN Driver + * @brief Generic ADC Driver. + * @details This module implements a generic ADC driver. The driver implements + * a state machine internally: + * @dot + digraph example { + rankdir="LR"; + node [shape=circle, fontname=Helvetica, fontsize=8, fixedsize="true", width="0.8", height="0.8"]; + edge [fontname=Helvetica, fontsize=8]; + } + * @enddot + * + * @ingroup IO + */ + +/** + * @defgroup CAN_LLD CAN Low Level Driver + * @brief @ref HAL low level driver template. + * + * @ingroup CAN + */ + /** * @defgroup MAC MAC Driver * @brief Generic MAC driver. diff --git a/os/hal/platforms/STM32/can_lld.c b/os/hal/platforms/STM32/can_lld.c index 7c56acad1..40450a071 100644 --- a/os/hal/platforms/STM32/can_lld.c +++ b/os/hal/platforms/STM32/can_lld.c @@ -18,9 +18,9 @@ */ /** - * @file templates/can_lld.c - * @brief CAN Driver subsystem low level driver source template - * @addtogroup CAN_LLD + * @file STM32/can_lld.c + * @brief STM32 CAN subsystem low level driver source + * @addtogroup STM32_CAN * @{ */ diff --git a/os/hal/platforms/STM32/can_lld.h b/os/hal/platforms/STM32/can_lld.h index c899055c6..54572ba64 100644 --- a/os/hal/platforms/STM32/can_lld.h +++ b/os/hal/platforms/STM32/can_lld.h @@ -18,9 +18,9 @@ */ /** - * @file templates/can_lld.h - * @brief CAN Driver subsystem low level driver header template - * @addtogroup CAN_LLD + * @file STM32/can_lld.h + * @brief STM32 CAN subsystem low level driver header + * @addtogroup STM32_CAN * @{ */ diff --git a/os/hal/platforms/STM32/hal_lld.c b/os/hal/platforms/STM32/hal_lld.c index 1fa5a2aca..cce126c8e 100644 --- a/os/hal/platforms/STM32/hal_lld.c +++ b/os/hal/platforms/STM32/hal_lld.c @@ -18,9 +18,9 @@ */ /** - * @file templates/hal_lld.c - * @brief HAL Driver subsystem low level driver source template - * @addtogroup HAL_LLD + * @file STM32/hal_lld.c + * @brief STM32 HAL subsystem low level driver source + * @addtogroup STM32_HAL * @{ */ diff --git a/os/hal/platforms/STM32/hal_lld.h b/os/hal/platforms/STM32/hal_lld.h index 7be941ca2..fc29c2824 100644 --- a/os/hal/platforms/STM32/hal_lld.h +++ b/os/hal/platforms/STM32/hal_lld.h @@ -18,9 +18,9 @@ */ /** - * @file templates/hal_lld.h - * @brief HAL subsystem low level driver header template - * @addtogroup HAL_LLD + * @file STM32/hal_lld.h + * @brief STM32 HAL subsystem low level driver header + * @addtogroup STM32_HAL * @{ */ diff --git a/os/hal/readme.txt b/os/hal/readme.txt index 73a1ccc29..252acaae1 100644 --- a/os/hal/readme.txt +++ b/os/hal/readme.txt @@ -1 +1 @@ -ChibiOS/RT portable HAL code +ChibiOS/RT HAL code diff --git a/os/hal/src/hal.c b/os/hal/src/hal.c index b64ba49af..864789858 100644 --- a/os/hal/src/hal.c +++ b/os/hal/src/hal.c @@ -56,3 +56,5 @@ void halInit(void) { mmcInit(); #endif } + +/** @} */ diff --git a/os/hal/templates/halconf.h b/os/hal/templates/halconf.h index 4298df53c..f08ffcda5 100644 --- a/os/hal/templates/halconf.h +++ b/os/hal/templates/halconf.h @@ -20,7 +20,7 @@ /** * @file templates/halconf.h * @brief HAL configuration header. - * @addtogroup HAL + * @addtogroup HAL_CONF * @{ */