概述
准备工作
稍后在此示例中,您要将文件夹添加到搜索路径。创建文件夹路径。
sl_customization_path = fullfile(matlabroot,...
'toolbox',...
'rtw',...
'rtwdemos',...
'pil_demo');
如果此文件夹已在搜索路径上,请将其删除。
if strfind(path,sl_customization_path)
rmpath(sl_customization_path)
end
重置自定义。
sl_refresh_customizations
为编译和检查过程创建一个临时文件夹(在您的系统临时文件夹中)。
currentDir = pwd;
rtwdemodir();
使用 SIL 仿真测试生成的代码
为针对 SIL 配置的模型进行仿真。通过将 SIL 仿真行为与 Normal 仿真行为进行比较,验证为主机编译的生成代码。
确保示例模型是新打开的。
close_system('rtwdemo_sil_modelblock',0);
close_system('rtwdemo_sil_counter',0)
open_system('rtwdemo_sil_modelblock')
CounterA Model 模块中显示有文本 (SIL),表示其引用模型是针对 SIL 仿真配置的。
运行系统的仿真。
set_param('rtwdemo_sil_modelblock','StopTime','10');
sim('rtwdemo_sil_modelblock');
### Starting build procedure for model: rtwdemo_sil_counter
### Successful completion of build procedure for model: rtwdemo_sil_counter
### Preparing to start SIL simulation ...
Building with 'Microsoft Visual C++ 2017 (C)'.
MEX completed successfully.
### Updating code generation report with SIL files ...
### Starting SIL simulation for component: rtwdemo_sil_counter
### Stopping SIL simulation for component: rtwdemo_sil_counter
目标连接配置
从针对 PIL 的目标连接配置入手。
制作一份目标连接配置类的本地副本。
src_dir = ...
fullfile(matlabroot,'toolbox','coder','simulinkcoder','+coder','+mypil');
if exist(fullfile('.','+mypil'),'dir')
rmdir('+mypil','s')
end
mkdir +mypil
copyfile(fullfile(src_dir,'Launcher.m'), '+mypil');
copyfile(fullfile(src_dir,'TargetApplicationFramework.m'), '+mypil');
copyfile(fullfile(src_dir,'ConnectivityConfig.m'), '+mypil');
将复制的文件设置为可写。
fileattrib(fullfile('+mypil', '*'),'+w');
更新包名称以反映文件的新位置。
coder.mypil.Utils.UpdateClassName(...
'./+mypil/ConnectivityConfig.m',...
'coder.mypil',...
'mypil');
验证现在您的当前文件夹中有文件夹 +mypil,其中包含文件 Launcher.m、TargetApplicationFramework.m 和 ConnectivityConfig.m。
dir './+mypil'
. Launcher.m
.. TargetApplicationFramework.m
ConnectivityConfig.m
查看代码以启动 PIL 可执行文件
使用 mypil.Launcher 类对用来启动 PIL 可执行文件的工具进行配置。在编辑器中打开此类。
edit(which('mypil.Launcher'))
查看此文件的内容。setArgString 方法为可执行文件提供额外的命令行参数。这些参数可以包括 TCP/IP 端口号。对于嵌入式处理器实现,您可以选择对这些设置进行硬编码。
配置总体目标连接配置
查看 mypil.ConnectivityConfig 类。
edit(which('mypil.ConnectivityConfig'))
查看此文件的内容。您应该能够从中找出以下内容:
rtw.connectivity.RtIOStreamHostCommunicator 实例的创建,用于配置 TCP/IP 通信信道的主机端。
对 Launcher 的 setArgString 方法的调用,用于配置 TCP/IP 通信信道的目标端。
对 setTimer 的调用,用于配置计时器以测量执行时间。
要定义您自己的目标特定计时器以进行执行时间探查,您必须使用代码替换库来指定函数 code_profile_read_timer 的替换项。使用命令行 API 或 crtool 用户界面。
查看目标端通信驱动程序
查看文件 rtiostream_tcpip.c。
rtiostreamtcpip_dir=fullfile(matlabroot,'toolbox','coder','rtiostream','src',...
'rtiostreamtcpip');
edit(fullfile(rtiostreamtcpip_dir,'rtiostream_tcpip.c'))
向下滚动到此文件的末尾。查看以确认此文件包含函数 rtIOStreamOpen、rtIOStreamSend 和 rtIOStreamRecv 的 TCP/IP 实现。这些函数是目标硬件与主机通信所必需的。对于特定于您的目标硬件和通信信道的上述每个函数,您都必须提供一个实现。
将目标端通信驱动程序添加到连接配置
使用 mypil.TargetApplicationFramework 类对要包含在编译版本中的其他文件进行配置。在编辑器中打开此类。
edit(which('mypil.TargetApplicationFramework'))
使用 sl_customization 注册目标连接配置
要使用新目标连接配置,您必须提供 sl_customization 文件。sl_customization 文件用来注册您的新目标连接配置并指定使用它所需的条件。此文件中指定的条件可以包括系统目标文件的名称和硬件实现设置。
您可以查看 sl_customization 文件。对于此示例,您不必对该文件进行更改。
edit(fullfile(sl_customization_path,'sl_customization.m'))
将 sl_customization 文件夹添加到搜索路径并刷新自定义。
addpath(sl_customization_path);
sl_refresh_customizations;
使用 PIL 仿真测试生成的代码
运行 PIL 仿真。
close_system('rtwdemo_sil_modelblock',0)
open_system('rtwdemo_sil_modelblock')
set_param('rtwdemo_sil_modelblock/CounterA','SimulationMode','processor-in-the-loop (pil)');
set_param('rtwdemo_sil_modelblock','StopTime','10');
sim('rtwdemo_sil_modelblock');
### Starting build procedure for model: rtwdemo_sil_counter
### Generated code for 'rtwdemo_sil_counter' is up to date because no structural, parameter or code replacement library changes were found.
### Successful completion of build procedure for model: rtwdemo_sil_counter
### Connectivity configuration for referenced model "rtwdemo_sil_counter": My PIL Example ###
EXECUTING METHOD SETARGSTRING
SETARGSTRING called from line 71 of ConnectivityConfig.m
### Preparing to start PIL simulation ...
Building with 'Microsoft Visual C++ 2017 (C)'.
MEX completed successfully.
### Updating code generation report with PIL files ...
### Starting application: 'rtwdemo_sil_counter_ert_rtwpilrtwdemo_sil_counter.exe'
Starting PIL simulation
Started new process, pid = 14132
Stopping PIL simulation
Terminated process, pid = 14132
查看前面的消息。确认仿真正常运行而没有错误。您现在已实现了一个 PIL 的目标连接配置。您可以使用相同的 API 来为您自己的嵌入式处理器、下载工具和通信信道组合实现连接配置。
清理
删除此示例的搜索路径。
rmpath(sl_customization_path)
重置自定义。
sl_refresh_customizations
关闭模型。
close_system('rtwdemo_sil_modelblock',0)
close_system('rtwdemo_sil_counter',0)
rtwdemoclean;
cd(currentDir)
最后
以上就是儒雅苗条为你收集整理的matlab仿真用什么cpu,为自定义目标配置处理器在环 (PIL) 仿真的全部内容,希望文章能够帮你解决matlab仿真用什么cpu,为自定义目标配置处理器在环 (PIL) 仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复