test

Dependencies:   mbed Watchdog

Dependents:   STM32-MC_node

Committer:
ommpy
Date:
Mon Jul 06 17:18:59 2020 +0530
Revision:
0:d383e2dee0f7
first commit

Who changed what in which revision?

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