1 /**
2 *****************************************************************************
3 * @file cmem7_retarget.h
4 *
5 * @brief CMEM7 retarget header file
6 *
7 *
8 * @version V1.0
9 * @date 3. September 2013
10 *
11 * @note
12 *
13 *****************************************************************************
14 * @attention
15 *
16 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
17 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
18 * TIME. AS A RESULT, CAPITAL-MICRO SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
19 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
20 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
21 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
22 *
23 * <h2><center>© COPYRIGHT 2013 Capital-micro </center></h2>
24 *****************************************************************************
25 */
26
27 #ifndef __CMEM7_RETARGET_H
28 #define __CMEM7_RETARGET_H
29
30 #include <stdio.h>
31 #include "cmem7.h"
32 #include "cmem7_conf.h"
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38
39 #pragma import(__use_no_semihosting_swi)
40
41 struct __FILE { int handle; /* Add whatever you need here */ };
42 FILE __stdout;
43 FILE __stdin;
44 FILE __stderr;
45
46
fputc(int c,FILE * f)47 int fputc(int c, FILE *f) {
48 uint8_t ch = c;
49 if (c == '\n') {
50 ch = '\r';
51 while (0 == UART_Write(PRINT_UART, 1, &ch));
52 ch = '\n';
53 }
54
55 while (0 == UART_Write(PRINT_UART, 1, &ch)) ;
56 return ch;
57 }
58
59
fgetc(FILE * f)60 int fgetc(FILE *f) {
61 uint8_t ch;
62
63 while (0 == UART_Read(PRINT_UART, 1, &ch)) ;
64 return ch;
65 }
66
ferror(FILE * f)67 int ferror(FILE *f) {
68 /* Your implementation of ferror */
69 return EOF;
70 }
71
72
_ttywrch(int c)73 void _ttywrch(int c) {
74 while (0 == UART_Write(PRINT_UART, 1, (uint8_t *)&c));
75 }
76
77
_sys_exit(int return_code)78 void _sys_exit(int return_code) {
79 label: goto label; /* endless loop */
80 }
81
82
83 #ifdef __cplusplus
84 }
85 #endif
86
87 #endif /* __CMEM7_RETARGET_H */
88