123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- #if (defined __CC_ARM) || (defined __ARMCC_VERSION)
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <rt_sys.h>
- #include <rt_misc.h>
- #include "SEGGER_RTT.h"
- #if __ARMCC_VERSION < 6000000
- #pragma import(__use_no_semihosting)
- #endif
- #ifdef _MICROLIB
- #pragma import(__use_full_stdio)
- #endif
- #define STDIN 0x8001
- #define STDOUT 0x8002
- #define STDERR 0x8003
- #if __ARMCC_VERSION < 5000000
- const char __stdout_name[] = "STDOUT";
- const char __stderr_name[] = "STDERR";
- #endif
- void _ttywrch(int c) {
- fputc(c, stdout);
- fflush(stdout);
- }
- FILEHANDLE _sys_open(const char * sName, int OpenMode) {
- (void)OpenMode;
-
- if (strcmp(sName, __stdout_name) == 0) {
- return (STDOUT);
- } else if (strcmp(sName, __stderr_name) == 0) {
- return (STDERR);
- } else
- return (0);
- }
- int _sys_close(FILEHANDLE hFile) {
- (void)hFile;
- return 0;
- }
- int _sys_write(FILEHANDLE hFile, const unsigned char * pBuffer, unsigned NumBytes, int Mode) {
- int r = 0;
- (void)Mode;
- if (hFile == STDOUT) {
- SEGGER_RTT_Write(0, (const char*)pBuffer, NumBytes);
- return 0;
- }
- return r;
- }
- int _sys_read(FILEHANDLE hFile, unsigned char * pBuffer, unsigned NumBytes, int Mode) {
- (void)hFile;
- (void)pBuffer;
- (void)NumBytes;
- (void)Mode;
- return (0);
- }
- int _sys_istty(FILEHANDLE hFile) {
- if (hFile > 0x8000) {
- return (1);
- }
- return (0);
- }
- int _sys_seek(FILEHANDLE hFile, long Pos) {
- (void)hFile;
- (void)Pos;
- return (0);
- }
- int _sys_ensure(FILEHANDLE hFile) {
- (void)hFile;
- return (-1);
- }
- long _sys_flen(FILEHANDLE hFile) {
- (void)hFile;
- return (0);
- }
- int _sys_tmpnam(char * pBuffer, int FileNum, unsigned MaxLen) {
- (void)pBuffer;
- (void)FileNum;
- (void)MaxLen;
- return (1);
- }
- char * _sys_command_string(char * cmd, int len) {
- (void)len;
- return cmd;
- }
- void _sys_exit(int ReturnCode) {
- (void)ReturnCode;
- while (1);
- }
- #if __ARMCC_VERSION >= 5000000
- int stdout_putchar(int ch) {
- (void)ch;
- return ch;
- }
- #endif
- #endif
|