I am using the industrial PC port of FreeRTOS V4.2.1 and the Open Watcom IDE V1.6 to compile a DOS 16-bit executable. Some of the functions in the graphics library (Watcom lib286dosgraph.lib) produce unpredictable results when used in tasks scheduled by FreeRTOS. When calling the functions from a loop in main() and not starting the FreeRTOS scheduler, everything works OK, but when calling from a task after having started the scheduler, something like this happens: _setfont(): Wrong font is being selected. (The graphics system has been initialized by _setvideomode() and fonts have been registered successfully by _registerfonts()). _rectangle(): Not drawn. _setcolor(): Wrong color. _outgtext(): Wrong text and wrong length of the string. I have 6 tasks and I have verfied that they are scheduled correctly by FreeRTOS. I have allocated a lot of memory (20 kbytes) for stack storage in each task, so it is hardly a stack overflow problem. Could it be a compiler switch or a configuration parameter that I have missed ?
Are the graphics libraries reentrant? If not, are you accessing the library from more than one task?
I am accessing the library from only one task, so there is no reentrancy problems.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.