aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/dox/serial.dox
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-03-01 15:25:51 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-03-01 15:25:51 +0000
commit3c9d9c9bb57b8bc370bd1d6851b2b9c03fed8b52 (patch)
tree299a2ea687529648fb62bf0f78341ecf72bb9f8b /os/hal/dox/serial.dox
parenteed6999aaf3a4579121b5e70d3a84ef620f896eb (diff)
downloadChibiOS-3c9d9c9bb57b8bc370bd1d6851b2b9c03fed8b52.tar.gz
ChibiOS-3c9d9c9bb57b8bc370bd1d6851b2b9c03fed8b52.tar.bz2
ChibiOS-3c9d9c9bb57b8bc370bd1d6851b2b9c03fed8b52.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2785 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/dox/serial.dox')
-rw-r--r--os/hal/dox/serial.dox26
1 files changed, 26 insertions, 0 deletions
diff --git a/os/hal/dox/serial.dox b/os/hal/dox/serial.dox
index d4f2cf634..c2fae58f5 100644
--- a/os/hal/dox/serial.dox
+++ b/os/hal/dox/serial.dox
@@ -30,5 +30,31 @@
* @pre In order to use the SERIAL driver the @p HAL_USE_SERIAL option
* must be enabled in @p halconf.h.
*
+ *
+ * @section serial_1 Driver State Machine
+ * The 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];
+
+ uninit [label="SD_UNINIT", style="bold"];
+ stop [label="SD_STOP\nLow Power"];
+ ready [label="SD_READY\nClock Enabled"];
+
+ uninit -> stop [label=" sdInit()"];
+ stop -> stop [label="\nsdStop()"];
+ stop -> ready [label="\nsdStart()"];
+ ready -> stop [label="\nsdStop()"];
+ ready -> ready [label="\nsdStart()"];
+ ready -> ready [label="\nAny I/O operation"];
+ }
+ * @enddot
+ *
* @ingroup IO
*/