Simulink自动代码生成到指定的文件夹

目录

前言

自动代码生成到指令文件夹

.c和.h放到指定文件夹

总结


前言

接上回,通过模块化建模后,每个子模型生成的代码都放在比较深且不同的目录,找了半天也没找到像AUTOSAR那样直接打包代码的方法, 还是用Embeded coder去生成代码,生成的代码比较分散,文件夹比较多:

Simulink 自动代码生成System Composer的使用Architecture Model_卡洛斯伊的博客-CSDN博客

 

 当然可以把Simulink生成代码的目录和模型直接放到软件工程里面,生成代码直接在Makefile里面把文件路径设置好,只是这样就会让整个Project看起来很臃肿,这里就总结一个自己的操作,清爽的提取出生成的代码仅供参考

自动代码生成到指令文件夹

生成代码前运行以下脚本:

orig = Simulink.fileGenControl('get','CodeGenFolderStructure');
Simulink.fileGenControl('set','CodeGenFolderStructure',...
Simulink.filegen.CodeGenFolderStructure.TargetEnvironmentSubfolder);
myCodeGenFolder = fullfile('E:','Code_generate_test');
Simulink.fileGenControl('set', ...
   'CodeGenFolder',myCodeGenFolder, ...
   'keepPreviousPath',true, ...
   'createDir',true);

 这几句的意思就是把生成的代码文件夹换成自己定义的,这里自定义的文件夹是E:\Code_generate_test

Simulink.fileGenControl('reset'); %如果不想用自定义的文件夹,就用默认的

生成代码后的文件夹就变成了:

 对应的就是三个部分的代码,如下:

Model code 就是主模型生成的代码

Model Reference code 就是每个子模型生成的代码

Shared Code 就是共享的文件,每个模型生成的代码都会调用到的部分

 

 

 生成代码后每个模型的代码还是放在各自的文件夹,且代码包含.c和.h及其他文件

.c和.h放到指定文件夹

目前没找到好的解决办法,这里通过批处理(.bat)的方式把文件夹里的.c和.h索引出来,并放到指定文件夹,操作如下:

通过批处理文件, 如下除了.bat都是Simulink生成的,代码都放在ARM7里面

 双击之后,多了两个文件夹,里面分别存放了.c和.h文件,用这种方法就可以直接生成代码到指定的路径,不需要手动拷贝了,提高效率

 

 

 创建的批处理文件如下,大致流程是创建两个文件夹分别存放.c和.h用,还有两个txt用来存放搜索到的.c和.h的文件目录,然后搜索ARM7文件夹,把.c和.h的文件提取到txt文本并复制到指定的文件夹,最后删除txt文件

@echo off
md E:\Code_generate_test\Ccode
md E:\Code_generate_test\Hcode
dir E:\Code_generate_test\Cdir.txt
dir E:\Code_generate_test\Hdir.txt

dir /s/b/a-d E:\Code_generate_test\ARM7\*.c* >E:\Code_generate_test\Cdir.txt

for /f "delims=" %%i in (E:\Code_generate_test\Cdir.txt) do copy "%%i" E:\Code_generate_test\Ccode

dir /s/b/a-d E:\Code_generate_test\ARM7\*.h* >E:\Code_generate_test\Hdir.txt

for /f "delims=" %%i in (E:\Code_generate_test\Hdir.txt) do copy "%%i" E:\Code_generate_test\Hcode


del E:\Code_generate_test\Cdir.txt
del E:\Code_generate_test\Hdir.txt

echo copy completed!
pause

总结

解决方法也许不止一种,因为目前没找到更好的方案只能采取这种方式,这里记录一下方便日后回顾

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡洛斯伊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值