英飞凌代码生成_使用simulink代码生成,硬件底层函数自己写更好,还是应该直接生成到目标芯片中?...

Autosar对于一般的软件构架的定义是下面这样的:

虽然底层软件(BSW)和上层应用软件(ASW)在构架上是相对独立的两部分结构,但是并不能简单地说上层软件就一定用Simulink写最好,而底层软件就一定要用C代码手写。具体是否用Simulink做基于模型的设计主要取决于两方面:

1. 代码实现的主要功能。

2. 是否需要可移植,是否独立于硬件。

底层的代码的一部分主要包括各种驱动,内存管理,任务调用管理还有各类接口比如CAN结构的定义。这类代码大部分是纯粹的对数据的调用还有简单处理,并没有复杂的控制算法和功能。这个时候使用C代码即简明扼要又高效。与此同时,这类代码大多和ECU还有通讯接口硬件强相关,当ECU硬件和通讯接口定义改变后则大部分代码都需要改变。

所以这类代码用C代码手写最合适。

与此同时完整的工业量产级ECU底层还会包括其他的功能,比如底层的诊断和功能安全。这两类代码主要是控制逻辑和功能,相对于前面提到的数据调用和处理。于此同时相对数据调用来说诊断和功能安全功能更独立于硬件,可以在不同的ECU平台间移植。

当代码包含大量控制算法,于此同时需要具有良好的可移植性和可维护性的时候,就可以考虑使用Simulink基于模型的设计。

所以说哪怕同属于底层代码,也可能根据代码类型的不同以及可移植性的不同来选择用Simulink或者手写C代码设计。当然其实很多公司具体怎么编写底层更大程度上是根据已有的历史代码类型(是模型还是手写C),以及大部分程序员的个人能力(擅长C还是Simulink)来具体安排。

============================

我的软件相关Live:

Simulink 中 Stateflow 的进阶应用:知乎 Live - 全新的实时问答

控制策略在 Simulink 中的实现: 知乎 Live - 全新的实时问答

车载控制软件设计:从需求到量产 :知乎 Live - 全新的实时问答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值