target
ПакетМожно использовать target Package
обеспечить возможность соединения PIL между Simulink® и целевым компьютером. В этом примере ваш компьютер разработчика является целевым компьютером.
Создайте target.Board
объект, который предоставляет MATLAB® описание вашего целевого компьютера.
hostTarget = target.create('Board', ... 'Name', 'Example Intel Board');
Чтобы поддержать генерацию кода и ввод-вывод данных в PIL симуляциях, сопоставьте объект с процессором, связью и коммуникационными описаниями.
Сопоставьте плату с процессором
Чтобы поддержать генерацию кода, сопоставьте плату с target.Processor
объект, который содержит реализацию языка. В данном примере создайте target.Processor
возразите и снова используйте существующий target.LanguageImplementation
объект. Для получения информации о подготовке пользовательского target.LanguageImplementation
возразите, смотрите Регистр Новые Аппаратные устройства.
processor = target.create('Processor', 'Name', 'ExampleProcessor'); processor.LanguageImplementations = target.get('LanguageImplementation', ... 'Intel-x86-64 (Windows64)');
Сопоставьте target.Board
объект с новым target.Processor
объект при помощи Processors
свойство
hostTarget.Processors = processor;
Укажите информацию выполнения для целевого компьютера
Создайте объект, который содержит детали о выполнении целевого приложения. Объект описывает инструмент, который требуется запустить целевое приложение на целевом компьютере. Чтобы получить системные команды для запуска и остановки целевого приложения, можно использовать HostProcessExecutionTool
или SystemCommandExecutionTool
класс.
applicationExecution = target.create('HostProcessExecutionTool'); applicationExecution.Name = 'Windows Application';
Создайте Command
объект для загрузки и запуска целевого приложения. Присвойте строковую переменную '$(EXE)'
к String
свойство как заполнитель для имени целевого приложения, которое не известно до выполнения.
runCommand = target.create('Command'); runCommand.String = '$(EXE)'; applicationExecution.StartCommand = runCommand; hostTarget.Tools.ExecutionTools = applicationExecution;
Создайте коммуникационный интерфейс для целевого компьютера
Создайте CommunicationInterface
объект, который предоставляет целевому компьютеру детали канала связи и rtiostream реализации API.
Использование:
Поставленный TCP/IP rtiostream
исходный файл реализации.
BuildDependencies
объект задать, для rtiostream
API, исходные файлы, которые скомпилированы с целевым приложением.
MainFunction
возразите, чтобы передать аргументы целевому приложению
comms = target.create('CommunicationInterface'); comms.Name = 'Windows TCP Interface'; comms.Channel = 'TCPChannel'; comms.APIImplementations = target.create('APIImplementation', ... 'Name', 'x86 RTIOStream Implementation'); comms.APIImplementations.API = target.create('API', 'Name', 'RTIO Stream'); comms.APIImplementations.BuildDependencies = target.create('BuildDependencies'); comms.APIImplementations.BuildDependencies.SourceFiles = ... {fullfile('$(MATLABROOT)', ... 'toolbox', ... 'coder', ... 'rtiostream', ... 'src', ... 'rtiostreamtcpip', ... 'rtiostream_tcpip.c')}; comms.APIImplementations.MainFunction = target.create('MainFunction', ... 'Name', 'TCP RtIOStream Main'); comms.APIImplementations.MainFunction.Arguments = {'-blocking', '1', '-port', '0'}; hostTarget.CommunicationInterfaces = comms;
Укажите информацию протокола PIL
Этот шаг является дополнительным. PIL симуляция использует протокол связи для передачи данных между Simulink и целевым компьютером. target.PILProtocol
класс описывает параметры протокола. В данном примере можно улучшать производительность целевой среды выполнения путем увеличения buffer size ввода-вывода, который использует протокол.
Создайте target.PILProtocol
возразите и задайте buffer size ввода-вывода.
pilProtocol = target.create('PILProtocol'); pilProtocol.Name = 'Windows PIL Protocol'; pilProtocol.SendBufferSize = 50000; pilProtocol.ReceiveBufferSize = 50000; hostTarget.CommunicationProtocolStacks = pilProtocol;
Если вы не выполняете этот шаг, target.PILProtocol
по умолчанию значения используются.
Можно сконфигурировать PIL симуляцию, чтобы произвести профили времени выполнения для сгенерированного кода. Чтобы поддержать профилирование выполнения кода, необходимо создать объект - таймер, который описывает извлечение текущего времени от сгенерированного кода, работающего на целевом компьютере. Описание объекта - таймера должно включать описание функции, которая получает время и его реализацию.
Этот пример использует функцию C, timestamp_x86
, который возвращает текущее время как uint64
тип данных.
timerSignature = target.create('Function'); timerSignature.Name = 'timestamp_x86'; timerSignature.ReturnType = 'uint64';
Получите функцию в объекте API.
timerApi = target.create('API'); timerApi.Functions = timerSignature; timerApi.Language = target.Language.C; timerApi.Name = 'Windows Timer API';
Получите зависимости функции, то есть, исходные и заголовочные файлы, которые требуются запустить функцию.
timerDependencies = target.create('BuildDependencies'); timerDependencies.IncludeFiles = {'host_timer_x86.h'}; timerDependencies.IncludePaths = {'$(MATLAB_ROOT)/toolbox/coder/profile/src'}; timerDependencies.SourceFiles = {'host_timer_x86.c'};
Создайте объект, который комбинирует API и зависимости.
timerImplementation = target.create('APIImplementation'); timerImplementation.API = timerApi; timerImplementation.BuildDependencies = timerDependencies; timerImplementation.Name = 'Windows Timer Implementation';
Создайте объект - таймер и сопоставьте его с информацией о таймере.
timer = target.create('Timer'); timer.APIImplementation = timerImplementation; timer.Name = 'Windows Timer';
Присвойте таймер объекту процессора.
processor.Timers = timer;
Задайте связь между компьютером разработчика и целевым компьютером
Предыдущие шаги создали поддержку целевого компьютера коммуникаций и запуска целевого приложения. Теперь настройте связь между своим компьютером разработчика и целевым компьютером путем создания TargetConnection
объект. Задайте:
Канал связи, который является тем же каналом, заданным в коммуникационном интерфейсе целевого компьютера – видит шаг 4.
Свойства связи.
Цель, которая является описанием плат, заданным на предыдущих шагах.
connection = target.create('TargetConnection'); connection.Name = 'Host Process Connection'; connection.Target = hostTarget; connection.CommunicationChannel = target.create('TCPChannel'); connection.CommunicationChannel.Name = 'External Process TCPCommunicationChannel'; connection.CommunicationChannel.IPAddress = 'localhost'; connection.CommunicationChannel.Port = '0';
Добавьте плату, и связь возражает против постоянной памяти
Чтобы указать возможность соединения в MATLAB, используйте target.add
функция, чтобы добавить целевой компьютер и информацию о связи к памяти MATLAB. По умолчанию информация только доступна для текущего сеанса работы с MATLAB. Чтобы заставить регистрацию сохраниться через сеансы работы с MATLAB, задайте пару "имя-значение" 'UserInstall', true
.
target.add([hostTarget connection], 'UserInstall', true);
Можно теперь задать компьютер разработчика как целевой компьютер для PIL симуляций. Прежде чем вы запустите PIL симуляцию, в диалоговом окне Configuration Parameters, установите Hardware board на Example Intel Board
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.