These configuration options can be placed in the proj_config.h file.
TIROS_MAX_ISR_NESTING [1]:
Define the maximum nesting level for ISRs. TiROS supports nested interrupts. By default, TIROS_MAX_ISR_NESTING is set to 1. This specifies that only one ISR will run at a time (interrupts should not be enabled within ISRs.) TiROS cannot enforce this, so the user should ensure that interrupts are not reenabled within an ISR beyond this defined level.
(Integer value) The maximum number of tasks. This should also include the idle task.
TIROS_ENABLE_MUTEX [1 | 0] :
By default mutexes are enabled. If they should be disabled, then define TIROS_ENABLE_MUTEX to be 0 in the proj_config.h file.
TIROS_MAX_MUTEXES [255]:
Maximum number or mutexes that can be held by a single task. This can be overridden by defining TIROS_MAX_MUTEXES in proj_config.h
TIROS_ALLOW_SLEEP_W_MUTEX [0 | 1] :
By default TiROS does not allow tasks that are holding a mutex to sleep. An error code is returned. This is done to prevent unbounded locking. This behaviour can be overridden by defining this directive to 1 in the user's configuration file.
TIROS_PRIO_INHERIT_PROTOCOL:
Define this in the user configuration file, if priority inheritance will be used. By default, priority ceiling will be used.
TIROS_ENABLE_CSEM [1 | 0] :
By default counting semaphores are enabled. If they should be disabled, then define TIROS_ENABLE_CSEM to be 0 in the proj_config.h file.
TIROS_ENABLE_MSGQ [1 | 0] :
By default message queues are enabled. If they should be disabled, then define TIROS_ENABLE_MSGQ to be 0 in the proj_config.h file.
TIROS_ENABLE_EFLAG [1 | 0] :
By default event flags are enabled. If they should be disabled, then define TIROS_ENABLE_EFLAG to be 0 in the proj_config.h file.
TIROS_USER_CTXT_UPCALL:
This can be used to perform user defined functions when tasks are switched. This is an upcall made by the scheduler upon task switch. If this is defined, the user_ctxt_upcall function defined in the API MUST be implemented by the user. This feature can be used in imaginative ways to set task-specific settings. For example, a user can implement per task power control.
The debugging messages are output by calling the putchar() function. This function may be adapted by the user to direct the output to a serial port, or to a file depending on the hardware platform.
Use code downward compatible with an ISO C90 standard compiler. The code of concern is the definition of the message queue structure. Some older compilers or strict C++ compilers don't support zero-length array/flexible arrays/variable-length array/. These are useful as the last element of a structure which is really a header for a variable length object. TiROS uses such a construct to save memory when initializing message queues. The default behaviour is to work with GCC or any ISO C99 standard compiler. If your compiler complains that struct msgQ or msgQ_t has incomplete type or that the sizeof operator cannot be applied to this struct, then define this to be 1 in your proj_config.h file.
TiROS Data Type configuration:
Some of the data types used within TiROS data structures can be modified by the user. Normally, this is not necessary. In special cases, the user may want to override the defaults. For example, by default, the counting semaphores use an 8 bit integer (signed) to represent count. This limits the maximum count to 127. The user can override this default and force TiROS to use a 16 bit integer for the count. This vastly increases the count range. For a comprehensive list of these options, see tr_types.h.
Other options:
There can be other hardware port specific configuration options. For a description of this, look in the tr_port.h file in the appropriate port directory.
TiROS User Manual: Last Updated on Fri Jul 20 10:52:24 2007