Можно использовать S-функции в Simulink® Desktop Real-Time™ режим external mode, когда S-функции являются автономными. Например, S-функции вызывают только ограниченное подмножество стандартной библиотеки C, такое как математические и строковые функции и не вызывают файла ввода-вывода, ввода-вывода консоли или Windows API. Примером не автономной S-функции будет функция, которая должна #include <windows.h>.
Обратите внимание, что возможность симулировать S-функцию с другими целями генерации кода - такими как grt.tlc, ert.tlc, или slrealtime.tlc- не доказывает, что это может быть моделировано с помощью sldrt.tlc. Например, S-функции, которые связаны с динамически связанными библиотеками (DLL) в Windows, обычно не моделируются с Simulink Desktop Real-Time, потому что DLL недоступны для ядра реального времени.
В частности, в исходном коде C не поддерживаются следующие функции:
Файловый ввод-вывод (fopen и др.)
Управление процессами (spawn, exit, и др.)
Сигналы и исключения (signal, longjmp, __try и др.)
Функции времени (clock и др.)
Любые функции из Windows API
Для использования с Simulink Desktop Real-Time поддерживаются следующие функции библиотеки C:
Функции преобразования данных: abs, atof, atoi, atol, itoa, labs, ltoa, strtod, strtol, strtoul, ultoa,
Функции выделения памяти: calloc, free, malloc,
Функции манипуляции с памятью: _memccpy, memcpy, memchr, memcmp, _memicmp, memmove, memset,
Функции манипуляции строками: strcat, strchr, strcmp, strcpy, strcspn, _strdup, _stricmp, strlen, _strlwr, strncat, strncmp, strncpy, _strnset, strpbrk, strrchr, _strrev, _strset, strspn, strstr, strtok, _strupr,
Математические функции: 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,
Тесты классов символов и преобразование: isalnum, isalpha, _isascii, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, isxupper, isxlower, _toascii, tolower, toupper,
Поиск и сортировка: bsearch, qsort,
Фиктивные функции - (могут быть там, но ничего не делать) exit,
Консольные вводы-выводы: fprintf, printf,