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