aboutsummaryrefslogtreecommitdiffstats
path: root/os/ports
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-08-23 12:02:42 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-08-23 12:02:42 +0000
commitf5d6a078c744d81c0e1ceee7d6efeeba6a6c1037 (patch)
tree6e4572ab06ab1cd9ba3b194fa69de1f1085765a6 /os/ports
parentd766e2622e4ce43481ec3e20c68a0a22979c21f9 (diff)
downloadChibiOS-f5d6a078c744d81c0e1ceee7d6efeeba6a6c1037.tar.gz
ChibiOS-f5d6a078c744d81c0e1ceee7d6efeeba6a6c1037.tar.bz2
ChibiOS-f5d6a078c744d81c0e1ceee7d6efeeba6a6c1037.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1104 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/ports')
-rw-r--r--os/ports/GCC/AVR/avr_serial.c185
-rw-r--r--os/ports/GCC/AVR/avr_serial.h92
-rw-r--r--os/ports/GCC/AVR/port.dox95
3 files changed, 0 insertions, 372 deletions
diff --git a/os/ports/GCC/AVR/avr_serial.c b/os/ports/GCC/AVR/avr_serial.c
deleted file mode 100644
index de45d25c0..000000000
--- a/os/ports/GCC/AVR/avr_serial.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- 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 <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @file AVR/avr_serial.c
- * @brief AVR Serial driver code.
- * @addtogroup AVR_SERIAL
- * @{
- */
-
-#include <ch.h>
-
-#include "avr_serial.h"
-
-static void SetError(uint8_t sra, FullDuplexDriver *com) {
- dflags_t sts = 0;
-
- if (sra & (1 << DOR))
- sts |= SD_OVERRUN_ERROR;
- if (sra & (1 << UPE))
- sts |= SD_PARITY_ERROR;
- if (sra & (1 << FE))
- sts |= SD_FRAMING_ERROR;
- chSysLockFromIsr();
- chFDDAddFlagsI(com, sts);
- chSysUnlockFromIsr();
-}
-
-#if USE_AVR_USART0 || defined(__DOXYGEN__)
-/** @brief USART0 serial driver identifier.*/
-FullDuplexDriver SER1;
-
-static uint8_t ib1[SERIAL_BUFFERS_SIZE];
-static uint8_t ob1[SERIAL_BUFFERS_SIZE];
-
-CH_IRQ_HANDLER(USART0_RX_vect) {
- uint8_t sra;
-
- CH_IRQ_PROLOGUE();
-
- sra = UCSR0A;
- if (sra & ((1 << DOR) | (1 << UPE) | (1 << FE)))
- SetError(sra, &SER1);
- chSysLockFromIsr();
- chFDDIncomingDataI(&SER1, UDR0);
- chSysUnlockFromIsr();
-
- CH_IRQ_EPILOGUE();
-}
-
-CH_IRQ_HANDLER(USART0_UDRE_vect) {
- msg_t b;
-
- CH_IRQ_PROLOGUE();
-
- chSysLockFromIsr();
- b = chFDDRequestDataI(&SER1);
- chSysUnlockFromIsr();
- if (b < Q_OK)
- UCSR0B &= ~(1 << UDRIE);
- else
- UDR0 = b;
-
- CH_IRQ_EPILOGUE();
-}
-
-static void OutNotify1(void) {
-
- UCSR0B |= (1 << UDRIE);
-}
-
-/**
- * @brief USART0 setup.
- * @details This function must be invoked with interrupts disabled.
- * @param[in] brr the divider value as calculated by the @p UBRR() macro
- * @param[in] csrc the value for the @p UCSR0C register
- * @note Must be invoked with interrupts disabled.
- * @note Does not reset the I/O queues.
- */
-void usart0_setup(uint16_t brr, uint8_t csrc) {
-
- UBRR0L = brr;
- UBRR0H = brr >> 8;
- UCSR0A = 0;
- UCSR0B = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE);
- UCSR0C = csrc;
-}
-#endif /* USE_AVR_USART0 */
-
-#if USE_AVR_USART1 || defined(__DOXYGEN__)
-/** @brief USART1 serial driver identifier.*/
-FullDuplexDriver SER2;
-
-static uint8_t ib2[SERIAL_BUFFERS_SIZE];
-static uint8_t ob2[SERIAL_BUFFERS_SIZE];
-
-CH_IRQ_HANDLER(USART1_RX_vect) {
- uint8_t sra;
-
- CH_IRQ_PROLOGUE();
-
- sra = UCSR1A;
- if (sra & ((1 << DOR) | (1 << UPE) | (1 << FE)))
- SetError(sra, &SER2);
- chSysLockFromIsr();
- chFDDIncomingDataI(&SER2, UDR1);
- chSysUnlockFromIsr();
-
- CH_IRQ_EPILOGUE();
-}
-
-CH_IRQ_HANDLER(USART1_UDRE_vect) {
- msg_t b;
-
- CH_IRQ_PROLOGUE();
-
- chSysLockFromIsr();
- b = chFDDRequestDataI(&SER2);
- chSysUnlockFromIsr();
- if (b < Q_OK)
- UCSR1B &= ~(1 << UDRIE);
- else
- UDR1 = b;
-
- CH_IRQ_EPILOGUE();
-}
-
-static void OutNotify2(void) {
-
- UCSR1B |= (1 << UDRIE);
-}
-
-/**
- * @brief USART1 setup.
- * @details This function must be invoked with interrupts disabled.
- * @param[in] brr the divider value as calculated by the @p UBRR() macro
- * @param[in] csrc the value for the @p UCSR1C register
- * @note Must be invoked with interrupts disabled.
- * @note Does not reset the I/O queues.
- */
-void usart1_setup(uint16_t brr, uint8_t csrc) {
-
- UBRR1L = brr;
- UBRR1H = brr >> 8;
- UCSR1A = 0;
- UCSR1B = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE);
- UCSR1C = csrc;
-}
-#endif /* USE_AVR_USART1 */
-
-/**
- * @brief Serial driver initialization.
- * @note The serial ports are initialized at @p 38400-8-N-1 by default.
- */
-void serial_init(void) {
-
-#if USE_AVR_USART0
- /* I/O queues setup.*/
- chFDDInit(&SER1, ib1, sizeof ib1, NULL, ob1, sizeof ob1, OutNotify1);
- usart0_setup(UBRR(DEFAULT_USART_BITRATE), (1 << UCSZ1) | (1 << UCSZ0));
-#endif
-
-#if USE_AVR_USART1
- chFDDInit(&SER2, ib2, sizeof ib2, NULL, ob2, sizeof ob2, OutNotify2);
- usart1_setup(UBRR(DEFAULT_USART_BITRATE), (1 << UCSZ1) | (1 << UCSZ0));
-#endif
-}
-
-/** @} */
diff --git a/os/ports/GCC/AVR/avr_serial.h b/os/ports/GCC/AVR/avr_serial.h
deleted file mode 100644
index 5a96044fa..000000000
--- a/os/ports/GCC/AVR/avr_serial.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- 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 <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @file AVR/avr_serial.h
- * @brief AVR Serial driver macros and structures.
- * @addtogroup AVR_SERIAL
- * @{
- */
-
-#ifndef _AVR_SERIAL_H_
-#define _AVR_SERIAL_H_
-
-/**
- * @brief Serial buffers size.
- * @details Configuration parameter, you can change the depth of the queue
- * buffers depending on the requirements of your application.
- * @note The default is 32 bytes for both the transmission and receive buffers.
- */
-#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
-#define SERIAL_BUFFERS_SIZE 32
-#endif
-
-/**
- * @brief Default bit rate.
- * @details Configuration parameter, at startup the UARTs are configured at
- * this speed.
- * @note It is possible to use @p SetUART() in order to change the working
- * parameters at runtime.
- */
-#if !defined(DEFAULT_USART_BITRATE) || defined(__DOXYGEN__)
-#define DEFAULT_USART_BITRATE 38400
-#endif
-
-
-/**
- * @brief USART0 driver enable switch.
- * @details If set to @p TRUE the support for USART0 is included.
- * @note The default is @p FALSE.
- */
-#if !defined(USE_AVR_USART0) || defined(__DOXYGEN__)
-#define USE_AVR_USART0 FALSE
-#endif
-
-/**
- * @brief USART1 driver enable switch.
- * @details If set to @p TRUE the support for USART1 is included.
- * @note The default is @p TRUE.
- */
-#if !defined(USE_AVR_USART1) || defined(__DOXYGEN__)
-#define USE_AVR_USART1 TRUE
-#endif
-
-/**
- * @brief Macro for baud rate computation.
- * @note Make sure the final baud rate is within tolerance.
- */
-#define UBRR(b) ((F_CPU / (b << 4)) - 1)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void serial_init(void);
- void usart0_setup(uint16_t brr, uint8_t csrc);
- void usart1_setup(uint16_t brr, uint8_t csrc);
-#ifdef __cplusplus
-}
-#endif
-
-/** @cond never*/
-extern FullDuplexDriver SER1, SER2;
-/** @endcond*/
-
-#endif /* _AVR_SERIAL_H_ */
-
-/** @} */
diff --git a/os/ports/GCC/AVR/port.dox b/os/ports/GCC/AVR/port.dox
deleted file mode 100644
index 90f7970b5..000000000
--- a/os/ports/GCC/AVR/port.dox
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- 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 <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @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:
- * - <b>Init</b>. 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.
- * - <b>Normal</b>. This is the state the system has after executing
- * @p chSysInit(). Interrupts are enabled.
- * - <b>Suspended</b>. Interrupts are disabled.
- * - <b>Disabled</b>. Interrupts are enabled. This state is equivalent to the
- * Suspended state because there are no fast interrupts in this architecture.
- * - <b>Sleep</b>. This state is entered with the execution of the specific
- * instruction @p <b>sleep</b>.
- * - <b>S-Locked</b>. Interrupts are disabled.
- * - <b>I-Locked</b>. 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).
- * - <b>Serving Regular Interrupt</b>. Normal interrupt service code.
- * - <b>Serving Fast Interrupt</b>. Not present in this architecture.
- * - <b>Serving Non-Maskable Interrupt</b>. Not present in this architecture.
- * - <b>Halted</b>. 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
- * <b>./ports/AVR/chcore.h</b>.
- * .
- * @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.<br>
- * 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.<br>
- * The default value is set into <b>./ports/AVR/chcore.h</b>.
- * .
- * @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.
- */
-
-/**
- * @defgroup AVR_DRIVERS AVR Drivers
- * @brief Device drivers included in the AVR support.
- *
- * @ingroup AVR
- */
-
-/**
- * @defgroup AVR_SERIAL USART Support
- * @brief USART support.
- * @details The serial driver supports both the AVR USARTs in asynchronous
- * mode.
- *
- * @ingroup AVR_DRIVERS
- */