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

Когда вы генерируете повторно используемый код, MATLAB® Coder™ поддерживает динамическое распределение:

  • Функциональные переменные, которые являются слишком большими для стека

  • Постоянные переменные

  • Глобальные переменные

Он генерирует заголовочный файл, primary_function_name_types.h, которые вы должны включить при использовании сгенерированного кода. Этот файл заголовка содержит следующие структуры:

  • primary_function_nameStackData

    Эта структура содержит выделенную пользователем память. Вы должны передать указатель на эту структуру как первый параметр всем функциям, которые ее используют:

    • Непосредственно, потому что функция использует поле в структуре.

    • Косвенно, потому что функция передает структуру вызываемой функции.

    Если алгоритм использует постоянные или глобальные данные, primary_function_nameStackData структура также содержит указатель на primary_function_namePersistentData структура. Если вы включаете этот указатель, вам нужно передать только один параметр каждой вызывающей функции.

  • primary_function_namePersistentData

    Если ваш алгоритм использует постоянные или глобальные переменные, MATLAB Coder предоставляет для них отдельную структуру. Структура выделения памяти содержит указатель на эту структуру. Поскольку у вас есть отдельная структура для стойких и глобальных переменных, можно выделять память для этих переменных один раз и делиться ими со всеми потоками. Однако, если между потоками нет связи, можно выделить память для этих переменных на каждый поток.

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