我有一个Simulink模型,其目的是自动生成代码。
我的模型使用S函数(由另一方开发),它具有关于路径的硬编码假设。例如,需要几个外部数据文件,它们通过像..\Bin\data\datafile.bin
这样的相对路径在S函数中引用。这使得必须在运行模型之前将MATLAB的当前工作目录设置为特定路径。
我可以通过模型回调函数自动检查并设置正确的路径。但是,所有模型回调函数似乎只与模拟过程有关,而不是与构建过程有关。这意味着我可以运行模型而不管我在哪个目录中,但是当我尝试构建模型时,它总是会失败,除非我手动将MATLAB导航回正确的目录。
毋庸置疑,这很烦人。所以我想知道是否有类似“preBuildFcn”回调函数,一个在开始构建过程之前运行的函数?任何其他解决方案(不涉及修改S函数)也非常受欢迎。
答案 0 :(得分:4)
Simulink / Embedded Coder的构建过程中有很多钩子('entry','before_tlc','after_tlc','before_make','after_make','exit'和'error')。我假设你想要一个“入口”钩子。
您需要做的就是编写一个名为 your_system_target_file name _make_rtw_hook的M函数,如文档Customize Build Process with STF_make_rtw_hook File中所述。
如果您无法打开在线文档(需要登录),以下是MATLAB安装中HTML的路径: MATLAB root \ help \ rtw \ ug \ customizing-the-目标建立过程与 - 的-STF-化妆RTW-钩file.html
答案 1 :(得分:1)
我不确定构建simulink模型是否与构建常规MATLAB程序足够相似,但这是我过去使用的内容:
用于构建项目的程序应该能够设置路径或执行其他自定义操作。