Lancaster University's (short term!) clone of mbed-src for micro:bit. This is a copy of the github branch https://github.com/lancaster-university/mbed-classic

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Tue Nov 20 17:24:08 2012 +0000
Revision:
0:fd0d7bdfcdc2
Child:
2:143cac498751
mbed sources

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:fd0d7bdfcdc2 1 /* mbed Microcontroller Library
mbed_official 0:fd0d7bdfcdc2 2 * Copyright (c) 2006-2012 ARM Limited
mbed_official 0:fd0d7bdfcdc2 3 *
mbed_official 0:fd0d7bdfcdc2 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
mbed_official 0:fd0d7bdfcdc2 5 * of this software and associated documentation files (the "Software"), to deal
mbed_official 0:fd0d7bdfcdc2 6 * in the Software without restriction, including without limitation the rights
mbed_official 0:fd0d7bdfcdc2 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
mbed_official 0:fd0d7bdfcdc2 8 * copies of the Software, and to permit persons to whom the Software is
mbed_official 0:fd0d7bdfcdc2 9 * furnished to do so, subject to the following conditions:
mbed_official 0:fd0d7bdfcdc2 10 *
mbed_official 0:fd0d7bdfcdc2 11 * The above copyright notice and this permission notice shall be included in
mbed_official 0:fd0d7bdfcdc2 12 * all copies or substantial portions of the Software.
mbed_official 0:fd0d7bdfcdc2 13 *
mbed_official 0:fd0d7bdfcdc2 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
mbed_official 0:fd0d7bdfcdc2 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
mbed_official 0:fd0d7bdfcdc2 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
mbed_official 0:fd0d7bdfcdc2 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
mbed_official 0:fd0d7bdfcdc2 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
mbed_official 0:fd0d7bdfcdc2 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
mbed_official 0:fd0d7bdfcdc2 20 * SOFTWARE.
mbed_official 0:fd0d7bdfcdc2 21 */
mbed_official 0:fd0d7bdfcdc2 22 #include "Ethernet.h"
mbed_official 0:fd0d7bdfcdc2 23
mbed_official 0:fd0d7bdfcdc2 24 #if DEVICE_ETHERNET
mbed_official 0:fd0d7bdfcdc2 25
mbed_official 0:fd0d7bdfcdc2 26 #include "ethernet_api.h"
mbed_official 0:fd0d7bdfcdc2 27
mbed_official 0:fd0d7bdfcdc2 28 namespace mbed {
mbed_official 0:fd0d7bdfcdc2 29
mbed_official 0:fd0d7bdfcdc2 30 Ethernet::Ethernet() {
mbed_official 0:fd0d7bdfcdc2 31 ethernet_init();
mbed_official 0:fd0d7bdfcdc2 32 }
mbed_official 0:fd0d7bdfcdc2 33
mbed_official 0:fd0d7bdfcdc2 34 Ethernet::~Ethernet() {
mbed_official 0:fd0d7bdfcdc2 35 ethernet_free();
mbed_official 0:fd0d7bdfcdc2 36 }
mbed_official 0:fd0d7bdfcdc2 37
mbed_official 0:fd0d7bdfcdc2 38 int Ethernet::write(const char *data, int size) {
mbed_official 0:fd0d7bdfcdc2 39 return ethernet_write(data, size);
mbed_official 0:fd0d7bdfcdc2 40 }
mbed_official 0:fd0d7bdfcdc2 41
mbed_official 0:fd0d7bdfcdc2 42 int Ethernet::send() {
mbed_official 0:fd0d7bdfcdc2 43 return ethernet_send();
mbed_official 0:fd0d7bdfcdc2 44 }
mbed_official 0:fd0d7bdfcdc2 45
mbed_official 0:fd0d7bdfcdc2 46 int Ethernet::receive() {
mbed_official 0:fd0d7bdfcdc2 47 return ethernet_receive();
mbed_official 0:fd0d7bdfcdc2 48 }
mbed_official 0:fd0d7bdfcdc2 49
mbed_official 0:fd0d7bdfcdc2 50 int Ethernet::read(char *data, int size) {
mbed_official 0:fd0d7bdfcdc2 51 return ethernet_read(data, size);
mbed_official 0:fd0d7bdfcdc2 52 }
mbed_official 0:fd0d7bdfcdc2 53
mbed_official 0:fd0d7bdfcdc2 54 void Ethernet::address(char *mac) {
mbed_official 0:fd0d7bdfcdc2 55 return ethernet_address(mac);
mbed_official 0:fd0d7bdfcdc2 56 }
mbed_official 0:fd0d7bdfcdc2 57
mbed_official 0:fd0d7bdfcdc2 58 int Ethernet::link() {
mbed_official 0:fd0d7bdfcdc2 59 return ethernet_link();
mbed_official 0:fd0d7bdfcdc2 60 }
mbed_official 0:fd0d7bdfcdc2 61
mbed_official 0:fd0d7bdfcdc2 62 void Ethernet::set_link(Mode mode) {
mbed_official 0:fd0d7bdfcdc2 63 int speed = -1;
mbed_official 0:fd0d7bdfcdc2 64 int duplex = 0;
mbed_official 0:fd0d7bdfcdc2 65
mbed_official 0:fd0d7bdfcdc2 66 switch(mode) {
mbed_official 0:fd0d7bdfcdc2 67 case AutoNegotiate : speed = -1; duplex = 0; break;
mbed_official 0:fd0d7bdfcdc2 68 case HalfDuplex10 : speed = 0; duplex = 0; break;
mbed_official 0:fd0d7bdfcdc2 69 case FullDuplex10 : speed = 0; duplex = 1; break;
mbed_official 0:fd0d7bdfcdc2 70 case HalfDuplex100 : speed = 1; duplex = 0; break;
mbed_official 0:fd0d7bdfcdc2 71 case FullDuplex100 : speed = 1; duplex = 1; break;
mbed_official 0:fd0d7bdfcdc2 72 }
mbed_official 0:fd0d7bdfcdc2 73
mbed_official 0:fd0d7bdfcdc2 74 ethernet_set_link(speed, duplex);
mbed_official 0:fd0d7bdfcdc2 75 }
mbed_official 0:fd0d7bdfcdc2 76
mbed_official 0:fd0d7bdfcdc2 77 } // namespace mbed
mbed_official 0:fd0d7bdfcdc2 78
mbed_official 0:fd0d7bdfcdc2 79 #endif