C\C++\MATLAB组合

1.simulink引用C文件的类作为bus类型输入:
(Model Explorer——Callbacks——PostLoadFcn)

Simulink.importExternalCTypes('caller_src/acc_target.h');

2.simulink中使用C Caller的设置:

image

3.C代码设置时,输出接口需设置成数组或指针,单输出可设成a[1]形式(注意:函数里参数为a[0]);

  • C++需要用C包装才能用于matlab使用;

4.C语言在simulink调试(崩溃多半是内存问题)

  • 全部注释掉,一块块局部释放测试;
  • 添加监控数据输出端口,在simulink查看;
  • matlab数据生成csv格式,在c中重建结构体,在VS中断点测试;

5.matlab调用C代码时,如果输入是数组,只用一个C Caller调用(C中copy数组数据后,在里面分别调用多个函数),防止出错;(AEB和ACC输出乱码就是教训呀)

6.simulink引用m编写的函数时,通过类型强制转换便于simulink使用

IsValid = int8(0);
Coefficient = single(zeros(4,1));

7.局部模块生成代码(避免做出输入端口;便于测试和生成代码模块统一在一起)

Snipaste_2019-04-04_17-57-27.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容