作者:Stephen Du
免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。复制/转发请注明来源/作者。
欢迎添加微信交流学习。
S32DS 设置不同编译参数
1. 前言
S32DS是S32 Design Studio的缩写,具体就不介绍了,之前另外文章有介绍。由于其功能强大,关键是还免费!免费!免费!所以非常受客户的欢迎。
在项目开发过程中,我们经常会碰到一个项目中不同文件使用的编译参数需要不一样。比如引用的第三方库,或者部分特殊文件等,又或者你正在使用AUTOSAR MCAL。很多大公司编译都采用自己写Makefile,但是有没有同学看到makefile就头疼?还是怀念只需要勾勾点点的GUI可视化配置工具 — S32DS?
实际上S32DS是完全可以解决上述的问题的,S32DS不但配置简单,并且非常灵活,你可以针对一个文件夹下的所有目标文件进行配置与其他文件不一样的编译参数(比如优化等级设置,宏定义,其他编译选项等),也可以单独针对某个文件配置不一样的编译参数。
需要注意的是.c文件和.s汇编文件的设置是分开设置的。
2. 如何设置
下面我们来看看到底怎么配置的:
我们暂且分为三种设置等级,系统设置/整个工程设置 — 文件夹设置 — 文件设置。这三种设置方式是一样的,唯一的区别是进入属性设置时选中的目标不一样。
进入属性设置窗口有多种途径,之前其他文章介绍过,这里再简单提一下,个人建议使用第一种方法。因为本文的针对文件夹及文件的编译参数设置也只有第一种方法可以使用。系统设置/整个工程设置 可以使用以下三种方法的任一种。
选中Project Explorer窗口下的工程(或者下面的文件夹或者任一文件皆可) -> 单击鼠标右键 -> 弹窗最下面的属性/Properties
菜单/Menu -> 工程/Project -> 属性/Properties
Dashboard窗口 -> Project setting/Build settings/Debug settings
工程设置:
- 如果你的工程没有特殊需求,那么整个工程配置一个全局的编译参数即可,这时选择工程名(Project Explorer窗口下最上层目录),然后右键选择属性。
文件夹设置:
- 如果你需要对某个文件夹下的所有文件进行单独同一设置,只需要选择相应文件夹,然后右键选择属性。通常这种情况时针对某个模块或者第三方库,因为软件开发来说,大部分时候,一个模块都是使用一个文件夹进行隔离的,这也是我们所推荐的。
文件设置:
- 当然也有特殊情况,仅需要对某个文件进行单独设置不同的参数,方法一样,选择这个文件,然后鼠标右键,选择属性。
如下图(从左到右依次对应上述三种设置):
点击进入属性窗口后,进入设置区根据需要进行设置,如下图:
比如选择settings(上图1处),选择Optimization(上图2处),然后设置优化等级(上图3处),你也可以添加其他编译选项(上图4处)。你还可以上图2处其他栏目进行设置,比如Preprocessor栏目里面定义一个宏等。
设置好后你会发现你所设置的文件夹/文件的图标发生了变化,会多一个扳手的图标,表示这个文件夹或文件设置了不同的选项。如下图:
设置完成后,重新编译即可。
3. 如何检查
我们如何来确保或检查我们的设置真的有效了呢?
我这里演示,设置了一个文件夹(GD3000)的优化等级为-O1,以及一个文件(FOC.c)的优化等级为-O2,工程全局设置优化等级为-O3。
编译完成后,还是在工程目录树下面,找到Debug,然后找到刚才设置的文件夹/文件,每个文件(.c)都对应会生成一个.args的文件,这里面保存了对应这个文件的实际编译参数。打开这个文件,你会发现你与你设置的是一样的。如下图:
GD3000文件夹下的所有文件(.c)都是-O1,而FOC文件夹下只有FOC.c(FOC.args)一个文件是-O2,其余的文件为-O3(工程全局设置)。
如果你设置了其他编译选项,使用同样的方法检查即可,args文件里面保存了所有的编译参数。
4. 如果取消
设置完后,如果你想取消,也是可以快速取消的,取消后就与工程全局设置保存一致。
还是工程目录树,选择你想取消的文件夹/文件,鼠标右键,Resource Configurations -> Reset to default。然后勾选需要回复的文件夹/文件,点击确认即可。你会发现相应文件夹/文件的图标又变回正常的图标了。重新编译后,你会发现对应的.args文件里面的信息也全部与工程全局设置保存一样了。如下图: