]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_R4F_RZ_T_GCC_IAR_ARM/System/GCC/src/gnu_io.c
Initial RZ/T port and demo - work in progress, currently only the tick interrupt...
[freertos] / FreeRTOS / Demo / CORTEX_R4F_RZ_T_GCC_IAR_ARM / System / GCC / src / gnu_io.c
1 /***********************************************************************************************************************\r
2 * DISCLAIMER\r
3 * This software is supplied by Renesas Electronics Corporation and is only\r
4 * intended for use with Renesas products. No other uses are authorized. This\r
5 * software is owned by Renesas Electronics Corporation and is protected under\r
6 * all applicable laws, including copyright laws.\r
7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING\r
8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT\r
9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE\r
10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.\r
11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS\r
12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE\r
13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR\r
14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE\r
15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
16 * Renesas reserves the right, without notice, to make changes to this software\r
17 * and to discontinue the availability of this software. By using this software,\r
18 * you agree to the additional terms and conditions found by accessing the\r
19 * following link:\r
20 * http://www.renesas.com/disclaimer\r
21 *\r
22 ****************************************************************************************************************************************************************/\r
23 /****************************************************************************************************************************************************************\r
24 * Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved.\r
25 ****************************************************************************************************************************************************************/\r
26 /***********************************************************************************************************************\r
27 * File Name     : gnu_io.c\r
28 * Device(s)     : RZ/A1H RSK+T1\r
29 * Tool-Chain    : GNUARM-NONEv14.02-EABI\r
30 * H/W Platform  : RSK+T1 CPU Board\r
31 * Description   : Sample Program - GCC support for serial I/O\r
32 *               : Variants of this file can be created for each compiler\r
33 ***********************************************************************************************************************/\r
34 /***********************************************************************************************************************\r
35 * History       : DD.MM.YYYY Version Description\r
36 *               : 21.05.2015 1.00\r
37 ***********************************************************************************************************************/\r
38 \r
39 /***********************************************************************************************************************\r
40 Includes   <System Includes> , "Project Includes"\r
41 ***********************************************************************************************************************/\r
42 /* Standard IO header */\r
43 #include <stdio.h>\r
44 /* Default  type definition header */\r
45 #include "r_typedefs.h"\r
46 /* Character I/O header */\r
47 #include "siochar.h"\r
48 /* I/O Register root header */\r
49 #include "iodefine.h"\r
50 /* Compiler specific UART i/O support header */\r
51 #include "gnu_io.h"\r
52 \r
53 \r
54 /***********************************************************************************************************************\r
55 * Function Name: put_string\r
56 * Description  : GNU interface to low-level I/O putchar replacement\r
57 * Arguments    : char * pString\r
58 * Return Value : none\r
59 ***********************************************************************************************************************/\r
60 void put_string (char *pString)\r
61 {\r
62     while(0 != (*pString))\r
63     {\r
64         io_put_char(*pString++);\r
65     }\r
66 }\r
67 \r
68 /***********************************************************************************************************************\r
69  End of function put_string\r
70 ***********************************************************************************************************************/\r
71 \r
72 /***********************************************************************************************************************\r
73 * Function Name: get_string\r
74 * Description  : GNU interface to low-level I/O getchar replacement\r
75 * Arguments    : char * pString\r
76 * Return Value : none\r
77 ***********************************************************************************************************************/\r
78 void get_string (char * pString)\r
79 {\r
80     char * ptr = pString;\r
81 \r
82     do\r
83     {\r
84         (*ptr) = io_get_char();\r
85 \r
86         io_put_char(*ptr);\r
87 \r
88         if('\r' == (*ptr))\r
89         {\r
90             (*ptr) = 0;\r
91 \r
92             /* This is intentional since no more input is expected */\r
93             break;\r
94         }\r
95     }\r
96     while('\0' != (*ptr++));\r
97     io_put_char('\r');\r
98     io_put_char('\n');\r
99 }\r
100 \r
101 /***********************************************************************************************************************\r
102  End of function get_string\r
103 ***********************************************************************************************************************/\r
104 \r