mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Jul 08 07:45:08 2015 +0100
Revision:
584:7c5a5136e412
Parent:
395:bfce16e86ea4
Synchronized with git revision a15892332f7dfbf7685582956fd7fa377aaddb51

Full URL: https://github.com/mbedmicro/mbed/commit/a15892332f7dfbf7685582956fd7fa377aaddb51/

Update mbed_overrides.c

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 147:39a1839cac63 1 /* mbed Microcontroller Library
mbed_official 147:39a1839cac63 2 * Copyright (c) 2006-2013 ARM Limited
mbed_official 147:39a1839cac63 3 *
mbed_official 147:39a1839cac63 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 147:39a1839cac63 5 * you may not use this file except in compliance with the License.
mbed_official 147:39a1839cac63 6 * You may obtain a copy of the License at
mbed_official 147:39a1839cac63 7 *
mbed_official 147:39a1839cac63 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 147:39a1839cac63 9 *
mbed_official 147:39a1839cac63 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 147:39a1839cac63 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 147:39a1839cac63 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 147:39a1839cac63 13 * See the License for the specific language governing permissions and
mbed_official 147:39a1839cac63 14 * limitations under the License.
mbed_official 147:39a1839cac63 15 */
mbed_official 147:39a1839cac63 16 #include "gpio_api.h"
mbed_official 147:39a1839cac63 17
mbed_official 584:7c5a5136e412 18 #define CRC16
mbed_official 584:7c5a5136e412 19 #include "crc.h"
mbed_official 584:7c5a5136e412 20
mbed_official 147:39a1839cac63 21 // called before main - implement here if board needs it ortherwise, let
mbed_official 147:39a1839cac63 22 // the application override this if necessary
mbed_official 147:39a1839cac63 23 //void mbed_sdk_init()
mbed_official 147:39a1839cac63 24 //{
mbed_official 147:39a1839cac63 25 //
mbed_official 147:39a1839cac63 26 //}
mbed_official 147:39a1839cac63 27
mbed_official 147:39a1839cac63 28 // Change the NMI pin to an input. This allows NMI pin to
mbed_official 147:39a1839cac63 29 // be used as a low power mode wakeup. The application will
mbed_official 147:39a1839cac63 30 // need to change the pin back to NMI_b or wakeup only occurs once!
mbed_official 147:39a1839cac63 31 void NMI_Handler(void)
mbed_official 147:39a1839cac63 32 {
mbed_official 147:39a1839cac63 33 gpio_t gpio;
mbed_official 147:39a1839cac63 34 gpio_init_in(&gpio, PTA4);
mbed_official 147:39a1839cac63 35 }
mbed_official 349:c3cf33937977 36
mbed_official 349:c3cf33937977 37 // Provide ethernet devices with a semi-unique MAC address from the UUID
mbed_official 349:c3cf33937977 38 void mbed_mac_address(char *mac)
mbed_official 349:c3cf33937977 39 {
mbed_official 584:7c5a5136e412 40
mbed_official 584:7c5a5136e412 41 unsigned int UUID_LOC_BASE = 0x40048054; // First adddress of the 4-word UUID
mbed_official 584:7c5a5136e412 42 char uuid[16]; // So we can take a local copy of the UUID
mbed_official 584:7c5a5136e412 43 uint32_t MAC[3]; // 3 16 bits words for the MAC
mbed_official 584:7c5a5136e412 44
mbed_official 584:7c5a5136e412 45 // copy the UUID to the variable MAC[]
mbed_official 584:7c5a5136e412 46 memcpy(uuid,(const void*)UUID_LOC_BASE,sizeof(uuid));
mbed_official 584:7c5a5136e412 47
mbed_official 584:7c5a5136e412 48 // generate three CRC16's using different slices of the UUID
mbed_official 584:7c5a5136e412 49 MAC[0] = crcSlow(uuid, 8); // most significant half-word
mbed_official 584:7c5a5136e412 50 MAC[1] = crcSlow(uuid, 12);
mbed_official 584:7c5a5136e412 51 MAC[2] = crcSlow(uuid, 16); // least significant half word
mbed_official 584:7c5a5136e412 52
mbed_official 584:7c5a5136e412 53 // The network stack expects an array of 6 bytes
mbed_official 584:7c5a5136e412 54 // so we copy, and shift and copy from the half-word array to the byte array
mbed_official 584:7c5a5136e412 55 mac[0] = MAC[0] >> 8;
mbed_official 584:7c5a5136e412 56 mac[1] = MAC[0];
mbed_official 584:7c5a5136e412 57 mac[2] = MAC[1] >> 8;
mbed_official 584:7c5a5136e412 58 mac[3] = MAC[1];
mbed_official 584:7c5a5136e412 59 mac[4] = MAC[2] >> 8;
mbed_official 584:7c5a5136e412 60 mac[5] = MAC[2];
mbed_official 584:7c5a5136e412 61
mbed_official 584:7c5a5136e412 62 // We want to force bits [1:0] of the most significant byte [0]
mbed_official 584:7c5a5136e412 63 // to be "10"
mbed_official 349:c3cf33937977 64 // http://en.wikipedia.org/wiki/MAC_address
mbed_official 584:7c5a5136e412 65
mbed_official 584:7c5a5136e412 66 mac[0] |= 0x02; // force bit 1 to a "1" = "Locally Administered"
mbed_official 584:7c5a5136e412 67 mac[0] &= 0xFE; // force bit 0 to a "0" = Unicast
mbed_official 584:7c5a5136e412 68
mbed_official 349:c3cf33937977 69 }
mbed_official 584:7c5a5136e412 70
mbed_official 584:7c5a5136e412 71
mbed_official 584:7c5a5136e412 72