Main Content

通过使用共享库对接在开发计算机上运行的仿真器

此示例生成一个共享库,用于对接在开发计算机上运行的仿真器。此示例使用系统目标文件 ert_shrlib.tlc 来生成该共享库。

要从模型编译共享库并在应用程序中使用该库,请执行下列操作:

1.开发您的模型。对于此示例,请打开模型 SharedLibraryCode。将模型的副本保存到可写位置。

open_system('SharedLibraryCode');

该模型是单速率的离散时间模型。8 位计数器为名为 Amplifier 的触发子系统馈送信号。参数 INCLIMITRESET 分别设置为常量值 1、4 和 0。当信号 equal_to_count 为 true 时,子系统按增益因子 K=3 放大其输入信号,并更新输出信号。

2.打开 Embedded Coder

3.将模型配置参数系统目标文件设置为 ert_shrlib.tlc

4.编译共享库文件。代码生成器生成的文件取决于您的开发平台。例如,在 Windows® 系统上,代码生成器生成库文件 SharedLibraryCode_win64.dll

5.创建使用共享库的应用程序代码。此示例使用下列文件中提供的应用程序代码:

SharedLibraryCode_app.h SharedLibraryCode_app.c

要查看这些文件中的源代码,请在模型中点击 .h.c 文件的白色按钮。

6.编译并链接文件应用程序和共享库文件以生成可执行程序。以下脚本编译和运行程序。

run_SharedLibraryCode_app
 
=== Demo usage of ERT Shared Library Target ===
 
=== Parameter List ===
 
LIMIT: 4; INC: 1; RESET: 0; K: 3
 
=== Build SharedLibraryCode ===
 
### Starting build procedure for: SharedLibraryCode
### Successful completion of build procedure for: SharedLibraryCode

Build Summary

Top model targets built:

Model              Action                        Rebuild Reason                                    
===================================================================================================
SharedLibraryCode  Code generated and compiled.  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 9.196s
Building with 'gcc'.
MEX completed successfully.
 
=== Execute example application ===
 
Counter out(sum_out): 1	Amplifier in(Input): 0	out(Output): 0
Counter out(sum_out): 2	Amplifier in(Input): 1	out(Output): 0
Counter out(sum_out): 3	Amplifier in(Input): 2	out(Output): 0
Counter out(sum_out): 4	Amplifier in(Input): 3	out(Output): 0
Counter out(sum_out): 1	Amplifier in(Input): 4	out(Output): 12
Counter out(sum_out): 2	Amplifier in(Input): 5	out(Output): 12
Counter out(sum_out): 3	Amplifier in(Input): 6	out(Output): 12
Counter out(sum_out): 4	Amplifier in(Input): 7	out(Output): 12
Counter out(sum_out): 1	Amplifier in(Input): 8	out(Output): 24
Counter out(sum_out): 2	Amplifier in(Input): 9	out(Output): 24
Counter out(sum_out): 3	Amplifier in(Input): 10	out(Output): 24
Counter out(sum_out): 4	Amplifier in(Input): 11	out(Output): 24
Counter out(sum_out): 1	Amplifier in(Input): 12	out(Output): 36
 
=== End of Demo ===
 

要查看脚本代码,请在模型中点击 .m 文件的白色按钮。

要编译模型并运行使用生成的共享库的应用程序,请在模型中双击蓝色按钮。

有关使用共享库的详细信息,请参阅 将生成的代码打包为共享库

相关主题