exponenta event banner

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

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

  • Переменные функции, которые слишком велики для стека

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

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

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

  • primary_function_nameStackData

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

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

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

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

  • primary_function_namePersistentData

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

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