Конструктивные соображения при записи КОДА MATLAB для генерации кода

При записи кода MATLAB®, который вы хотите преобразовать в эффективный, автономный код C/C++, необходимо рассмотреть следующее:

  • Типы данных

    C и C++ используют статический контроль типов. Чтобы определить типы ваших переменных перед использованием, MATLAB Coder™ требует полного присвоения на каждую переменную.

  • Калибровка массивов

    Массивы переменного размера и матрицы поддержаны для генерации кода. Можно задать входные параметры, выходные параметры и локальные переменные в функциях MATLAB, чтобы представлять данные, который отличается по размеру во время выполнения.

  • Memory

    Можно выбрать, использует ли сгенерированный код статическое или динамическое выделение памяти.

    С динамическим выделением памяти вы потенциально используете меньше памяти за счет времени, чтобы управлять памятью. Со статическим ЗУ вы получаете лучшую скорость, но с более высоким использованием памяти. Большая часть кода MATLAB использует в своих интересах динамические функции калибровки в MATLAB, поэтому динамическое выделение памяти обычно позволяет вам сгенерировать код из существующего кода MATLAB, не изменяя его очень. Динамическое выделение памяти также позволяет некоторым программам компилировать, даже когда верхние границы не могут быть найдены.

    Статическое выделение уменьшает объем потребляемой памяти сгенерированного кода, и поэтому подходит для приложений, где существует ограниченная сумма доступной памяти, такой как встраиваемые приложения.

  • Скорость

    Поскольку встраиваемые приложения должны запуститься в режиме реального времени, код должен быть достаточно быстрым, чтобы соответствовать необходимой тактовой частоте.

    Улучшить скорость сгенерированного кода:

    • Выберите подходящий C или/C ++ компилятор. Компилятор по умолчанию, что предоставления MathWorks® с MATLAB для Windows® 64-битные платформы не являются хорошим компилятором для производительности.

    • Рассмотрите проверки на этапе выполнения отключения.

      По умолчанию код, сгенерированный для вашего кода MATLAB, содержит проверки целостности памяти и проверки скорости отклика. Обычно эти проверки приводят к большему количеству сгенерированного кода и более медленного выполнения MEX-функции. Отключение проверок на этапе выполнения обычно приводит к оптимизированному сгенерированному коду и более быстрому выполнению MEX-функции. Отключите эти проверки, только если вы проверили, что границы массивов и проверка размерности являются ненужными.

Смотрите также

Была ли эта тема полезной?