aboutsummaryrefslogtreecommitdiffstats
path: root/docs/src
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-04-26 12:34:10 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-04-26 12:34:10 +0000
commit314ba53ca7082138720a173f76467a9450f1c371 (patch)
tree447bc56873da7e7709508ffa166547d935692631 /docs/src
parente53a1a32089e2f0d1983cc92d1d4a6d28c4db07f (diff)
downloadChibiOS-314ba53ca7082138720a173f76467a9450f1c371.tar.gz
ChibiOS-314ba53ca7082138720a173f76467a9450f1c371.tar.bz2
ChibiOS-314ba53ca7082138720a173f76467a9450f1c371.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1892 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'docs/src')
-rw-r--r--docs/src/interrupts.dox31
1 files changed, 24 insertions, 7 deletions
diff --git a/docs/src/interrupts.dox b/docs/src/interrupts.dox
index 64f336f08..bceea96c4 100644
--- a/docs/src/interrupts.dox
+++ b/docs/src/interrupts.dox
@@ -21,8 +21,11 @@
* @page article_interrupts How to write interrupt handlers
* Since version 1.1.0 ChibiOS/RT offers a cross-platform method for writing
* interrupt handlers. Port-related and compiler-related details are
- * encapsulated within standard system macros.<br>
- * An interrupt handler assumes the following general form:
+ * encapsulated within standard system macros.
+ *
+ * <h2>Writing Regular Interrupt handlers</h2>
+ * A Regular Interrupts handler (see @ref interrupt_classes) must be written
+ * using the following general form:
* @code
CH_IRQ_HANDLER(myIRQ) {
CH_IRQ_PROLOGUE();
@@ -38,15 +41,29 @@ CH_IRQ_HANDLER(myIRQ) {
CH_IRQ_EPILOGUE();
}
* @endcode
- * Note that only interrupt handlers that have to invoke system @ref I-Class
- * APIs must be written in this form, handlers unrelated to the OS activity can
- * omit the macros.
- * Another note about the handler name "myIRQ", in some ports it must be a
+ *
+ * <h2>Writing Fast Interrupt handlers</h2>
+ * In those architectures (@ref ARM7 and @ref ARMCMx) supporting Fast
+ * Interrupts (see @ref interrupt_classes) handlers must be written
+ * using the following general form:
+ * @code
+CH_FAST_IRQ_HANDLER(myIRQ) {
+
+ // Fast IRQ handling code, preemptable if the architecture supports it.
+ // The invocation of any API is forbidden here because fast interrupt
+ // handlers can preempt the kernel even within its critical zones in
+ // order to minimize latency.
+}
+ * @endcode
+ *
+ * <h2>Handlers naming</h2>
+ * A note about the handler name "myIRQ", in some ports it must be a
* vector number rather than a function name, it could also be a name from
* within a predefined set, see the notes about the various ports.
+ *
* <h2>Important Notes</h2>
* - There is an important application note about ARM7 interrupt handlers,
* please read about it in the ARM7 port section: @ref ARM7_IH
* .
*/
-
+ \ No newline at end of file