aboutsummaryrefslogtreecommitdiffstats
path: root/src/wiring/comm
diff options
context:
space:
mode:
authorbnewbold <bnewbold@robocracy.org>2010-03-31 08:52:45 +0800
committeriperry <iperry@gmail.com>2010-03-31 09:43:10 +0800
commit1d3861ef93f8423176c6010ab606abdab00a7cbd (patch)
tree5c95101e295bcfdd7f9f4292ce9204ddf7e7f662 /src/wiring/comm
parent8d6bf3b196c2a0bc1adda4a04669e54fdc5b65cb (diff)
downloadlibrambutan-1d3861ef93f8423176c6010ab606abdab00a7cbd.tar.gz
librambutan-1d3861ef93f8423176c6010ab606abdab00a7cbd.zip
Major hierarchy reorganization; see README.
copy-to-ide and Makefile updated to conform; .gitignore added; LICENSE added
Diffstat (limited to 'src/wiring/comm')
-rw-r--r--src/wiring/comm/HardwareSerial.cpp97
-rw-r--r--src/wiring/comm/HardwareSerial.h48
-rw-r--r--src/wiring/comm/HardwareUsb.cpp96
-rw-r--r--src/wiring/comm/HardwareUsb.h48
4 files changed, 0 insertions, 289 deletions
diff --git a/src/wiring/comm/HardwareSerial.cpp b/src/wiring/comm/HardwareSerial.cpp
deleted file mode 100644
index 04d8d18..0000000
--- a/src/wiring/comm/HardwareSerial.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/* *****************************************************************************
- * This program 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.
- *
- * This program 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/>.
- *
- * Created: 12/19/09 05:15:24 EST
- * Copyright (c) 2009 Perry L. Hung. All rights reserved.
- *
- * ****************************************************************************/
-
-/**
- * @file HardwareSerial.cpp
- *
- * @brief Wiring-like serial api
- */
-
-#include "wiring.h"
-#include "HardwareSerial.h"
-#include "usart.h"
-#include "gpio.h"
-#include "timers.h"
-
-#define USART1_TX_PORT GPIOA_BASE
-#define USART1_TX_PIN 9
-#define USART1_RX_PORT GPIOA_BASE
-#define USART1_RX_PIN 10
-
-#define USART2_TX_PORT GPIOA_BASE
-#define USART2_TX_PIN 2
-#define USART2_RX_PORT GPIOA_BASE
-#define USART2_RX_PIN 3
-
-#define USART3_TX_PORT GPIOB_BASE
-#define USART3_TX_PIN 10
-#define USART3_RX_PORT GPIOB_BASE
-#define USART3_RX_PIN 11
-
-HardwareSerial::HardwareSerial(uint8_t usartNum) {
- ASSERT(usartNum == 1 ||
- usartNum == 2 ||
- usartNum == 3);
- this->usartNum = usartNum;
-}
-
-uint8_t HardwareSerial::read(void) {
- return usart_getc(usartNum);
-}
-
-uint32 HardwareSerial::available(void) {
-
- return usart_data_available(usartNum);
-}
-
-void HardwareSerial::write(unsigned char ch) {
- usart_putc(usartNum, ch);
-}
-
-void HardwareSerial::begin(uint32_t baud) {
- ASSERT(!(baud > USART_MAX_BAUD));
-
- /* Set appropriate pin modes */
- switch (usartNum) {
- case 1:
- gpio_set_mode(USART1_TX_PORT, USART1_TX_PIN, GPIO_MODE_AF_OUTPUT_PP);
- gpio_set_mode(USART1_RX_PORT, USART1_RX_PIN, GPIO_MODE_INPUT_FLOATING);
- /* Turn off any pwm */
- timers_disable_channel(1, 2);
- break;
- case 2:
- gpio_set_mode(USART2_TX_PORT, USART2_TX_PIN, GPIO_MODE_AF_OUTPUT_PP);
- gpio_set_mode(USART2_RX_PORT, USART2_RX_PIN, GPIO_MODE_INPUT_FLOATING);
- /* Turn off any pwm */
- timers_disable_channel(2, 3);
- break;
- case 3:
- gpio_set_mode(USART3_TX_PORT, USART3_TX_PIN, GPIO_MODE_AF_OUTPUT_PP);
- gpio_set_mode(USART3_RX_PORT, USART3_RX_PIN, GPIO_MODE_INPUT_FLOATING);
- break;
- default:
- ASSERT(0);
- }
-
- usart_init(usartNum, baud);
-}
-
-HardwareSerial Serial1(1);
-HardwareSerial Serial2(2);
-HardwareSerial Serial3(3);
diff --git a/src/wiring/comm/HardwareSerial.h b/src/wiring/comm/HardwareSerial.h
deleted file mode 100644
index a3913f9..0000000
--- a/src/wiring/comm/HardwareSerial.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* *****************************************************************************
- * This program 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.
- *
- * This program 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/>.
- *
- * Created: 12/19/09 05:45:37 EST
- * Copyright (c) 2009 Perry L. Hung. All rights reserved.
- *
- * ****************************************************************************/
-
-/**
- * @file HardwareSerial.h
- *
- * @brief
- */
-
-#ifndef _HARDWARESERIAL_H_
-#define _HARDWARESERIAL_H_
-
-#include "Print.h"
-
-class HardwareSerial : public Print {
- private:
- uint8 usartNum;
- public:
- HardwareSerial(uint8_t);
- void begin(uint32_t);
- uint32 available(void);
- uint8_t read(void);
- void flush(void);
- virtual void write(unsigned char);
- using Print::write;
-};
-
-extern HardwareSerial Serial1;
-extern HardwareSerial Serial2;
-extern HardwareSerial Serial3;
-#endif
-
diff --git a/src/wiring/comm/HardwareUsb.cpp b/src/wiring/comm/HardwareUsb.cpp
deleted file mode 100644
index 269a68f..0000000
--- a/src/wiring/comm/HardwareUsb.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/* *****************************************************************************
- * This program 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.
- *
- * This program 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 HardwareUsb.cpp
- *
- * @brief Wiring like serial api to USB virtual COM
- */
-
-#include "wiring.h"
-#include "HardwareUsb.h"
-#include "bootVect.h"
-#include "usb.h"
-
-HardwareUsb::HardwareUsb(void) {
- mapleVectTable = (BootVectTable*)(BOOTLOADER_VECT_TABLE);
- mapleVectTable->serial_tx_cb = usb_tx_cb;
- mapleVectTable->serial_rx_cb = usb_rx_cb;
- mapleVectTable->usb_local_obj_ptr = this;
- rx_buffer_offset_in = 0;
- rx_buffer_offset_out = 0;
-}
-
-uint8_t HardwareUsb::read(void) {
- uint8_t outVal = rx_buffer[rx_buffer_offset_out++];
-
-#if 1
- if (rx_buffer_offset_out == rx_buffer_offset_in) {
- flush();
- }
-#endif
-
- return outVal;
-}
-
-uint8_t HardwareUsb::available(void) {
- ASSERT(rx_buffer_offset_out >= 0);
- // return rx_buffer_offset+1;
- // return usb_serialGetRecvLen();
- return rx_buffer_offset_in - rx_buffer_offset_out;
-}
-
-void HardwareUsb::flush(void) {
- rx_buffer_offset_in = 0;
- rx_buffer_offset_out = 0;
-}
-
-void HardwareUsb::write(unsigned char ch) {
- usb_serialWriteChar(ch);
-}
-
-void HardwareUsb::begin(void) {
- /* placeholder for usb<->uart linking */
-}
-
-void HardwareUsb::usb_rx_cb(void) {
- BootVectTable *vectTable = (BootVectTable*)(BOOTLOADER_VECT_TABLE);
- HardwareUsb *thisPtr = (HardwareUsb*) vectTable->usb_local_obj_ptr;
-
- uint8_t numBytes = usb_serialGetRecvLen();
-
-#if 0
- /* ONE-SHOT-TO-READ Version (buffer cleared on next recv interrupt */
- usb_copyRecvBuffer(thisPtr->rx_buffer,numBytes);
- thisPtr->rx_buffer_offset_in = numBytes;
- thisPtr->rx_buffer_offset_out = 0;
-#else
- /* FIFO DISCARD OVERFLOW VERSION */
- if ((thisPtr->rx_buffer_offset_in + numBytes) > (USB_SERIAL_BUF_SIZE)) {
- numBytes = USB_SERIAL_BUF_SIZE - thisPtr->rx_buffer_offset_in;
- }
-
- if (numBytes > 0) {
- ASSERT(thisPtr->rx_buffer_offset_in <= USB_SERIAL_BUF_SIZE);
- usb_copyRecvBuffer(&(thisPtr->rx_buffer[thisPtr->rx_buffer_offset_in]),numBytes);
- thisPtr->rx_buffer_offset_in += numBytes;
- }
-#endif
-}
-
-void HardwareUsb::usb_tx_cb(void) {
- /* placeholder for when serial dumps exceed buflen */
-}
diff --git a/src/wiring/comm/HardwareUsb.h b/src/wiring/comm/HardwareUsb.h
deleted file mode 100644
index b8733c1..0000000
--- a/src/wiring/comm/HardwareUsb.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* *****************************************************************************
- * This program 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.
- *
- * This program 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 HardwareUsb.h
- *
- * @brief Wiring like serial api to USB virtual COM
- */
-
-#ifndef _HARDWAREUSB_H_
-#define _HARDWAREUSB_H_
-
-#include "Print.h"
-#include "bootVect.h"
-#include "usb.h"
-
-class HardwareUsb : public Print {
- private:
- BootVectTable* mapleVectTable;
- static void usb_rx_cb(void);
- static void usb_tx_cb(void);
- unsigned char rx_buffer[USB_SERIAL_BUF_SIZE];
- int8_t rx_buffer_offset_out;
- int8_t rx_buffer_offset_in;
- public:
- HardwareUsb(void);
- void begin();
- uint8_t available(void);
- uint8_t read(void);
- void flush(void);
- virtual void write(unsigned char);
- using Print::write;
-};
-
-#endif //_HARDWAREUSB_H