Можно использовать 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
,