Я не думаю, что то, что вы предлагаете, сократит время компиляции, так как вы, похоже, подразумеваете, что большую часть времени тратится на компиляцию сгенерированных исходных файлов, то есть замедляет работу компилятор C, а не Simulink.
Если вы создаете мекс-файл (S-функцию) из этой подсистемы, вы можете выбрать встроенную S-функцию или не встроенную . Если подсистема, которую вы конвертируете, не является тривиальной (и я предполагаю, что это не так), вы захотите выбрать первый вариант, так как последний строго ограничен. Однако в обоих случаях ваш компилятор C по-прежнему будет иметь исходные файлы для компиляции. В встроенном случае это будут исходные файлы, которые выкладывает TLC, которые вы написали, а в другом случае это будут исходные файлы, которые вы скомпилировали для создания самой S-функции.
Решение, которое я могу придумать, состоит в том, чтобы дублировать функциональные возможности подсистемы-нарушителя в C и использовать компилятор встроенной цели для создания статической библиотеки. Кроме того, создайте встроенную S-функцию, которая имитирует эту подсистему в симуляции. В файле TLC для этой S-функции вы просто попросите Simulink включить соответствующий заголовочный файл для статической библиотеки, а затем выполните вызовы функций, которые ссылаются на библиотеку. Это избавляет компилятор от необходимости перекомпилировать исходный код во время каждой сборки модели.
Вам также необходимо выяснить, как передать компоновщику директиву для ссылки на статическую библиотеку при построении модели (при условии, что процесс генерации кода автоматически вызывает встроенный компилятор для сборки кода).