git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@713 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2009-02-02 21:07:27 +00:00
parent ec4178dd0f
commit 528e9fea35
5 changed files with 19 additions and 15 deletions

View File

@ -51,9 +51,9 @@
chSysUnlock();
* @endcode
* In general multiple I-Class and (non rescheduling) S-Class APIs can be
* included and the block is terminated by a rescheduling S-Class API.
* An extra @p chSchRescheduleS() can be present at the very end of the block,
* it only reschedules if a reschedulation is still required.
* In general multiple @ref I-Class and (non rescheduling) @ref S-Class APIs
* can be included and the block is terminated by a rescheduling @ref S-Class
* API. An extra @p chSchRescheduleS() can be present at the very end of the
* block, it only reschedules if a reschedulation is still required.
*/
/** @} */

View File

@ -33,10 +33,10 @@
* - <b>None</b>, APIs without any suffix can be invoked only from the user
* code in the <b>Normal</b> state unless differently specified. See
* @ref system_states.
* - <b>"I"</b>, I-Class APIs are invokable only from the <b>I-Locked</b> or
* <b>S-Locked</b> states. See @ref system_states.
* - <b>"S"</b>, S-Class APIs are invokable only from the <b>S-Locked</b>
* state. See @ref system_states.
* - @anchor I-Class <b>"I"</b>, I-Class APIs are invokable only from the
* <b>I-Locked</b> or <b>S-Locked</b> states. See @ref system_states.
* - @anchor S-Class <b>"S"</b>, S-Class APIs are invokable only from the
* <b>S-Locked</b> state. See @ref system_states.
* Examples: @p chThdCreateStatic(), @p chSemSignalI(), @p chIQGetTimeout().
*
* @section interrupt_classes Interrupt Classes
@ -83,14 +83,14 @@
* goes in this state and waits for interrupts, after servicing the interrupt
* the Normal state is restored and the scheduler has a chance to reschedule.
* - <b>S-Locked</b>. Kernel locked and regular interrupt sources disabled.
* Fast interrupt sources are enabled. S-Class and I-Class APIs are
* Fast interrupt sources are enabled. @ref S-Class and @ref I-Class APIs are
* invokable in this state.
* - <b>I-Locked</b>. Kernel locked and regular interrupt sources disabled.
* I-Class APIs are invokable from this state.
* @ref I-Class APIs are invokable from this state.
* - <b>Serving Regular Interrupt</b>. No system APIs are accessible but it is
* possible to switch to the I-Locked state using @p chSysLockFromIsr() and
* then invoke any I-Class API. Interrupt handlers can be preemptable on some
* architectures thus is important to switch to I-Locked state before
* then invoke any @ref I-Class API. Interrupt handlers can be preemptable on
* some architectures thus is important to switch to I-Locked state before
* invoking system APIs.
* - <b>Serving Fast Interrupt</b>. System APIs are not accessible.
* - <b>Serving Non-Maskable Interrupt</b>. System APIs are not accessible.

View File

@ -39,8 +39,8 @@ CH_IRQ_HANDLER(myIRQ) {
CH_IRQ_EPILOGUE();
}
* @endcode
* Note that only interrupt handlers that have to invoke system I-Class APIs
* must be written in this form, handlers unrelated to the OS activity can
* 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
* vector number rather than a function name, it could also be a name from

View File

@ -36,6 +36,10 @@
* application without have to release your source code under certains
* conditions. See the exception text under "Approved Interfaces" for
* details.
* - <b>Is the exception applicable to any ChibiOS/RT version ?</b><br>
* The exception is valid only for ChibiOS/RT releases marked as @e stable.
* Beta or unstable versions are covered by the GPL3 alone because are meant
* for testing only.
* - <b>I don't want to be bound by any of the above restriction, is this
* possible?</b><br>
* You may contact us about a commercial license.

View File

@ -36,7 +36,7 @@ msg_t my_thread(void *param) {
* well below the system tick period and that @p my_thread() is not preempted
* by other threads inserting long intervals.<br>
* If the above conditions are not satisfied you may have @p do_something()
* executed at irregular intevals, as example:<br><br>
* executed at irregular intervals, as example:<br><br>
* T0...T0+1000...T0+2002...T0+3002...T0+4005...etc.<br><br>
* Also note that the error increases over time and this kind of behavior can
* lead anomalies really hard to debug.