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 Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
170:e95d10626187
Child:
172:65be27845400
mbed library. Release version 164

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 171:3a7713b1edbc 17 #ifndef MBED_SERIALWIREOUTPUT_H
AnnaBridge 171:3a7713b1edbc 18 #define MBED_SERIALWIREOUTPUT_H
AnnaBridge 171:3a7713b1edbc 19
AnnaBridge 165:d1b4690b3f8b 20 #if defined(DEVICE_ITM)
AnnaBridge 165:d1b4690b3f8b 21
AnnaBridge 165:d1b4690b3f8b 22 #include "hal/itm_api.h"
AnnaBridge 165:d1b4690b3f8b 23 #include "platform/FileHandle.h"
AnnaBridge 165:d1b4690b3f8b 24
Anna Bridge 169:a7c7b631e539 25 namespace mbed {
AnnaBridge 170:e95d10626187 26
AnnaBridge 165:d1b4690b3f8b 27 class SerialWireOutput : public FileHandle {
Anna Bridge 169:a7c7b631e539 28
AnnaBridge 165:d1b4690b3f8b 29 public:
Anna Bridge 169:a7c7b631e539 30
AnnaBridge 165:d1b4690b3f8b 31 SerialWireOutput(void)
AnnaBridge 165:d1b4690b3f8b 32 {
AnnaBridge 165:d1b4690b3f8b 33 /* Initialize ITM using internal init function. */
AnnaBridge 165:d1b4690b3f8b 34 mbed_itm_init();
AnnaBridge 165:d1b4690b3f8b 35 }
AnnaBridge 165:d1b4690b3f8b 36
AnnaBridge 165:d1b4690b3f8b 37 virtual ssize_t write(const void *buffer, size_t size)
AnnaBridge 165:d1b4690b3f8b 38 {
AnnaBridge 170:e95d10626187 39 mbed_itm_send_block(ITM_PORT_SWO, buffer, size);
AnnaBridge 165:d1b4690b3f8b 40
AnnaBridge 165:d1b4690b3f8b 41 return size;
AnnaBridge 165:d1b4690b3f8b 42 }
AnnaBridge 165:d1b4690b3f8b 43
AnnaBridge 165:d1b4690b3f8b 44 virtual ssize_t read(void *buffer, size_t size)
AnnaBridge 165:d1b4690b3f8b 45 {
AnnaBridge 165:d1b4690b3f8b 46 /* Reading is not supported by this file handle */
AnnaBridge 165:d1b4690b3f8b 47 return -EBADF;
AnnaBridge 165:d1b4690b3f8b 48 }
AnnaBridge 165:d1b4690b3f8b 49
AnnaBridge 165:d1b4690b3f8b 50 virtual off_t seek(off_t offset, int whence = SEEK_SET)
AnnaBridge 165:d1b4690b3f8b 51 {
AnnaBridge 165:d1b4690b3f8b 52 /* Seeking is not support by this file handler */
AnnaBridge 165:d1b4690b3f8b 53 return -ESPIPE;
AnnaBridge 165:d1b4690b3f8b 54 }
AnnaBridge 165:d1b4690b3f8b 55
AnnaBridge 165:d1b4690b3f8b 56 virtual off_t size()
AnnaBridge 165:d1b4690b3f8b 57 {
AnnaBridge 165:d1b4690b3f8b 58 /* Size is not defined for this file handle */
AnnaBridge 165:d1b4690b3f8b 59 return -EINVAL;
AnnaBridge 165:d1b4690b3f8b 60 }
AnnaBridge 165:d1b4690b3f8b 61
AnnaBridge 165:d1b4690b3f8b 62 virtual int isatty()
AnnaBridge 165:d1b4690b3f8b 63 {
AnnaBridge 165:d1b4690b3f8b 64 /* File handle is used for terminal output */
AnnaBridge 165:d1b4690b3f8b 65 return true;
AnnaBridge 165:d1b4690b3f8b 66 }
AnnaBridge 165:d1b4690b3f8b 67
AnnaBridge 165:d1b4690b3f8b 68 virtual int close()
AnnaBridge 165:d1b4690b3f8b 69 {
AnnaBridge 165:d1b4690b3f8b 70 return 0;
AnnaBridge 165:d1b4690b3f8b 71 }
AnnaBridge 165:d1b4690b3f8b 72 };
AnnaBridge 170:e95d10626187 73
Anna Bridge 169:a7c7b631e539 74 } // namespace mbed
AnnaBridge 165:d1b4690b3f8b 75
AnnaBridge 171:3a7713b1edbc 76 #endif // DEVICE_ITM
AnnaBridge 171:3a7713b1edbc 77
AnnaBridge 171:3a7713b1edbc 78 #endif // MBED_SERIALWIREOUTPUT_H