NXP的官方开发板很便宜,比如下图这个MPC5744p的开发板,才300块RMB,而且还提供免费的Simulink自动代码生成工具NXP MBDT(Model-based design toolbox),这点非常友好。
但是也存在着如下的问题:
1、板载了OpenSDA调试器,在Simulink中编译后可直接下载进开发板中,但是要想把这个OpenSDA调试器移植到自己设计的控制板中,那是相当难的——据我所知,面向PowerPC的OpenSDA固件并不免费提供。
2、那我们自己设计控制板,又想要使用NXP MDBT在Simulink中自动生成代码以图省时省事。但我们用不了OpenSDA只能用JTAG了。
3、NXP MDBT只能OpenSDA下载,要想用JTAG下载,只能将生成的工程导入到S32 DS中再次编译,然后用JTAG进行Debug。
我在这么使用的过程中,遇到了S32DS报了fatal error: can_message.h: No such file or directory的错误,如下:
这个错误的产生,让我找了很久,甚至逐个对比NXP MBDT中CAN例程生成的代码。NXP MBDT中CAN例程生成的代码在S32DS中可以被编译,而且整个工程中也没出现包含“can_message.h”这个头文件。
因此,问题出现在我现在这个Simulink模型中。最后确认报错原因是,我在我的Simulink模型中使用了Vehicle Network Toolbox(VNT)里面的dbc解析模块(Pack和Unpack),因此,这里缺失的 “can_message.h”与VNT工具箱密切相关。
使用Everything快速搜索出我电脑上 “can_message.h”的路径为“D:\Polyspace\R2019b\toolbox\shared\can\src\scanutil”,并将其添加至S32DS工程的includes路径里:
这样,再进行编译,就不再报错了。