使用同一个MBD方式创建的车辆控制模型,测试mdl模型文件,six模型文件使用不同编译器生成代码的异同: 测试模型:mdl格式和six格式 测试环境:Matlab 2016a 64bitWindows 版 and Matlab 2015b64bitGlinux 版 操作系统:en_windows_10 enterprise x64 操作系统:CentOS-7-x86_64-1511 Embedded hardware selection: Freescale->HC(S)12 比较对象:模块子系统.c和.h文件,模型.c和.h文件文件 1:通过测试发现mdl和six生成的主要.c和.h文件以及a2l文件都相同; 2:以下情况生成的主要.c和.h文件以及a2l文件都相同: 测试Microsoft Visual C++ 2012 和 Microsoft Visual C++ 2015; 测试Microsoft Visual C++ 2012 和Matlab LCC-win64 v2.4.1; 测试Microsoft Visual C++ 2012 和 MinGW64 v4.x; 3:测试Microsoft Visual C++ 2012 和 GCC Win64 Linux发现: GCC代码简洁,不太符合规范 MS C++代码规范,略显冗长 比如abs操作: MS C++代码: absIn1 = in1 < 0L ? ~(uint32_T)in1 + 1UL :(uint32_T)in1; absIn0 = in0 < 0L ? ~(uint32_T)in0 + 1UL :(uint32_T)in0; GCC代码: absIn1 = (uint32_T)(in1 < 0L ? -in1 :in1); absIn0 = (uint32_T)(in0 < 0L ? -in0 : in0); 4:测试Matlab 2010b 32bit + Win7 32bit 与Matlab 2016a 64bit +Win10 64 bit 这个比较意义其实没有什么意义,时隔六年,已是物是人非,生成的一部分.c和.h文件极为相似,详细的比较等待补充…… |
|
来自: stevin_lib > 《CODE》