]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/Flshlite/FileIO/fileIO.c
d0e54c0a32fbf13be72336bcd4f09ed2167753d1
[freertos] / FreeRTOS / Demo / Flshlite / FileIO / fileIO.c
1 /*\r
2  * FreeRTOS Kernel V10.2.1\r
3  * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * http://www.FreeRTOS.org\r
23  * http://aws.amazon.com/freertos\r
24  *\r
25  * 1 tab == 4 spaces!\r
26  */\r
27 \r
28 #include <stdio.h>\r
29 #include <conio.h>\r
30 #include <string.h>\r
31 \r
32 /* Scheduler include files. */\r
33 #include "FreeRTOS.h"\r
34 #include "task.h"\r
35 \r
36 /* Demo program include files. */\r
37 #include "fileio.h"\r
38 \r
39 void vDisplayMessage( const char * const pcMessageToPrint )\r
40 {\r
41         #ifdef USE_STDIO\r
42                 taskENTER_CRITICAL();\r
43                         printf( "%s", pcMessageToPrint );\r
44                         fflush( stdout );\r
45                 taskEXIT_CRITICAL();\r
46         #else\r
47                 /* Stop warnings. */\r
48                 ( void ) pcMessageToPrint;\r
49         #endif\r
50 }\r
51 /*-----------------------------------------------------------*/\r
52 \r
53 void vWriteMessageToDisk( const char * const pcMessage )\r
54 {\r
55 #ifdef USE_STDIO\r
56 const char * const pcFileName = "c:\\RTOSlog.txt";\r
57 const char * const pcSeparator = "\r\n-----------------------\r\n";\r
58 FILE *pf;\r
59 \r
60         taskENTER_CRITICAL();\r
61         {       \r
62                 pf = fopen( pcFileName, "a" );\r
63                 if( pf != NULL )\r
64                 {\r
65                         fwrite( pcMessage, strlen( pcMessage ), ( unsigned short ) 1, pf );\r
66                         fwrite( pcSeparator, strlen( pcSeparator ), ( unsigned short ) 1, pf );\r
67                         fclose( pf );\r
68                 }\r
69         }\r
70         taskEXIT_CRITICAL();\r
71 #else\r
72         /* Stop warnings. */\r
73         ( void ) pcMessage;\r
74 #endif /*USE_STDIO*/\r
75 }\r
76 /*-----------------------------------------------------------*/\r
77 \r
78 void vWriteBufferToDisk( const char * const pcBuffer, unsigned long ulBufferLength )\r
79 {\r
80 #ifdef USE_STDIO\r
81 const char * const pcFileName = "c:\\trace.bin";\r
82 FILE *pf;\r
83 \r
84         taskENTER_CRITICAL();\r
85         {\r
86                 pf = fopen( pcFileName, "wb" );\r
87                 if( pf )\r
88                 {\r
89                         fwrite( pcBuffer, ( size_t ) ulBufferLength, ( unsigned short ) 1, pf );\r
90                         fclose( pf );\r
91                 }\r
92         }\r
93         taskEXIT_CRITICAL();\r
94 #else\r
95         /* Stop warnings. */\r
96         ( void ) pcBuffer;\r
97     ( void ) ulBufferLength;\r
98 #endif /*USE_STDIO*/\r
99 }\r
100 \r
101 \r