通过使用共享库对接在开发计算机上运行的仿真器
此示例生成一个共享库,用于对接在开发计算机上运行的仿真器。此示例使用系统目标文件 ert_shrlib.tlc
来生成该共享库。
要从模型编译共享库并在应用程序中使用该库,请执行下列操作:
1.开发您的模型。对于此示例,请打开模型 SharedLibraryCode
。将模型的副本保存到可写位置。
open_system('SharedLibraryCode');
该模型是单速率的离散时间模型。8 位计数器为名为 Amplifier
的触发子系统馈送信号。参数 INC
、LIMIT
和 RESET
分别设置为常量值 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
文件的白色按钮。
要编译模型并运行使用生成的共享库的应用程序,请在模型中双击蓝色按钮。
有关使用共享库的详细信息,请参阅 将生成的代码打包为共享库。