В этом примере показано, как использовать блок C Caller, чтобы вызвать наследие C функции, которые реализуют N-мерный поиск по таблице.
В этом примере наследие C функции заданы в lookupTable.h
, и реализованный в directLookupTableND.c
. Определения типа, используемые в этом примере, могут быть найдены в your_types.h
.
Чтобы позволить вызвать функции C от Функционального блока C, в модели, задают заголовочный файл и исходный файл в Параметрах конфигурации> Целевая панель Симуляции. Прототип устаревшей функции, названной в этом примере:
FLT directLookupTableND(const FLT *tableND, const UINT32 nbDims, const UINT32 *tableDims, const UINT32 *tableIdx)
где FLT
определение типа типу с плавающей точкой и UINT32
определение типа 32-битному целому числу без знака.
const FLT *tableND
Таблица
const UINT32 nbDims
- Размерность таблицы
const UINT32 *tableDims
- Размер таблицы
const UINT32 *tableIdx
- Табличный индекс
В блоке C Caller, tableND
и tableDims
сопоставлены с параметрами блоков Вызывающей стороны C, nbDims
признак группы и tableIdx
вход с блоком. Значением, возвращенным наследием C функция, является выход блока.
model = 'slexCCallerLookupTable'; open_system(model); sim(model); slcc('clearCustomCodeModules');