Специфичные для оборудования параметры конфигурации для генерации кода C/C++ из кода MATLAB
Объект coder.HardwareImplementation
содержит специфичные для оборудования параметры конфигурации, которые codegen
использует для генерации статической библиотеки, динамически подключаемой библиотеки или исполняемой программы.
Чтобы использовать объект coder.HardwareImplementation
, необходимо сопоставить его с объектом настройки (объект coder.CodeConfig
или объект coder.EmbeddedCodeConfig
), что вы передаете codegen
. Чтобы создать объект coder.HardwareImplementation
и сопоставить его с объектом настройки, создайте объект настройки при помощи coder.config
.
Свойства Access coder.HardwareImplementation
одним из этих способов:
Свойство HardwareImplementation
связанного объекта настройки. Например:
cfg = coder.config('lib');
cfg.HardwareImplementation.ProdHWDeviceType
Диалоговое окно для связанного объекта настройки. Смотрите доступ к Свойствам Аппаратной реализации с Диалоговым окном.
По умолчанию свойства coder.HardwareImplementation
задают характеристики хоста - компьютера MATLAB®. Чтобы задать различное устройство, измените свойство ProdHWDeviceType
. Аппаратное устройство определяет значения других специфичных для устройства свойств и свойств, которые можно изменить.
Чтобы создать объект coder.HardwareImplementation
, используйте coder.config
, чтобы создать объект настройки (объект coder.CodeConfig
или объект coder.EmbeddedCodeConfig
) для генерации автономного кода. Когда coder.config
создает объект настройки, он также создает объект coder.HardwareImplementation
. coder.config
устанавливает свойство HardwareImplementation
объекта настройки к объекту coder.HardwareImplementation
.
Описание
Описание объекта'class HardwareImplementation: Hardware implementation specifications.'
(значение по умолчанию) | вектор символовОписание объекта coder.HardwareImplementation
, заданного как вектор символов.
Имя
Имя объекта'HardwareImplementation'
(значение по умолчанию) | вектор символовИмя объекта, заданное как вектор символов.
ProdEqTarget
— Эквивалентность производства и характеристик целевого компьютераtrue
(значение по умолчанию) | false
Эквивалентность производства и цели (тест) характеристики оборудования, заданные как true
или false
.
Объект coder.HardwareImplementation
имеет два набора аппаратных свойств — один для характеристик производственного оборудования и один для характеристик цели (тест) оборудование. По умолчанию codegen
использует свойства производственного оборудования. Как правило, вы оставляете набор ProdEqTarget
true
и работаете только с производственными свойствами.
Установка ProdEqTarget
к false
является расширенной функцией, которая включает свойства целевого компьютера. Если вы изменяете ProdEqTarget
на false
, codegen
использует свойства для целевого компьютера и генерирует код, чтобы эмулировать поведение производственного оборудования на целевом компьютере. Если вы устанавливаете ProdEqTarget
на false
для тестирования, прежде чем вы развернете сгенерированный код на производственном оборудовании, установите ProdEqTarget
на true
и регенерируете код.
В начале процессора Embedded Coder® в цикле (PIL) выполнение программное обеспечение проверяет свойства аппаратной реализации со ссылкой на целевой компьютер, на котором запускается выполнение PIL. Если ProdEqTarget
является true
, программное обеспечение проверяет производственные свойства (свойства, которые запускаются с Prod
). Если ProdEqTarget
является false
, программное обеспечение проверяет целевые свойства (свойства, которые запускаются с Target
). См. программное обеспечение Code Verification Through в цикле и Процессор в Выполнении цикла (Embedded Coder).
ProdBitPerChar
— Длина в битах типа данных char
C Длина в битах типа данных char C, что производственные аппаратные поддержки, заданные как целочисленное значение от 8 до 32. Значение должно быть кратным 8.
ProdBitPerDouble
— Длина в битах типа данных double
CЭто свойство доступно только для чтения.
Длина в битах C удваивает тип данных что производственные аппаратные поддержки.
ProdBitPerFloat
— Длина в битах типа данных с плавающей точкой C Это свойство доступно только для чтения.
Длина в битах типа данных с плавающей точкой C, что производственные аппаратные поддержки.
ProdBitPerInt
— Длина в битах типа данных int
C Длина в битах типа данных int
C, что производственные аппаратные поддержки, заданные как целочисленное значение от 8 до 32. Значение должно быть кратным 8.
ProdBitPerLong
— Длина в битах типа данных long
C Длина в битах типа данных long
C, что производственные аппаратные поддержки, заданные как целочисленное значение от 32 до 128. Значение должно быть кратным 8.
ProdBitPerLongLong
— Длина в битах типа данных long long
C Длина в битах типа данных long long
C, что производственные аппаратные поддержки, заданные как целочисленное значение от 64 до 128. Значение должно быть кратным 8.
Используйте тип данных long long
C, только если ваш компилятор C поддерживает long long
.
Зависимость:
ProdLongLongMode
включает использование свойства ProdBitPerLongLong
.
ProdBitPerPointer
— Длина в битах данных об указателеДлина в битах данных об указателе, что производственные аппаратные поддержки, заданные как целочисленное значение от 8 до 64. Значение должно быть кратным 8.
ProdBitPerPtrDiffT
— Длина в битах данных ptrdiff_t
Длина в битах данных ptrdiff_t
, что производственные аппаратные поддержки, заданные как 8, 16, 24, 32, 40, 64, или 128. Значение должно быть больше, чем или равным значению ProdBitPerInt
.
ProdBitPerShort
— Длина в битах типа данных short
C Длина в битах типа данных short
C, что производственные аппаратные поддержки, заданные как кратное 8, от 8 до 32.
ProdBitPerSizeT
— Длина в битах данных size_t
Длина в битах данных size_t
, что производственные аппаратные поддержки, заданные как 8, 16, 24, 32, 40, 64, или 128. Значение должно быть больше, чем или равным значению ProdBitPerInt
.
ProdEndianess
— Значение первого байта слова данных 'LittleEndian'
(значение по умолчанию) | 'BigEndian'
| 'Unspecified'
Значение первого байта слова данных для производственного оборудования, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
'LittleEndian' |
Это значение является значением по умолчанию. Младший значащий байт появляется первым в порядке байтов. |
'BigEndian' | Старший значащий байт появляется первым в порядке байтов. |
'Unspecified' | Код определяет порядок байтов оборудования. Это значение производит менее эффективный код. |
ProdHWDeviceType
— Производитель и тип производственной аппаратной платы'Generic->MATLAB Host Computer'
(значение по умолчанию) | вектор символовПроизводитель и тип производственной аппаратной платы, заданной как вектор символов.
Определение наборов свойств ProdHWDeviceType
специфичные для устройства свойства для производственного оборудования. Можно изменить специфичное для устройства свойство, только если оно включено для заданного оборудования.
codegen
не может сгенерировать код для ASICs или FPGAs. Если вы устанавливаете ProdHWDeviceType
на 'ASIC/FPGA->ASIC/FPGA'
, ProdEqTarget
становится false
так, чтобы генератор кода использовал свойства для цели (тест) устройство. 'ASIC/FPGA->ASIC/FPGA'
не является допустимым значением для TargetHWDeviceType
.
ProdIntDivRoundTo
— Округление для деления двух целых чисел со знаком'Zero'
(значение по умолчанию) | 'Undefined'
| 'Floor'
Округление компилятором для производственного оборудования результата деления двух целых чисел со знаком, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Zero' |
Это значение является значением по умолчанию. Если частное между двумя целыми числами, раундами компилятора к целому числу, которое ближе к нулю. |
'Floor' | Если частное между двумя целыми числами, раундами компилятора к целому числу, которое ближе к отрицательной бесконечности. |
'Undefined' | Компилятор не делает вокруг к нулевой или отрицательной бесконечности, или компилятор, округляющий поведение, не определен. |
ProdLongLongMode
— Долго долгая поддержка типов данныхtrue
(значение по умолчанию) | false
Поддержка компилятора C долгого долгого типа данных, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Генератор кода использует тип данных |
false |
Генератор кода не использует тип данных |
Большинство компиляторов C99 поддерживает long long
.
Советы:
ProdLongLongMode
включен только если заданные производственные аппаратные поддержки тип данных long long
C.
Если ваш компилятор не поддерживает long long
C, не выбирайте этот параметр.
Зависимость:
ProdLongLongMode
включает использование свойства ProdBitPerLongLong
.
ProdShiftRightIntArith
— Реализация сдвига вправо целого числа со знаком как арифметический сдвиг вправоРеализация компилятором C для производственного оборудования сдвига вправо целого числа со знаком как арифметический сдвиг вправо, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Указывает, что компилятор C реализует сдвиг вправо целого числа со знаком как арифметический сдвиг вправо. Арифметический сдвиг вправо заполняет бит, освобожденный сдвигом вправо со значением старшего значащего бита. Старший значащий бит указывает на знак номера. |
false |
Указывает, что компилятор C не реализует сдвиг вправо целого числа со знаком как арифметический сдвиг вправо. |
ProdWordSize
— Собственный размер слова микропроцессораСобственный размер слова микропроцессора для производственного оборудования, заданного как целочисленное значение от 8 до 64. Значение должно быть кратным 8.
TargetBitPerChar
— Длина в битах типа данных char
C Длина в битах типа данных char C, который целевой компьютер поддерживает, заданный как целочисленное значение от 8 до 32. Значение должно быть кратным 8.
TargetBitPerDouble
— Длина в битах типа данных double
CЭто свойство доступно только для чтения.
Длина в битах C удваивает тип данных, который поддерживает целевой компьютер.
TargetBitPerFloat
— Длина в битах типа данных с плавающей точкой C Это свойство доступно только для чтения.
Длина в битах типа данных с плавающей точкой C, который поддерживает целевой компьютер.
TargetBitPerInt
— Длина в битах типа данных int
C Длина в битах типа данных int
C, который целевой компьютер поддерживает, заданный как целочисленное значение от 8 до 32. Значение должно быть кратным 8.
TargetBitPerLong
— Длина в битах типа данных long
C Длина в битах типа данных long
C, который целевой компьютер поддерживает, заданный как целочисленное значение от 32 до 128. Значение должно быть кратным 8.
TargetBitPerLongLong
— Длина в битах типа данных long long
C Длина в битах типа данных long long
C, который целевой компьютер поддерживает, заданный как целочисленное значение от 64 до 128. Значение должно быть кратным 8.
Используйте тип данных long long
C, только если ваш компилятор C поддерживает long long
.
Зависимость:
TargetLongLongMode
включает использование свойства TargetBitPerLongLong
.
TargetBitPerPointer
— Длина в битах данных об указателеДлина в битах данных об указателе, которые целевой компьютер поддерживает, заданный как целочисленное значение от 8 до 64. Значение должно быть кратным 8.
TargetBitPerPtrDiffT
— Длина в битах данных ptrdiff_t
Длина в битах данных ptrdiff_t
, заданных как 8, 16, 24, 32, 40, 64, или 128. Значение должно быть больше, чем или равным значению ProdBitPerInt
.
TargetBitPerShort
— Длина в битах типа данных short
C Длина в битах типа данных short
C, который целевой компьютер поддерживает, заданный как кратное 8, от 8 до 32.
TargetBitPerSizeT
— Длина в битах данных size_t
Длина в битах данных size_t
, которые целевой компьютер поддерживает, заданный как 8, 16, 24, 32, 40, 64, или 128. Значение должно быть больше, чем или равным значению ProdBitPerInt
.
TargetEndianess
— Значение первого байта слова данных'LittleEndian'
(значение по умолчанию) | 'BigEndian'
| 'Unspecified'
Значение первого байта слова данных для целевого компьютера, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
'LittleEndian' |
Это значение является значением по умолчанию. Младший значащий байт появляется первым в порядке байтов. |
'BigEndian' | Старший значащий байт появляется первым в порядке байтов. |
'Unspecified' | Код определяет порядок байтов оборудования. Это значение производит менее эффективный код. |
TargetHWDeviceType:
— Производитель и тип цели (тест) аппаратная плата 'Generic->MATLAB Host Computer'
(значение по умолчанию) | вектор символовПроизводитель и тип цели (тест) аппаратная плата, заданная как вектор символов.
Определение значений наборов свойств TargetHWDeviceType
для специфичных для устройства свойств для целевого компьютера. Можно изменить специфичное для устройства свойство, только если оно включено для заданного оборудования.
codegen
не может сгенерировать код для ASICs или FPGAs. Если вы устанавливаете ProdHWDeviceType
на 'ASIC/FPGA->ASIC/FPGA'
, ProdEqTarget
становится false
так, чтобы генератор кода использовал свойства для цели (тест) устройство. 'ASIC/FPGA->ASIC/FPGA'
не является допустимым значением для TargetHWDeviceType
TargetIntDivRoundTo
— Округление для деления двух целых чисел со знаком'Zero'
(значение по умолчанию) | 'Undefined'
| 'Floor'
Округление компилятором для тестового оборудования результата деления двух целых чисел со знаком, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Zero' |
Это значение является значением по умолчанию. Если частное между двумя целыми числами, раундами компилятора к целому числу, которое ближе к нулю. |
'Floor' | Если частное между двумя целыми числами, раундами компилятора к целому числу, которое ближе к отрицательной бесконечности. |
'Undefined' | Компилятор не делает вокруг к нулевой или отрицательной бесконечности, или компилятор, округляющий поведение, не определен. |
TargetLongLongMode
— Долго долгая поддержка типов данныхtrue
(значение по умолчанию) | false
Поддержка компилятора C долгого долгого типа данных, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Генератор кода использует тип данных |
false |
Генератор кода не использует тип данных |
Большинство компиляторов C99 поддерживает long long
.
Советы:
TargetLongLongMode
включен только если заданные производственные аппаратные поддержки тип данных long long
C.
Если ваш компилятор не поддерживает long long
C, не выбирайте этот параметр.
Зависимость:
TargetLongLongMode
включает использование свойства TargetBitPerLongLong
.
TargetShiftRightIntArith
— Реализация сдвига вправо целого числа со знаком как арифметический сдвиг вправоРеализация компилятором C для производственного оборудования сдвига вправо целого числа со знаком как арифметический сдвиг вправо, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Указывает, что компилятор C реализует сдвиг вправо целого числа со знаком как арифметический сдвиг вправо. Арифметический сдвиг вправо заполняет бит, освобожденный сдвигом вправо со значением старшего значащего бита. Старший значащий бит указывает на знак номера. |
false |
Указывает, что компилятор C не реализует сдвиг вправо целого числа со знаком как арифметический сдвиг вправо. |
TargetWordSize
— Собственный размер слова микропроцессораСобственный размер слова микропроцессора для производственного оборудования, заданного как целочисленное значение от 8 до 64. Значение должно быть кратным 8.
Создайте объект настройки для генерации автономного кода. Например, создайте объект настройки для генерации статической библиотеки.
cfg = coder.config('lib');
coder.config
устанавливает свойство HardwareImplementation
объекта настройки к объекту coder.HardwareImplementation
со значениями параметров по умолчанию для хоста - компьютера MATLAB.
Чтобы задать различное аппаратное устройство и настроить специфичные для устройства свойства, установите свойство ProdHWDeviceType объекта coder.HardwareImplementation
к одному из доступных устройств. Например:
cfg.HardwareImplementation.ProdHWDeviceType = 'AMD->Athlon 64'
Чтобы использовать объект coder.HardwareImplementation
для генерации кода, используйте опцию -config
, чтобы задать объект настройки генерации кода, сопоставленный с объектом coder.HardwareImplementation
.
codegen -config cfg myFunction
Откройте диалоговое окно для объекта настройки, который относится к объекту coder.HardwareImplementation
. Например:
cfg = coder.config('lib'); open('cfg');
В диалоговом окне кликните по вкладке Hardware.
Если вы установили пакет поддержки для своей аппаратной платы (требует Embedded Coder), выберите плату из опций в Hardware Board. В противном случае установите Hardware Board на None - select device below
. Затем установите Device vendor и Device type.
Настройки аппаратной реализации имеют значения для заданного устройства. Чтобы видеть или изменить эти настройки, щелкните по ссылке Customize hardware implementation. Можно изменить установку, только если она включена для заданного устройства.
Чтобы установить свойство ProdHWDeviceType
, выберите устройство из доступных параметров путем открытия диалогового окна для объекта настройки, который относится к объекту coder.HardwareImplementation
. Смотрите доступ к Свойствам Аппаратной реализации с Диалоговым окном.
Можно непосредственно создать объект coder.HardwareImplementation
и присвоить его объекту coder.CodeConfig
или объекту coder.EmbeddedCodeConfig
.
hw_cfg = coder.HardwareImplementation; hw_cfg.ProdHWDeviceType = 'AMD->Athlon 64'; cfg = coder.config('lib'); cfg.HardwareImplementation = hw_cfg;
Если вы устанавливаете пакет поддержки для своего оборудования, можно настроить специфичные для оборудования параметры генерации кода путем установки свойства Hardware
объекта coder.EmbeddedCodeConfig
к объекту coder.Hardware
. Чтобы создать объект coder.Hardware
, используйте coder.hardware
. Например:
cfg = coder.config('lib'); hw = coder.hardware('Raspberry Pi'); cfg.Hardware = hw;
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.