mirror of
https://github.com/ETLCPP/etl.git
synced 2026-05-01 11:29:09 +08:00
# Conflicts: # examples/ArmTimerCallbacks/RTE/Device/STM32F401RETx/startup_stm32f401xe.s # examples/ArmTimerCallbacks/RTE/Device/STM32F401RETx/system_stm32f4xx.c # examples/FunctionInterruptSimulation/FunctionInterruptSimulation.cpp # examples/FunctionInterruptSimulation/vs2017/FunctionInterruptSimulation.sln # examples/FunctionInterruptSimulation/vs2017/FunctionInterruptSimulation.vcxproj # examples/FunctionInterruptSimulation/vs2017/FunctionInterruptSimulation.vcxproj.filters # test/codeblocks/ETL.cbp # test/codeblocks/ETL.depend # test/codeblocks/ETL.layout # test/test_cyclic_value.cpp # test/vs2017/etl.vcxproj # test/vs2017/etl.vcxproj.filters
53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
/*----------------------------------------------------------------------------
|
|
* Name: Retarget.c
|
|
* Purpose: 'Retarget' layer for target-dependent low level functions
|
|
* Note(s):
|
|
*----------------------------------------------------------------------------
|
|
* 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.
|
|
*
|
|
* This software is supplied "AS IS" without warranties of any kind.
|
|
*
|
|
* Copyright (c) 2011 Keil - An ARM Company. All rights reserved.
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
#include <stdio.h>
|
|
#include <rt_misc.h>
|
|
#include "Serial.h"
|
|
|
|
//#pragma import(__use_no_semihosting_swi)
|
|
|
|
|
|
|
|
//struct __FILE { int handle; /* Add whatever you need here */ };
|
|
FILE __stdout;
|
|
FILE __stdin;
|
|
|
|
|
|
int fputc(int c, FILE *f) {
|
|
return (SER_PutChar(c));
|
|
}
|
|
|
|
|
|
int fgetc(FILE *f) {
|
|
return (SER_GetChar());
|
|
}
|
|
|
|
|
|
int ferror(FILE *f) {
|
|
/* Your implementation of ferror */
|
|
return EOF;
|
|
}
|
|
|
|
|
|
void _ttywrch(int c) {
|
|
SER_PutChar(c);
|
|
}
|
|
|
|
|
|
void _sys_exit(int return_code) {
|
|
label: goto label; /* endless loop */
|
|
}
|