В этом примере показано, как использовать блок 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');