Legacy Code Tool是Matlab中的一个命令行工具,它可以很方便的将已有的C代码或者C++代码(注:不支持C++对象)与模型结合起来。
可以将C或C++代码编译生成用于仿真的S-fuction;也可以生成一个封装了外部C代码参数化的S-fuction模块。使用过程非常的简便,但是也有一些限制,所以当你已有的代码不是C或者系统比较复杂,比如包含了控制器和运行环境的混合系统,关于代码的集成可能还是要求助于S-Fuction builder活着手写S-fuction来解决。
好了别的不多讲,下面先简单介绍一下Legacy Code Tool的工作步骤:
1 、首先生成一个特定的Legacy Code Tool的参数集(其实也就是一个结构体变量),这个参数集指定了你要包含的C代码,头文件,以及生成s-fuction的名称等等诸多信息。
2、通过Legacy Code Tool的命令行语句调用第一步配置好的参数集变量,生成相应的S-fuction源文件;
3、通过Legacy Code Tool的命令行语句编译生成的S-fuction源文件,使其变为可动态加载的执行文件,在32位windows系统中也就是mexw32文件;
4、如果需要还可以使用Legacy Code Tool的命令行语句将上面生成s-fuction执行文件封装成simulink模块。
基本上用Legacy Code Tool来集成C代码的应用也就是上面这么四步,大致有个概念后我们实际先来看一个简单的例子,之后我们在对每一个步骤进行详细的介绍,然后再做一些复杂点的应用。
这里说的例子是matlab的help中的一个简单例子,用C语言写的将输入放大两倍的函数:
1、准备好你的C文件和相应的头文件,如下:
|
|