单个模型中多个代码源文件及头文件的生成

今天主要是个笔记的形式记下这点内容,

        最近在集成软件时,发现某个项目需要把simulink中模型生成的代码传到工程文件中,以前集成时,项目内的模型是模块化的,基本上一个模型对应一对代码(源文件和头文件),而这个项目却出现了一个项目对应好几对代码,在代码生成设置里面找了半天,也没有发现,单个模型文件是怎么实现代码模块化的,通过不停的摸索,发现是原子子系统起了大作用。

       我们现在创建5个子系统分别命名为Code A、Code B、Code C、Code D、Code E,用ert.tlc,Embedded Coder的系统目标文件生成代码

模型:

 子系统内部:

 生成的代码:

可以看到只有该模型的代码。 

我们现在对模型进行设置,让他生成多个代码

将CodeA和CodeB 按如下设置(设置为原子子系统):

 非复用性功能:

 CodeC的设置(设置为原子子系统):复用性功能

 CodeD的设置(设置为原子子系统):自动

Code E不做任何改变,即非原子子系统 :

 生成的报告如下:

 CodeA/B/C都生成了单独的源代码,而D和E没有单独的代码。

另外该 rt_sys_CodeA_0.c与h文件是5个子系统中的状态机相关的代码,

 而rt_sys_CodeA_2.c和h文件则为5个子系统中触发子系统的代码

 由此可见,原子子系统的设置可以去实现当复用性较多的功能策略时,不仅可以降低代码量,对提高模型的可读性是有非常积极的作用的。

另外,需要注意的是

一般的子系统如果选择“Treat as atomic unit”后,它就变成了原子子系统。外框也变成了黑粗线

其他的子系统(包括函数调用子系统,使能子系统,触发子系统,迭代子系统等)都是原子子系统,因此默认外框也都是黑粗线

当在原子子系统中配置

为“Reusable function”或者“Nonreusable function”时,生成的代码可以为子系统的名称,也可以自定义生成的函数名称和文件名称。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值