[11U68]fix P0_11 to use GPIO
Fork of mbed-src by
targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_MCU_K64F/TARGET_FRDM/mbed_overrides.c@584:7c5a5136e412, 2015-07-08 (annotated)
- 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?
User | Revision | Line number | New 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 |