From 576d80eb6337c518374ed4ff4c54ff544708a98a Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 30 Aug 2009 07:27:17 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1135 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/ports/GCC/ARM7/port.dox | 2 +- os/ports/GCC/ARMCM3/port.dox | 2 +- os/ports/GCC/AVR/port.dox | 79 ++++++++++++++++++++++++++++++++++++++++ os/ports/GCC/MSP430/port.dox | 85 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 os/ports/GCC/AVR/port.dox create mode 100644 os/ports/GCC/MSP430/port.dox (limited to 'os/ports') diff --git a/os/ports/GCC/ARM7/port.dox b/os/ports/GCC/ARM7/port.dox index 5afc4548f..80027f700 100644 --- a/os/ports/GCC/ARM7/port.dox +++ b/os/ports/GCC/ARM7/port.dox @@ -118,7 +118,7 @@ * greatly improves code efficiency and size. You can look at the serial * driver for real examples of interrupt handlers. * - * @ingroup Ports + * @ingroup ports */ /** diff --git a/os/ports/GCC/ARMCM3/port.dox b/os/ports/GCC/ARMCM3/port.dox index 652af7d68..5a063c867 100644 --- a/os/ports/GCC/ARMCM3/port.dox +++ b/os/ports/GCC/ARMCM3/port.dox @@ -79,7 +79,7 @@ * switching. * - The PendSV vector is internally used for preemption context switching. * . - * @ingroup Ports + * @ingroup ports */ /** diff --git a/os/ports/GCC/AVR/port.dox b/os/ports/GCC/AVR/port.dox new file mode 100644 index 000000000..63af3a525 --- /dev/null +++ b/os/ports/GCC/AVR/port.dox @@ -0,0 +1,79 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @defgroup AVR MegaAVR + * @details AVR port details. This section how the ChibiOS/RT features are + * implemented on this architecture. + * + * @section AVR_STATES Mapping of the System States in the AVR port + * The ChibiOS/RT logical @ref system_states are mapped as follow in the AVR + * port: + * - Init. This state is represented by the startup code and the + * initialization code before @p chSysInit() is executed. It has not a + * special hardware state associated. + * - Normal. This is the state the system has after executing + * @p chSysInit(). Interrupts are enabled. + * - Suspended. Interrupts are disabled. + * - Disabled. Interrupts are enabled. This state is equivalent to the + * Suspended state because there are no fast interrupts in this architecture. + * - Sleep. This state is entered with the execution of the specific + * instruction @p sleep. + * - S-Locked. Interrupts are disabled. + * - I-Locked. This state is equivalent to the SRI state, the + * @p chSysLockI() and @p chSysUnlockI() APIs do nothing (still use them in + * order to formally change state because this may change). + * - Serving Regular Interrupt. Normal interrupt service code. + * - Serving Fast Interrupt. Not present in this architecture. + * - Serving Non-Maskable Interrupt. Not present in this architecture. + * - Halted. Implemented as an infinite loop with interrupts disabled. + * . + * @section AVR_NOTES The AVR port notes + * - The AVR does not have a dedicated interrupt stack, make sure to reserve + * enough stack space for interrupts in each thread stack. This can be done + * by modifying the @p INT_REQUIRED_STACK macro into + * ./ports/AVR/chcore.h. + * . + * @ingroup ports + */ + +/** + * @defgroup AVR_CONF Configuration Options + * @brief AVR Configuration Options. + * @details The AVR port allows some architecture-specific configurations + * settingsthat can be specified externally, as example on the compiler + * command line: + * - @p INT_REQUIRED_STACK, this value represent the amount of stack space + * used by the interrupt handlers.
+ * The default for this value is @p 32, this space is allocated for each + * thread so be careful in order to not waste precious RAM space.
+ * The default value is set into ./ports/AVR/chcore.h. + * . + * @ingroup AVR + */ + +/** + * @defgroup AVR_CORE AVR Core Implementation + * @brief AVR specific port code, structures and macros. + * + * @ingroup AVR + * @file AVR/chtypes.h Port types. + * @file AVR/chcore.h Port related structures and macros. + * @file AVR/chcore.c Port related code. + */ diff --git a/os/ports/GCC/MSP430/port.dox b/os/ports/GCC/MSP430/port.dox new file mode 100644 index 000000000..5ae73c0b0 --- /dev/null +++ b/os/ports/GCC/MSP430/port.dox @@ -0,0 +1,85 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @defgroup MSP430 MSP430 + * @details MSP430 port details. This section how the ChibiOS/RT features are + * implemented on this architecture. + * + * @section MSP430_STATES Mapping of the System States in the MSP430 port + * The ChibiOS/RT logical @ref system_states are mapped as follow in the MSP430 + * port: + * - Init. This state is represented by the startup code and the + * initialization code before @p chSysInit() is executed. It has not a + * special hardware state associated. + * - Normal. This is the state the system has after executing + * @p chSysInit(). Interrupts are enabled. + * - Suspended. Interrupts are disabled. + * - Disabled. Interrupts are enabled. This state is equivalent to the + * Suspended state because there are no fast interrupts in this architecture. + * - Sleep. Not yet implemented. + * - S-Locked. Interrupts are disabled. + * - I-Locked. This state is equivalent to the SRI state, the + * @p chSysLockI() and @p chSysUnlockI() APIs do nothing (still use them in + * order to formally change state because this may change). + * - Serving Regular Interrupt. Normal interrupt service code. + * - Serving Fast Interrupt. Not present in this architecture. + * - Serving Non-Maskable Interrupt. The MSP430 has several non + * maskable interrupt sources that can be associated to this state. + * - Halted. Implemented as an infinite loop with interrupts disabled. + * . + * @section MSP430_NOTES The MSP430 port notes + * - The MSP430 does not have a dedicated interrupt stack, make sure to reserve + * enough stack space for interrupts in each thread stack. This can be done + * by modifying the @p INT_REQUIRED_STACK macro into + * ./ports/MSP430/chcore.h. + * - The state of the hardware multiplier is not saved in the thread context, + * make sure to use it in Suspended state (interrupts masked). + * - The port code does not define the switch to a low power mode for the + * idle thread because the MSP430 has several low power modes. You can + * select the proper low power mode for you application by defining the + * macro @p port_wait_for_interrupt(). + * . + * @ingroup ports + */ + +/** + * @defgroup MSP430_CONF Configuration Options + * @brief MSP430 Configuration Options. + * @details The MSP430 port allows some architecture-specific configurations + * settings that can be specified externally, as example on the compiler + * command line: + * - @p INT_REQUIRED_STACK, this value represent the amount of stack space + * used by the interrupt handlers.
+ * The default for this value is @p 32, this space is allocated for each + * thread so be careful in order to not waste precious RAM space.
+ * The default value is set into ./ports/MSP430/chcore.h. + * . + * @ingroup MSP430 + */ + +/** + * @defgroup MSP430_CORE Core Port Implementation + * @brief MSP430 specific port code, structures and macros. + * + * @ingroup MSP430 + * @file MSP430/chtypes.h Port types. + * @file MSP430/chcore.h Port related structures and macros. + * @file MSP430/chcore.c Port related code. + */ -- cgit v1.2.3