In prior versions of embOS that I used with IAR Workbench and ARM7/9 CPUs there was documentation for configuring IAR's DLIB to be thread safe by somehow configuring it to use embOS mutexes for certain operations. This involved wither rebuilding DLIB with some special headers and/or calling OS_INIT_SYS_LOCKS() at some point in the system initialization.
I'm currently working with an embOS built for the Cortex M3 (embOS 3.60d, soon to be 3.80h I think). However, there's no mention of this in documentation - all it says in the embOS_CM3_IAR.pdf document is (Chapter 5 - Compiler Specifics):
I'm currently working with an embOS built for the Cortex M3 (embOS 3.60d, soon to be 3.80h I think). However, there's no mention of this in documentation - all it says in the embOS_CM3_IAR.pdf document is (Chapter 5 - Compiler Specifics):
I seem to recall that this is where other versions of embOS that I've used described using OS_INI_SYS_LOCKS() and/or the other options. Has this support been removed (whether by Segger or IAR)?embOS for CM3 and IAR compiler may be used with standard IAR system libraries for most of all projects. Heap management and file operation functions of standard system libraries are not reentrant and can therefore not be used with embOS, if non thread safe functions are used from different tasks. For heap management, embOS delivers its own thread safe functions which may be used. These functions are described in embOS CPU independent manual.