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:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

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