本发明涉及汽车电子控制单元基于模型开发的方法,具体来说,涉及一种利用 Simulink定制单片机的底层驱动进行全自动代码生成的方法。
背景技术:
目前在汽车与航空航天等领域中基于模型设计的方法已经被越来越多的使用。汽车行业通用的汽车电子控制单元的开发大体分为底层软件和应用层软件,底层软件常用的开发方法是手写单片机的底层驱动程序,应用层软件是利用Matlab/Simulink/Stateflow工具以图形化形式建立模型,并以Matlab自带的Embeded Coder工具将图形化形式的模型转为C代码,用户再将手写的底层代码与应用层生成的C代码二者集成到一起后才可以下载到汽车电子控制单元里面。
针对相关技术中的问题,目前尚未提出有效的解决方案。
为了加速汽车电子控制单元中底层驱动的开发流程,本发明将MPC5644A单片机的底层驱动以Simulink模块的形式添加到Simulink模型库中,以图形化形式建立模型,利用 Embeded Coder代码生成机制,实现驱动代码的快速生成。代码生成完毕后自动后台启动 CodeWarrior编译器对模型源代码进行编译链接等操作,全程不需要人为执行任何操作,实现Embeded Coder由系统模型到应用程序下载的一键式操作。
技术实现要素:
针对相关技术中的上述技术问题,本发明提出一种利用Simulink定制MPC5644A的底层驱动进行代码生成的方法,能够提高代码开发效率。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种利用Simulink定制MPC5644A的底层驱动进行代码生成的方法,包括以下步骤:
S1编写模块S-Function:在熟悉S-Function编写的的基础上,编写该款单片机某个功能模块的S-Function,所述的S-Function包含了该功能模块中的输入或输出数量,宽度,数据类型,采样时间以及其他一些信息,所述的S-Function保存在一个特定的文件夹中,其扩展名为“c”;
S2模块S-Function的编译:利用Matlab自带了Lcc编译器对模块S-Function进行编译,但第一次启动Lcc时,需要初始化Lcc编译器,可在Matlab命令窗口下输入mex–setup,回车,让用户选择编译器,选择1,代表Lcc,再回车,确认用户的选择,输入y。
完成这个步骤后,要将Matlab工作路径与步骤1中的文件夹路径保持一致,在 Matlab命令窗口下输入mex xxx.c,xxx表示模块名,此时文件夹中生成一个xxx.mexw32动态链接库文件,表示模块S-Function的编译已完成;
S3模块S-Function与mexw32文件建立联系: