Execute Real-Time Application with S-Functions in Run in Kernel Mode
You can use S-functions in Run in Kernel mode when the
S-functions are self-contained. For example, the S-functions only call a limited subset
of the standard C library, such as math and string functions and do not call file I/O,
console I/O, or Windows API functions. An example of not-self-contained S-function would
be a function that needs to #include <windows.h>.
Note that being able to simulate an S-function with other code generation targets
—such as grt.tlc or ert.tlc —does not a prove that
it can be simulated with sldrt.tlc. For example, S-functions that are
linked with dynamically linked libraries (DLLs) on Windows generally do not simulate
with Simulink®
Desktop Real-Time™ because the DLLs are not available to the real-time kernel.
In particular, the following functions are not supported in the C source code:
File I/O (
fopenand others)Process management (
spawn,exit, and others)Signals and exceptions (
signal,longjmp,__tryand others)Time functions (
clockand others)Any functions from the Windows API
The following C library functions are supported for use with Simulink Desktop Real-Time:
Data conversion functions:
abs,atof,atoi,atol,itoa,labs,ltoa,strtod,strtol,strtoul,ultoa,Memory allocation functions:
calloc,free,malloc,Memory manipulation functions:
_memccpy,memcpy,memchr,memcmp,_memicmp,memmove,memset,String manipulation functions:
strcat,strchr,strcmp,strcpy,strcspn,_strdup,_stricmp,strlen,_strlwr,strncat,strncmp,strncpy,_strnset,strpbrk,strrchr,_strrev,_strset,strspn,strstr,strtok,_strupr,Mathematical functions:
acos,asin,atan,atan2,ceil,cos,cosh,div,exp,fabs,floor,fmod,frexp,ldexp,ldiv,log,log10,max,min,modf,pow,rand,sin,sinh,sqrt,srand,tan,tanh,uldiv,Character class tests and conversion:
isalnum,isalpha,_isascii,iscntrl,isdigit,isgraph,islower,isprint,ispunct,isspace,isupper,isxdigit,isxupper,isxlower,_toascii,tolower,toupper,Searching and sorting:
bsearch,qsort,Dummy functions - (can be there but do nothing)
exit,Console I/O:
fprintf,printf,