While compiling RTOSDemo of win32-MinGW on eclipse 64 throwing compilation error

I downloaded the FreeRTOSV202112.00 from the official website. While compiling RTOSDemo of win32-MinGW on eclipse 64, I am getting the compilation error as

Console output as

16:09:33 **** Rebuild of configuration Debug for project RTOSDemo ****
Info: Internal Builder is used for build
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “FreeRTOS_Source\stream_buffer.o” “…\…\…\Source\stream_buffer.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\StaticAllocation.o” “…\…\Common\Minimal\StaticAllocation.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\flop.o” “…\…\Common\Minimal\flop.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\TaskNotify.o” “…\…\Common\Minimal\TaskNotify.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “FreeRTOS_Source\list.o” “…\…\…\Source\list.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\integer.o” “…\…\Common\Minimal\integer.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\StreamBufferInterrupt.o” “…\…\Common\Minimal\StreamBufferInterrupt.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\QPeek.o” “…\…\Common\Minimal\QPeek.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “FreeRTOS_Source\queue.o” “…\…\…\Source\queue.c”
…....\Source\queue.c: In function ‘xQueueGenericCreate’:
…....\Source\queue.c:410:13: warning: comparison is always true due to limited range of data type [-Wtype-limits]
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\EventGroupsDemo.o” “…\…\Common\Minimal\EventGroupsDemo.c”
…..\Common\Minimal\EventGroupsDemo.c: In function ‘prvSyncTask’:
…..\Common\Minimal\EventGroupsDemo.c:280:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\countsem.o” “…\…\Common\Minimal\countsem.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “Standard_Demo_Tasks\death.o” “…\…\Common\Minimal\death.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “FreeRTOS_Source\portable\MemMang\heap_5.o” “…\…\…\Source\portable\MemMang\heap_5.c”
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o “FreeRTOS_Source\tasks.o” “…\…\…\Source\tasks.c”
…....\Source\tasks.c: In function ‘prvInitialiseNewTask’:
…....\Source\tasks.c:986:21: warning: cast discards ‘attribute((noreturn))’ qualifier from pointer target type [-Wcast-qual]
…....\Source\tasks.c:987:21: warning: cast discards ‘attribute((noreturn))’ qualifier from pointer target type [-Wcast-qual]
gcc -D_WIN32_WINNT=0x0601 -DprojCOVERAGE_TEST=0 “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\include” “-IE:\validation_freertos_eclipse\freertos_lib\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW\Trace_Recorder_Configuration” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\WIN32-MingW” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Demo\Common\include” “-IE:\New_Project\latest_freertos\FreeRTOSv202112.00\FreeRTOS\Source\portable\MSVC-MingW” -O0 -g3 -Wall -Wextra -c -fmessage-length=0 -Wcast-qual -o main.o “…\main.c”
…\main.c: In function ‘main’:
…\main.c:155:3: warning: implicit declaration of function ‘vTraceEnable’ [-Wimplicit-function-declaration]
…\main.c:155:17: error: ‘TRC_START’ undeclared (first use in this function)
…\main.c:155:17: note: each undeclared identifier is reported only once for each function it appears in
…\main.c:161:3: warning: implicit declaration of function ‘uiTraceStart’ [-Wimplicit-function-declaration]
…\main.c: In function ‘vApplicationMallocFailedHook’:
…\main.c:195:2: warning: implicit declaration of function ‘vAssertCalled’ [-Wimplicit-function-declaration]
…\main.c: At top level:
…\main.c:275:6: warning: conflicting types for ‘vAssertCalled’ [enabled by default]
…\main.c:195:2: note: previous implicit declaration of ‘vAssertCalled’ was here
…\main.c: In function ‘prvSaveTraceFile’:
…\main.c:320:3: warning: implicit declaration of function ‘vTraceStop’ [-Wimplicit-function-declaration]
…\main.c:326:12: error: ‘RecorderDataPtr’ undeclared (first use in this function)
…\main.c:326:37: error: ‘RecorderDataType’ undeclared (first use in this function)
…\main.c: In function ‘prvExerciseHeapStats’:
…\main.c:384:8: warning: variable ‘xMetaDataOverhead’ set but not used [-Wunused-but-set-variable]
…\main.c:383:52: warning: variable ‘xMinimumFreeBytes’ set but not used [-Wunused-but-set-variable]

16:09:50 Build Finished (took 16s.654ms)

Compilation error as

Description Resource Path Location Type
‘RecorderDataPtr’ undeclared (first use in this function) main.c /RTOSDemo line 326 C/C++ Problem
Description Resource Path Location Type
‘RecorderDataType’ undeclared (first use in this function) main.c /RTOSDemo line 326 C/C++ Problem
Description Resource Path Location Type
‘TRC_START’ undeclared (first use in this function) main.c /RTOSDemo line 155 C/C++ Problem

How did you obtain the code? Git clone of the release tag, zip file from the FreeRTOS.org site, or another method?

I just tried the zip file download from freertos.org and the code generated warnings, which it shouldn’t, but not any errors. Compiler output attached as a .c file so I can upload to the forum.

compiler-output.c (43.7 KB)

Hi @soumyaims,

FreeRTOS mainline has issues with it’s two Win32 projects because of a PR to update the trace recorder. I have this PR up that fixes the MSVC demo - its currently in a good state Fix and improve WIN32-MSVC demo in FreeRTOS/Demo. by jasonpcarroll · Pull Request #891 · FreeRTOS/FreeRTOS · GitHub and should get merged in today.

I am starting on fixing this project on mainline as well today - you can expect a PR for it sometime today and I would hope it would be merged tomorrow or day after. Will update you here.

Best,

Jason Carroll

PR that fixes this. Under review. Fix MingW RTOS demo. by jasonpcarroll · Pull Request #897 · FreeRTOS/FreeRTOS · GitHub

Hi Jason,

I downloaded the Pull Request #897 and I am getting the following error:

.\main.c:349:26: error: ‘TRC_START’ undeclared (first use in this function)
…\main.c:368:12: error: ‘RecorderDataPtr’ undeclared (first use in this function)
…\main.c:368:37: error: ‘RecorderDataType’ undeclared (first use in this function)
…\main.c:559:35: error: ‘TRC_START’ undeclared (first use in this function)

Simply I imported the project through project file and linked with include and lib of freertos and I am getting this error.

Regards,

Soumya

Hi Jason,
After including one header file path, It started showing some other issues as

E:\New_Project\latest_freertos\patch3\FreeRTOS-fa5f7c70b006aa928adb78031edb3ef1049b2f86\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include/trcRecorder.h:133:27: fatal error: trcStreamPort.h: No such file or directory

This header file in not there in the entire project.

Regards,

Soumya

Where is this header file included? Are you trying to build a project from this fork? Can you share the exact instructions/commands that you used to clone and build the code?

Hi Jason,

With your #897 github version , I am getting the compilation error as :

FreeRTOS-fa5f7c70b006aa928adb78031edb3ef1049b2f86\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\config/trcConfig.h:26:2: error: #error “Trace Recorder: Please include your processor’s header file here and remove this line.”

E:\New_Project\latest_freertos\patch3\FreeRTOS-fa5f7c70b006aa928adb78031edb3ef1049b2f86\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include/trcHardwarePort.h:18:3: error: #error “TRC_CFG_HARDWARE_PORT not selected - see trcConfig.h”

FreeRTOS-fa5f7c70b006aa928adb78031edb3ef1049b2f86\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include/trcHardwarePort.h:91:3: error: #error “TRC_CFG_HARDWARE_PORT not selected - see trcConfig.h”

New_Project\latest_freertos\Richard\FreeRTOS-main\FreeRTOS-Plus\Source\FreeRTOS-Plus-Trace\Include/trcRecorder.h:133:27: fatal error: trcStreamPort.h: No such file or directory

Please share me the validated/tested working copy of the demo project of win32-mingw .
Regards,

Soumya

The PR is now merged into main so you can pull mainline FreeRTOS/FreeRTOS then follow the below steps.

Steps I follow are this
I am using Eclipse IDE 2022-09 btw.

Open Eclipse
File->Import->General->Existing Projects into Workspace
Set Root directory to the FreeRTOS/Demo/WIN32_MingW folder
Select the RTOSDemo project
Click finish

The RTOSDemo project is now in the Project Explorer.

I then click the RTOSDemo project then hit the build button at the top and it builds fine for me as well as several other people I’ve had try it.

I have also added a Makefile if you have make to the directory. It will also build the demo with just the command make in the directory.