具有多个实例的s函数的Matab tlc代码

时间:2016-11-02 08:21:19

标签: matlab code-generation s-function

我需要在我的simulink模型中内联一个具有多个实例的s函数。在S-function中,我需要加载一个dll文件,但它应该只在一个s-function实例中完成。我写了如下tlc: ..... %function Start(块,系统)输出

dll_handle = LoadLibraryA(“mydll”); dll_setup =(DLL_SETUP)GetProcAddress的(dll_handle, “设置”); .....

代码生成后,这些Start函数行被添加到每个s-function实例的源代码中。但是,我需要加载一次dll。是否可以仅为第一个s-function实例添加这些行?

注意:我知道在TLC文档中它指出在模型中存在多个s-function实例时要避免内联。

2 个答案:

答案 0 :(得分:0)

这是来自一些朦胧的回忆,但我认为你可以使用全球性的:

compound

我觉得这样的事情会起作用。

答案 1 :(得分:0)

最简单的方法是将这些行放在外部文件中,并使用静态变量来跟踪一次性初始化。然后从Start函数添加对该函数的调用。如果要从tlc生成该外部文件,请查看BlockTypeSetup TLC函数和LibAddToModelSources,以将源文件添加到生成的代码中。