Свежо предание, но:
Писал Владимиру, напишу и тут. Почему мы резко против компиляции из "ST".
Тема компилятора нами вообще не рассматривается, т.к. отладка компилятора до промуровня – это много, очень много времени на тесты, валидацию компилятора.
И "решить наскоком" эту проблему невозможно.
Это ненадёжно. А значит такое решение нельзя использовать в промышленности, т.к. в результате отказа (а кто за него отвечать будет?) возможны последствия.
С другой стороны, линкер (генератор prg), работающий с набором простых ФБ (с полиморфизмом, уже поддерживается), редактор (пока есть простой от 3S), поддерживающий полиморфизм и ассемблер от TI не теряют в производительности, не имеют скрытых проблем при компиляции сложного взаимосвязанного кода и визуально гораздо удобнее для разработки ПО, чем написание на ST.
Тестирование каждого отдельного ФБ просто в силу их простоты.
Концепция с принудительным хранением результатов работы каждого ФБ в ОЗУ или регистровой памяти (этого вообще в компиляторе с ST нет) лишена проблем с организацией и предсказуемостью обратных связей и циклов. И при этом добавление ещё одного ФБ в программу в любом месте не нарушает работу остальных ФБ. Чего нельзя сказать о монолитном коде.
Тем более, что ST не позволяет без ассемблерных вставок работать с периферией и особыми функциями PRU.
Также, что чрезвычайно важно, Ваш компилятор сейчас не генерирует код с константным временем исполнения (поправьте, если я ошибаюсь). Как результат, поведение программы не соответствует стандартам программ реального времени.
Однако, использование компилятора (а точнее транслятора на ASM) с "ST" для генерации кода отдельных ФБ перспективно. Но для генерации кода всей программы – см. вышеописанные проблемы.