retarget.c
来自「stm32初级例程」· C语言 代码 · 共 83 行
C
83 行
/*----------------------------------------------------------------------------
* Name: Retarget.c
* Purpose: 'Retarget' layer for target-dependent low level functions
* Version: V1.0
*----------------------------------------------------------------------------
* This file is part of the uVision/ARM development tools.
* This software may only be used under the terms of a valid, current,
* end user licence from KEIL for a compatible version of KEIL software
* development tools. Nothing else gives you the right to use this software.
*
* Copyright (c) 2005-2007 Keil Software. All rights reserved.
*----------------------------------------------------------------------------*/
#include <stdio.h>
#include <rt_misc.h>
#pragma import(__use_no_semihosting_swi)
/*----------------------------------------------------------------------------
external functions
*----------------------------------------------------------------------------*/
extern int SendChar(int ch);
extern int GetKey(void);
struct __FILE
{
int handle; // Add whatever you need here
};
FILE __stdout;
FILE __stdin;
/*----------------------------------------------------------------------------
fputc
*----------------------------------------------------------------------------*/
int fputc(int ch, FILE* f)
{
return (SendChar(ch));
}
/*----------------------------------------------------------------------------
fgetc
*----------------------------------------------------------------------------*/
int fgetc(FILE* f)
{
int ch;
do
{
ch = GetKey();
}
while (ch == -1);
SendChar(ch);
return (ch);
}
/*----------------------------------------------------------------------------
_ttywrch
*----------------------------------------------------------------------------*/
void _ttywrch(int ch)
{
SendChar(ch);
}
/*----------------------------------------------------------------------------
ferror
*----------------------------------------------------------------------------*/
int ferror(FILE* f)
{
// Your implementation of ferror
return EOF;
}
/*----------------------------------------------------------------------------
_sys_exit
*----------------------------------------------------------------------------*/
void _sys_exit(int return_code)
{
label: goto label; // endless loop
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?