В этом примере показано, как использовать блок C Caller для вызова устаревших функций C, которые реализуют поиск N-мерной таблицы.
В этом примере устаревшие функции C определены в lookupTable.h, и реализован в directLookupTableND.c. Определения типов, используемые в этом примере, можно найти в your_types.h.
Чтобы включить вызов функций C из блока C Function, в модели укажите файл заголовка и исходный файл в панели Параметры конфигурации > Цель симуляции. Прототип наследственной функции, вызываемой в этом примере, является:
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 Caller, nbDims является блок константой, и tableIdx - вход в блок. Значение, возвращенное унаследованной функцией C, является выходом блока.
model = 'slexCCallerLookupTable'; open_system(model); sim(model); slcc('clearCustomCodeModules');
