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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Sep 06 13:39:34 2018 +0100
Revision:
170:e95d10626187
Parent:
169:a7c7b631e539
Child:
171:3a7713b1edbc
mbed library. Release version 163

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 165:d1b4690b3f8b 1 /* mbed Microcontroller Library
AnnaBridge 165:d1b4690b3f8b 2 * Copyright (c) 2017 ARM Limited
AnnaBridge 165:d1b4690b3f8b 3 *
AnnaBridge 165:d1b4690b3f8b 4 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 165:d1b4690b3f8b 5 * you may not use this file except in compliance with the License.
AnnaBridge 165:d1b4690b3f8b 6 * You may obtain a copy of the License at
AnnaBridge 165:d1b4690b3f8b 7 *
AnnaBridge 165:d1b4690b3f8b 8 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 165:d1b4690b3f8b 9 *
AnnaBridge 165:d1b4690b3f8b 10 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 165:d1b4690b3f8b 11 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 165:d1b4690b3f8b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 165:d1b4690b3f8b 13 * See the License for the specific language governing permissions and
AnnaBridge 165:d1b4690b3f8b 14 * limitations under the License.
AnnaBridge 165:d1b4690b3f8b 15 */
AnnaBridge 165:d1b4690b3f8b 16
AnnaBridge 165:d1b4690b3f8b 17 #if defined(DEVICE_ITM)
AnnaBridge 165:d1b4690b3f8b 18
AnnaBridge 165:d1b4690b3f8b 19 #include "hal/itm_api.h"
AnnaBridge 165:d1b4690b3f8b 20 #include "platform/FileHandle.h"
AnnaBridge 165:d1b4690b3f8b 21
Anna Bridge 169:a7c7b631e539 22 namespace mbed {
AnnaBridge 170:e95d10626187 23
AnnaBridge 165:d1b4690b3f8b 24 class SerialWireOutput : public FileHandle {
Anna Bridge 169:a7c7b631e539 25
AnnaBridge 165:d1b4690b3f8b 26 public:
Anna Bridge 169:a7c7b631e539 27
AnnaBridge 165:d1b4690b3f8b 28 SerialWireOutput(void)
AnnaBridge 165:d1b4690b3f8b 29 {
AnnaBridge 165:d1b4690b3f8b 30 /* Initialize ITM using internal init function. */
AnnaBridge 165:d1b4690b3f8b 31 mbed_itm_init();
AnnaBridge 165:d1b4690b3f8b 32 }
AnnaBridge 165:d1b4690b3f8b 33
AnnaBridge 165:d1b4690b3f8b 34 virtual ssize_t write(const void *buffer, size_t size)
AnnaBridge 165:d1b4690b3f8b 35 {
AnnaBridge 170:e95d10626187 36 mbed_itm_send_block(ITM_PORT_SWO, buffer, size);
AnnaBridge 165:d1b4690b3f8b 37
AnnaBridge 165:d1b4690b3f8b 38 return size;
AnnaBridge 165:d1b4690b3f8b 39 }
AnnaBridge 165:d1b4690b3f8b 40
AnnaBridge 165:d1b4690b3f8b 41 virtual ssize_t read(void *buffer, size_t size)
AnnaBridge 165:d1b4690b3f8b 42 {
AnnaBridge 165:d1b4690b3f8b 43 /* Reading is not supported by this file handle */
AnnaBridge 165:d1b4690b3f8b 44 return -EBADF;
AnnaBridge 165:d1b4690b3f8b 45 }
AnnaBridge 165:d1b4690b3f8b 46
AnnaBridge 165:d1b4690b3f8b 47 virtual off_t seek(off_t offset, int whence = SEEK_SET)
AnnaBridge 165:d1b4690b3f8b 48 {
AnnaBridge 165:d1b4690b3f8b 49 /* Seeking is not support by this file handler */
AnnaBridge 165:d1b4690b3f8b 50 return -ESPIPE;
AnnaBridge 165:d1b4690b3f8b 51 }
AnnaBridge 165:d1b4690b3f8b 52
AnnaBridge 165:d1b4690b3f8b 53 virtual off_t size()
AnnaBridge 165:d1b4690b3f8b 54 {
AnnaBridge 165:d1b4690b3f8b 55 /* Size is not defined for this file handle */
AnnaBridge 165:d1b4690b3f8b 56 return -EINVAL;
AnnaBridge 165:d1b4690b3f8b 57 }
AnnaBridge 165:d1b4690b3f8b 58
AnnaBridge 165:d1b4690b3f8b 59 virtual int isatty()
AnnaBridge 165:d1b4690b3f8b 60 {
AnnaBridge 165:d1b4690b3f8b 61 /* File handle is used for terminal output */
AnnaBridge 165:d1b4690b3f8b 62 return true;
AnnaBridge 165:d1b4690b3f8b 63 }
AnnaBridge 165:d1b4690b3f8b 64
AnnaBridge 165:d1b4690b3f8b 65 virtual int close()
AnnaBridge 165:d1b4690b3f8b 66 {
AnnaBridge 165:d1b4690b3f8b 67 return 0;
AnnaBridge 165:d1b4690b3f8b 68 }
AnnaBridge 165:d1b4690b3f8b 69 };
AnnaBridge 170:e95d10626187 70
Anna Bridge 169:a7c7b631e539 71 } // namespace mbed
AnnaBridge 165:d1b4690b3f8b 72
AnnaBridge 165:d1b4690b3f8b 73 #endif