Использование памяти

Уменьшите пространство оперативной памяти, ПЗУ и стека, используемое сгенерированным кодом

Управление потреблением памяти путем определения, задает ли генератор кода переменные локально или глобально и как данные передаются в функции подсистемы. Измените настройки строения, чтобы уменьшить объем памяти для хранения данных.

Генератор кода уменьшает потребление ПЗУ путем объединения конструкций потока управления, удаления путей с мертвым кодом и кода для блоков, которые не оказывают влияния на вычислительные результаты. Можно дополнительно уменьшить потребление ПЗУ путем удаления кода, который может вам не понадобиться, такого как код инициализации, функции сброса и отключения и защитный код.

Темы

Задайте переменные локально или глобально

Настройка распределения пространства стека

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

Уменьшите использование памяти для сигналов

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

Включите и повторно используйте выходы локальных блоков в сгенерированном коде

Где это возможно, генератор кода объявляет выходы блоков как локальные переменные, так что он может потенциально повторно использовать эти переменные.

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

Генератор кода пытается повторно использовать глобальные переменные.

Оптимизация использования глобальных переменных

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

Оптимизируйте сгенерированный код путем передачи выходов переиспользуемой подсистемы в качестве отдельных аргументов

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

Уменьшите глобальные переменные в неотменяемых функциях подсистемы

Чтобы уменьшить глобальную ОЗУ для непереиспользуемой подсистемы, сгенерируйте функциональный интерфейс, который пропускает данные через аргументы вместо глобальных переменных.

Уменьшите размер кода

Удаление кода инициализации нуля

Управляйте, инициализировать ли внутренние данные (состояния блоков и выходы блоков) и внешние данные (корневые входные и выходные порты, значение которых равно нулю) в сгенерированном коде.

Удалите функции сброса и отключения из сгенерированного кода

Удалите недоступные (dead-code) образцы функций сброса и отключения из сгенерированного кода для систем на основе ERT, которые включают иерархии ссылок на модели.

Встроенные инвариантные сигналы

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

Встроенные числовые значения параметров блоков

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

Оптимизация сгенерированного кода путем консолидации избыточных операторов if-else

Генератор кода оптимизирует сгенерированный код путем объединения if-else операторы, которые имеют одно и то же условие.

Устранение путей мертвого кода в сгенерированном коде

Генератор кода устраняет мертвые (то есть неиспользованные) пути кода из сгенерированного кода.

Удалите код для блоков, которые не влияют на вычислительные результаты

Генератор кода увеличивает скорость выполнения и уменьшает потребление ПЗУ путем удаления кода, который не влияет на вычислительные результаты.

Оптимизируйте сгенерированный код путем объединения нескольких конструкций

Генератор кода использует анализ зависимостей данных для объединения for Конструкции для уменьшения размера статического кода и ответвления во время выполнения.

Сокращение памяти для хранения данных

Переиспользуйте буферы разных размеров и размерностей

Повторно используйте буферы для матриц с различными размерами и формами.

Уменьшите использование памяти для логических переменных и переменных строения состояния

Уменьшите объем памяти, в которой хранятся переменные строения состояния и Boolean переменные.

Оптимизируйте использование памяти для счетчиков времени

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

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

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

Оптимизируйте сгенерированный код путем упаковки булевых данных в битовые поля

Генератор кода уменьшает потребление ОЗУ путем упаковки булевых данных в 1-битные битовые поля.

Вектор операции

Генератор кода уменьшает память стека путем замены временных локальных массивов локальными переменными.

Задайте тип данных с одной точностью для встраиваемого приложения

Сгенерируйте код, типы данных которого с плавающей точностью являются только одной точностью, например, для нацеливания на процессор с одной точностью.

Сгенерируйте эффективный код путем определения типов данных для параметров блоков

Чтобы сгенерировать более эффективный код, совпадайте типы данных параметров с типами данных сигнала или сохраняйте параметры в меньших типах данных.

Тип оператора управления в сгенерированном коде

Сгенерируйте код с логическими или побитовыми операторами или комбинацией обоих операторов.