| /********************************************************************* |
| * SEGGER Microcontroller GmbH * |
| * Solutions for real time microcontroller applications * |
| ********************************************************************** |
| * * |
| * (c) 1995 - 2018 SEGGER Microcontroller GmbH * |
| * * |
| * www.segger.com Support: support@segger.com * |
| * * |
| ********************************************************************** |
| * * |
| * SEGGER RTT * Real Time Transfer for embedded targets * |
| * * |
| ********************************************************************** |
| * * |
| * All rights reserved. * |
| * * |
| * SEGGER strongly recommends to not make any changes * |
| * to or modify the source code of this software in order to stay * |
| * compatible with the RTT protocol and J-Link. * |
| * * |
| * Redistribution and use in source and binary forms, with or * |
| * without modification, are permitted provided that the following * |
| * conditions are met: * |
| * * |
| * o Redistributions of source code must retain the above copyright * |
| * notice, this list of conditions and the following disclaimer. * |
| * * |
| * o Redistributions in binary form must reproduce the above * |
| * copyright notice, this list of conditions and the following * |
| * disclaimer in the documentation and/or other materials provided * |
| * with the distribution. * |
| * * |
| * o Neither the name of SEGGER Microcontroller GmbH * |
| * nor the names of its contributors may be used to endorse or * |
| * promote products derived from this software without specific * |
| * prior written permission. * |
| * * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * |
| * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * |
| * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * |
| * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * |
| * DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR * |
| * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * |
| * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * |
| * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * |
| * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * |
| * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * |
| * DAMAGE. * |
| * * |
| ********************************************************************** |
| ---------------------------END-OF-HEADER------------------------------ |
| File : SEGGER_RTT_Syscalls_IAR.c |
| Purpose : Low-level functions for using printf() via RTT in IAR. |
| To use RTT for printf output, include this file in your |
| application and set the Library Configuration to Normal. |
| Revision: $Rev: 12303 $ |
| ---------------------------------------------------------------------- |
| */ |
| #ifdef __IAR_SYSTEMS_ICC__ |
| |
| // |
| // Since IAR EWARM V8 yfuns.h is considered as deprecated and LowLevelIOInterface.h shall be used instead |
| // To not break any compatibility with older compiler versions, we have a version check in here |
| // |
| #if __VER__ >= 8000000 |
| #include <LowLevelIOInterface.h> |
| #else |
| #include <yfuns.h> |
| #endif |
| |
| #include "SEGGER_RTT.h" |
| #pragma module_name = "?__write" |
| |
| /********************************************************************* |
| * |
| * Function prototypes |
| * |
| ********************************************************************** |
| */ |
| size_t __write(int handle, const unsigned char * buffer, size_t size); |
| |
| /********************************************************************* |
| * |
| * Global functions |
| * |
| ********************************************************************** |
| */ |
| /********************************************************************* |
| * |
| * __write() |
| * |
| * Function description |
| * Low-level write function. |
| * Standard library subroutines will use this system routine |
| * for output to all files, including stdout. |
| * Write data via RTT. |
| */ |
| size_t __write(int handle, const unsigned char * buffer, size_t size) { |
| (void) handle; /* Not used, avoid warning */ |
| SEGGER_RTT_Write(0, (const char*)buffer, size); |
| return size; |
| } |
| |
| /********************************************************************* |
| * |
| * __write_buffered() |
| * |
| * Function description |
| * Low-level write function. |
| * Standard library subroutines will use this system routine |
| * for output to all files, including stdout. |
| * Write data via RTT. |
| */ |
| size_t __write_buffered(int handle, const unsigned char * buffer, size_t size) { |
| (void) handle; /* Not used, avoid warning */ |
| SEGGER_RTT_Write(0, (const char*)buffer, size); |
| return size; |
| } |
| |
| #endif |
| /****** End Of File *************************************************/ |