📄 vrtx.txt
字号:
Overview========The VRTX (R) emulation module on top of Xenomai currently mimicksthe following services:Known variations from VRTX==========================* Generally speaking, control blocks are always obtained from Xenomai'sheap instead of VRTX workspace. However, VRTX workspace is stillinitialized and made available to the application code (See "Moduleparameters").* There is only a single stack per task instead of distinctsupervisor/user mode stacks. The sum of the 'user' and 'sys'parameters is used in sc_tecreate() to determine the total task size.If this sum is lower than 1024 (bytes), ER_MEM is returned.* The maximum number of task identifiers is currently a staticparameter defaulting to 512 (i.e. 1 - 511) which can be changed atcompile-time in api/defs.h. sc_tcreate()/sc_tecreate() calls mayreturn ER_TCB when tid is passed as -1 and no unique identifierbetween 256 and (VRTX_MAX_TID - 1) is available.* The maximum number of partition identifiers is currently a staticparameter defaulting to 32 (i.e. 0 - 31) which can be changed atcompile-time in api/defs.h. sc_pcreate() call may return ER_IIPwhen pid is passed as -1 and no unique partition identifier isavailable.* Instead of being obtained from the system workspace, the memoryneeded for partition management is taken from the storage areaprovided by the application code. This means that a part of theavailable storage given to sc_pcreate() and sc_pextent() is consumedby the partition bookkeeping code and won't be available to theapplication as allocatable memory. Each extent consumes about 28 bytesfor internal purposes, and 36 bytes are used at the begining of eachpartition. Please refer to api/pt.h to get the exact size of theextent and partition control blocks. Since a first extent isautomatically created for the new partition using its initial memory,sc_pcreate() will need 28 + 36 = 64 bytes for its internal bookkeepinginformation.* VRTX object control blocks (except for tasks) are obtained from anid. generator that can deliver up to VRTX_MAX_CB uniqueidentifiers. Object creation routines (except sc_t[e]create()) mayreturn ER_NOCB whenever no unique identifier is available or thesystem memory is exhausted.* sc_tcreate() creates a stack of the default stack size whichcan be set through the module variable "task_stacksize_arg" (seebelow). This size cannot be lower than 1k. Initial mode for task ispreemptable, time sliced, with floating-point support, interruptenabled, ready to run.* Attempting to suspend a task while the scheduler is locked alwaysbegets a fatal error.* sc_tinquiry() behaves the VRTX32 way, i.e. calling this service onbehalf of an ISR with a null task identifier allows to check if thesystem is idle.* sc_screate() creates 32bit (instead of 16bit) counting semaphores.* sc_getc()/sc_waitc()/sc_acceptc() calls are not implemented in theemulator.Module parameters=================The following parameters can be passed at startup to the VRTXAPI emulation module:- "workspace_size_arg", size of VRTX workspace (in bytes). Defaults to 32k.- "tick_hz_arg", clock tick period. Defaults to 100 Hz.- "task_stacksize_arg", size of each VRTX task stack. Defaults to 4k.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -