上次我们写了一个可以自动化配置模型选项的Block,双击它即可完成模型的配置,即配置了模型的基本信息,也配置了系统tlc、makefile模板、代码模板等和代码生成关系紧密的几个文件。
这次我们关注的是mytarget_proc.tlc这两个文件,它对应的是ERTCustomFileTemplate这个选项,可以用它来生成自定义的main函数,真正和我们的硬件发生联系。
翻箱倒柜从灰尘堆里的STM32开发板找出来,硬件我们就用他了,编译器用Keil,大家如果使用不同硬件和编译器也无所谓,根据自己的情况进行调整。
因为使用STM32我对mytarget_configuration函数进行了修改如下:
set_param(cs,‘ProdHWDeviceType’,‘ARM7’);
改成
set_param(cs,‘ProdHWDeviceType’,‘ARM Cortex’);
之前有讲过,在toolbox的根目录下,有一个src文件,用来放支撑模型运行的源代码。
mytargetroot/src
这个目录放喜闻乐见的C源码,例如启动、定时等运行框架代码,也包含硬件驱动的接口。
我准备的文件如下,熟悉STM32的朋友应该会看着比较眼熟,同时也会发现里面没有main.c。main.c我们会在代码生成的阶段把它生成出来,在开发阶段需要做的是编写一个生成的模板,这个生成的模板就是mytarget_proc.tlc。
mytarget_proc.tlc的内容看起来既熟悉又陌生,熟悉的是大段的C语言代码,陌生的是里面夹杂着少许TLC代码。它的主要功能是创建了一个新的源文件main.c,并通过LibGetMdlPubHdrBaseName、LibCallModelInitialize、LibCallModelStep、LibCallModelTerminate等几个TLC函数包含模型头文件,调用模型的initialize、step、terminate等函数。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Abstract:
%% MyTarget file processing.
%%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%