aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/hal.dox
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-11-29 08:05:56 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-11-29 08:05:56 +0000
commitbd50dd065001e4534356b7eee1e67cb1c486cb04 (patch)
tree713c4101a130f0dbc468507462310873cc3e3d0a /os/hal/hal.dox
parent2f43c85736e70a59c0b3675d01d4ddc521223263 (diff)
downloadChibiOS-bd50dd065001e4534356b7eee1e67cb1c486cb04.tar.gz
ChibiOS-bd50dd065001e4534356b7eee1e67cb1c486cb04.tar.bz2
ChibiOS-bd50dd065001e4534356b7eee1e67cb1c486cb04.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1340 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/hal.dox')
-rw-r--r--os/hal/hal.dox80
1 files changed, 68 insertions, 12 deletions
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.<br>
- * 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.<br>
+ * A device driver is usually split in two layers:
* - High Level Device Driver (<b>HLD</b>). This layer contains the definitions
* of the driver's APIs and the platform independent part of the driver.<br>
* An HLD is composed by two files:
@@ -41,21 +39,50 @@
* - @<driver@>_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.
* .
* <h2>Available Device Drivers</h2>
* 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
*
@@ -224,6 +257,29 @@
*/
/**
+ * @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.
* @details This module implements a generic interface for MAC (Media