diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2009-01-17 20:15:19 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2009-01-17 20:15:19 +0000 |
commit | 350abc8106b440e3c09f40f7d76938079eab6ab1 (patch) | |
tree | 1f579e35c4abda53117c352d4d169432f76f9632 /docs/ch.txt | |
parent | d72f5d7b16daeec3c965bbbe4c81d4311b4d9df2 (diff) | |
download | ChibiOS-350abc8106b440e3c09f40f7d76938079eab6ab1.tar.gz ChibiOS-350abc8106b440e3c09f40f7d76938079eab6ab1.tar.bz2 ChibiOS-350abc8106b440e3c09f40f7d76938079eab6ab1.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@628 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'docs/ch.txt')
-rw-r--r-- | docs/ch.txt | 102 |
1 files changed, 3 insertions, 99 deletions
diff --git a/docs/ch.txt b/docs/ch.txt index 6cb5140b9..bd17db657 100644 --- a/docs/ch.txt +++ b/docs/ch.txt @@ -245,101 +245,6 @@ /** @} */
/**
- * @defgroup ARM7 ARM7TDMI
- * @{
- * <p>
- * The ARM7 port supports 3 modes:
- * </p>
- * <ul>
- * <li>Pure ARM mode, this is the preferred mode for code speed. The code size
- * is larger however. This mode is enabled when all the modules are compiled
- * in ARM mode, see the Makefiles.</li>
- * <li>Pure THUMB mode, this is the preferred mode for code size. In this mode
- * the execution speed is slower than the ARM mode. This mode is enabled
- * when all the modules are compiled in THUMB mode, see the Makefiles.</li>
- * <li>Interworking mode, when in the system there are ARM modules mixed with
- * THUMB modules then the interworking compiler option is enabled. This is
- * usually the slowest mode and the code size is not as good as in pure
- * THUMB mode.</li>
- * </ul>
- * <p>
- * The ARM7 port makes some assumptions on the application code organization:
- * <ul>
- * <li>The @p main() function is invoked in system mode.</li>
- * <li>Each thread has a private user/system stack, the system has a single
- * interrupt stack where all the interrupts are processed.</li>
- * <li>The threads are started in system mode.</li>
- * <li>The threads code can run in system mode or user mode, however the
- * code running in user mode cannot invoke the ChibiOS/RT APIs directly
- * because privileged instructions are used inside.<br>
- * The kernel APIs can be eventually invoked by using a SWI entry point
- * that handles the switch in system mode and the return in user mode.</li>
- * <li>Other modes are not preempt-able because the system code assumes the
- * threads running in system mode. When running in supervisor or other
- * modes make sure that the interrupts are globally disabled.</li>
- * <li>Interrupts nesting is not supported in the ARM7 code because their
- * implementation, even if possible, is not really efficient in this
- * architecture.</li>
- * <li>FIQ sources can preempt the kernel (by design) so it is not possible to
- * invoke the kernel APIs from inside a FIQ handler. FIQ handlers are not
- * affected by the kernel activity so there is not added jitter.</li>
- * <li>Interrupt handlers do not save function-saved registers so you need to
- * make sure your code saves them or does not use them (this happens
- * because in the ARM7 port all the OS interrupt handlers are declared
- * naked).<br>
- * Function-trashed registers (R0-R3,R12,LR,SR) are saved/restored by the
- * system macros @p chSysIRQEnterI() and @p chSysIRQExitI().<br>
- * The easiest way to ensure this is to just invoke a function from within
- * the interrupt handler, the function code will save all the required
- * registers.<br>
- * Example:
- * @code
- * __attribute__((naked, weak))
- * void irq_handler(void) {
- * chSysIRQEnterI();
- *
- * serve_interrupt();
- *
- * VICVectAddr = 0; // This is LPC214x-specific.
- * chSysIRQExitI();
- * }
- * @endcode
- * This is not a bug but an implementation choice, this solution allows to
- * have interrupt handlers compiled in thumb mode without have to use an
- * interworking mode (the mode switch is hidden in the macros), this
- * greatly improves code efficiency and size. You can look at the serial
- * driver for real examples of interrupt handlers.</li>
- * </ul>
- * </p>
- * @ingroup Ports
- */
-/** @} */
-
-/**
- * @defgroup ARM7CONF Configuration Options
- * @{
- * <p>
- * The ARM7 port allows some architecture-specific configurations settings
- * that can be specified externally, as example on the compiler command line:
- * <ul>
- * <li>@p INT_REQUIRED_STACK, this value represent the amount of stack space used
- * by an interrupt handler between the @p extctx and @p intctx
- * structures.<br>
- * In practice this value is the stack space used by the chSchDoReschedule()
- * stack frame.<br>
- * This value can be affected by a variety of external things like compiler
- * version, compiler options, kernel settings (speed/size) and so on.<br>
- * The default for this value is @p 0x10 which should be a safe value, you
- * can trim this down by defining the macro externally. This would save
- * some valuable RAM space for each thread present in the system.<br>
- * The default value is set into <b>./ports/ARM7/chcore.h</b>.</li>
- * </ul>
- * </p>
- * @ingroup ARM7
- */
-/** @} */
-
-/**
* @defgroup LPC214x LPC214x Support
* @{
* <p>
@@ -437,7 +342,6 @@ */
/** @} */
-
/**
* @defgroup STM32F103 STM32F103 Support
* @{
@@ -541,8 +445,8 @@ * @{
* Non portable code.
* @ingroup Kernel
- * @file chcore.c Non portable code.
- * @file chcore.h Non portable macros and structures.
+ * @file templates/chcore.c Non portable code.
+ * @file templates/chcore.h Non portable macros and structures.
*/
/** @} */
@@ -551,7 +455,7 @@ * @{
* System types and macros.
* @ingroup Kernel
- * @file chtypes.h System types and code modifiers.
+ * @file templates/chtypes.h System types and code modifiers.
*/
/** @} */
|