Примечание
Чтобы сгенерировать код с фиксированной точкой из MATLAB® у вас должны быть как продукт Fixed-Point Designer™, так и продукт MATLAB Coder™. У вас также должен быть компилятор C.
Этот пример показывает, как сгенерировать код для простой функции, которая умножает и накапливает два входных значения. Это тип кода, который можно встраивать во внешнее оборудование. Функция является
function acc = mult_acc(x,a,acc)
acc = accumpos(acc,x*a);
Этот код определяет входы испытательного стенда, настраивает необходимые свойства генерации кода и генерирует код. Входы испытательного стенда заданы как номера с фиксированной точкой. The x
вход является случайным числом, a
равен 0,9, и аккумулятор, acc
, инициализируется в 0. coder.HardwareImplementation
объект задает свойства внешнего оборудования, которые влияют на сгенерированный код. Примеры задают 40-битный аккумулятор. coder.CodeConfig
объект имеет свойства, которые непосредственно влияют на генерацию кода. codegen
команда принимает функцию, объект строения как входные параметры и генерирует встраиваемый код С
x = fi(rand,true,16,15); a = fi(0.9,true,16,15); acc = fi(0,true,40,30); %% hi = coder.HardwareImplementation; hi. ProdHWDeviceType = 'Generic->Custom' hi. TargetHWDeviceType = 'Generic->Custom' hi.TargetBitPerLong = 40; hi.ProdBitPerLong = 40; hc = coder.config('lib'); hc.HardwareImplementation = hi; hc.GenerateReport = true; codegen mult_acc -config hc -args {x,a,acc}
Сгенерированный код C:
/* Include Files */ #include "mult_acc.h" /* Function Definitions */ /* * Arguments : short x * short a * long *acc * Return Type : void */ void mult_acc(short x, short a, long *acc) { *acc += x * a; }
Примечание
Список функций, поддерживаемых для генерации кода, см. в разделах Функции и Объекты, Поддерживаемые для Генерации кода C/C + +.