Open Watcom graphics lib problems / FreeRTOS

per_k wrote on Thursday, July 26, 2007:

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 lib286\dos\graph.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 ?

davedoors wrote on Friday, July 27, 2007:

Are the graphics libraries reentrant?  If not, are you accessing the library from more than one task?

per_k wrote on Friday, July 27, 2007:

I am accessing the library from only one task, so there is no reentrancy problems.