为 MATLAB 创建 PIL 目标连接配置
PIL 的目标连接配置
使用目标连接配置和目标连接 API 为您的目标环境自定义处理器在环 (PIL) 执行。
通过目标连接配置,您可以指定:
目标连接 API 实现的目标连接配置名称。
定义兼容的 MATLAB® 代码的设置。例如,为特定硬件实现生成的代码。
PIL 执行需要一个目标连接 PIL API 实现,该实现集成第三方工具来实现以下目的:
编译在目标硬件上运行的 PIL 应用程序
在目标上下载、启动和停止应用程序
在 MATLAB 和目标之间通信
对于 PIL 执行,您可能有许多不同的连接配置。通过创建 rtwTargetInfo.m
文件并将其放在 MATLAB 搜索路径中,向 MATLAB 注册连接配置。
在 PIL 执行中,软件会确定使用哪个可用的连接配置。软件寻找与 MATLAB 在测代码兼容的连接配置。如果软件找到多个或未找到兼容的连接配置,软件将生成一条错误消息,其中包含有关解决问题的信息。
创建目标连接 API 实现
下图显示 PIL 目标连接 API 的组件。
您必须提供三个 API 组件的实现:
编译 API - 指定用于编译生成代码的工具链方法。
启动程序 API - 控制 MATLAB 如何启动和停止 PIL 可执行文件。
通信 API - 自定义 MATLAB 和 PIL 目标之间的连接。Embedded Coder® 为 TCP/IP 和串行通信提供主机端支持,您可以对其进行修改以用于其他协议。
以下步骤概述如何创建目标连接 API 实现。步骤中显示的示例代码摘自Processor-in-the-Loop Execution from Command Line 中使用的 ConnectivityConfig.m
文件。
创建
rtw.connectivity.Config
的一个子类。ConnectivityConfig < rtw.connectivity.Config
在该子类中:
实例化
rtw.connectivity.MakefileBuilder
,这将配置编译过程。builder = rtw.connectivity.MakefileBuilder(componentArgs, ... targetApplicationFramework, ... exeExtension);
创建
rtw.connectivity.Launcher
的子类,它使用第三方工具下载并执行应用程序。launcher = mypil.Launcher(componentArgs, builder);
配置主机-目标通信通道的
rtiostream
API 实现。对于目标端,您必须提供用于通信的驱动代码,例如 TCP/IP 或串行通信的代码。要将此代码集成到编译过程中,请创建
rtw.pil.RtIOStreamApplicationFramework
的子类。对于主机端,您可以使用提供的库进行 TCP/IP 或串行通信。实例化
rtw.connectivity.RtIOStreamHostCommunicator
,它加载并初始化您指定的库。hostCommunicator = rtw.connectivity.RtIOStreamHostCommunicator(... componentArgs, ... launcher, ... rtiostreamLib);
如果您需要所生成代码的执行时间探查,请创建一个计时器对象,该对象提供特定于硬件的计时器和相关联源文件的详细信息。请参阅Specify Hardware Timer for MATLAB。
如果需要所生成代码的堆栈使用量探查,请指定从目标硬件获取堆栈使用量数据的驱动实现。驱动必须返回堆栈寄存器的值。如果不指定驱动,PIL 仿真会尝试使用默认通用驱动。请参阅Implement Driver to Obtain Stack Usage Data During PIL Execution。
注册目标连接配置
要在 MATLAB 中将目标连接 API 实现注册为目标连接配置,请执行以下操作:
创建或更新
rtwTargetInfo.m
文件。在此文件中:创建一个目标连接配置对象,该对象指定目标连接 API 实现和兼容 MATLAB 代码的配置名称之类的信息。
调用
registerTargetInfo
。
将包含
rtwTargetInfo.m
的文件夹添加到搜索路径并刷新 MATLAB Coder™ 库注册信息。
有关详细信息,请参阅 rtw.connectivity.ConfigRegistry
。
验证目标连接配置
要在算法开发和代码生成的早期或独立于它们来验证您的目标连接配置,请使用 piltest
函数。使用该函数,您可以运行一套测试。该函数:
运行 MATLAB 函数并执行 PIL 执行。
比较结果并在检测到差异时生成错误。
有关示例,请参阅PIL Execution of Code Generated for a Kalman Estimator。
另请参阅
piltest
| rtw.connectivity.Config
| rtw.connectivity.ConfigRegistry
| rtw.connectivity.Launcher
| rtw.connectivity.MakefileBuilder
| rtw.connectivity.RtIOStreamHostCommunicator
| rtw.pil.RtIOStreamApplicationFramework