1.simulink引用C文件的类作为bus类型输入:
(Model Explorer——Callbacks——PostLoadFcn)
Simulink.importExternalCTypes('caller_src/acc_target.h');
2.simulink中使用C Caller的设置:
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.局部模块生成代码(避免做出输入端口;便于测试和生成代码模块统一在一起)