• Регистрация
Н/Д
Н/Д 0.00
н/д

Интегрирование C-кода в s-function

08.10.2019

Добрый день! Не могу разобраться, как с помощью s-function интегрировать сгенерированный код в simulink для проверки корректности работы сгенерированного кода. При кодогенерации создались файлы filename.с, filename.h, filename_data.с. Кодогенерацию выполнял со следующми параметрами: язык кода С, целевой процессор Texas Instruments TMS570 Cortex-R4. При написании в s-function 'filename' появляется ошибка:

Error while obtaining sizes from MEX S-function 'filename' in 'modelname/S-function'.

Caused by: Invalid MEX-file 'D:\MATLAB\filename.mexw64':'D:\MATLAB\filename.mexw64' is not a valid shared library  

Теги

    08.10.2019

    Лучший ответ

    Ответы

    • Nikolay
      Nikolay+2194.92
      9.10.2019 09:26

      Добрый день,
      В данном случае интеграция помощью S-функции не сработает.
      Для того что бы проверить что код и модель работают одинаково надо провести PIL-тестирование. Это делается на уровне пакетов поддержки оборудования.

      Можно взять вот эту демку:
      https://www.mathworks.com/matlabcentral/fileexchange/46332-ti-hercules-pil-target-for-rm48
      или посмотреть на пакет поддержки оборудования:
      https://www.mathworks.com/matlabcentral/fileexchange/58176-embedded-coder-support-package-for-arm-cortex-r-processors

      • Andrey Ermakov
        Andrey Ermakov +56.93
        11.10.2019 17:22

        Для интеграции кода нужно воспльзоваться любым из способов, например LCT или на худой конец S_bunction_builder блоком.

        Ознакомится с LCT можно

        https://www.mathworks.com/help/simulink/slref/legacy_code.html?s_tid=doc_ta