作者:Stephen Du

免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。复制/转发请注明来源/作者。

欢迎添加微信交流学习。

S32DS 设置不同编译参数

1. 前言

S32DS是S32 Design Studio的缩写,具体就不介绍了,之前另外文章有介绍。由于其功能强大,关键是还免费!免费!免费!所以非常受客户的欢迎。

在项目开发过程中,我们经常会碰到一个项目中不同文件使用的编译参数需要不一样。比如引用的第三方库,或者部分特殊文件等,又或者你正在使用AUTOSAR MCAL。很多大公司编译都采用自己写Makefile,但是有没有同学看到makefile就头疼?还是怀念只需要勾勾点点的GUI可视化配置工具 — S32DS?

实际上S32DS是完全可以解决上述的问题的,S32DS不但配置简单,并且非常灵活,你可以针对一个文件夹下的所有目标文件进行配置与其他文件不一样的编译参数(比如优化等级设置,宏定义,其他编译选项等),也可以单独针对某个文件配置不一样的编译参数。

需要注意的是.c文件和.s汇编文件的设置是分开设置的。

2. 如何设置

下面我们来看看到底怎么配置的:

我们暂且分为三种设置等级,系统设置/整个工程设置 — 文件夹设置 — 文件设置。这三种设置方式是一样的,唯一的区别是进入属性设置时选中的目标不一样。

进入属性设置窗口有多种途径,之前其他文章介绍过,这里再简单提一下,个人建议使用第一种方法。因为本文的针对文件夹及文件的编译参数设置也只有第一种方法可以使用。系统设置/整个工程设置 可以使用以下三种方法的任一种。

  1. 选中Project Explorer窗口下的工程(或者下面的文件夹或者任一文件皆可) -> 单击鼠标右键 -> 弹窗最下面的属性/Properties

  2. 菜单/Menu -> 工程/Project -> 属性/Properties

  3. 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文件里面的信息也全部与工程全局设置保存一样了。如下图:

S32DS 设置不同编译参数相关推荐

  1. linux做网卡bond,linux下设置网卡bond

    SCC(超级计算集群)简介 SCC概述 超级计算集群(Super Computing Cluster,SCC)使用高速RDMA网络互联的CPU以及GPU等异构加速设备,面向高性能计算.人工智能/机器学 ...

  2. linux设置网口ip地址,linux网口设置ip地址

    SCC(超级计算集群)简介 SCC概述 超级计算集群(Super Computing Cluster,SCC)使用高速RDMA网络互联的CPU以及GPU等异构加速设备,面向高性能计算.人工智能/机器学 ...

  3. 在Ubuntu18.04上安装opencv 3.4.1

    对于安装opencv有的人一次就成功,而有人安装了N多次才成功.我就是那个安装了N多次的人,每次遇到了很多安装错误,只能通过到网上搜教程资料,解决方法:通过一次次的试错,最终完成了安装.再此提醒第一次 ...

  4. Linux下安装php环境并且配置Nginx支持php-fpm模块

    以下以CentOS 7.2为例,安装php的运行环境,首先打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.ph ...

  5. android 修改编译内核源码 对抗反调试

    0×00  写在前面 攻防对立.程序调试与反调试之间的对抗是一个永恒的主题.在安卓逆向工程实践中,通过修改和编译安卓内核源码来对抗反调试是一种常见的方法.但网上关于此类的资料比较少,且都是基于AOSP ...

  6. 位运算模块mBit.bas

    'File:      mBit.bas 'Name:      位运算模块 'Author:    zyl910 'Version:   V2.0 'Updata:    2006-4-29 'E- ...

  7. Maven 常见问题

    1.前言 Maven,发音是[`meivin],"专家"的意思.它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把project1项目完全迁移并应用maven ...

  8. OpenCV加mySQL树莓派_树莓派3B/3B+和4B安装OpenCV教程 (详细教程)

    安装前准备 在树莓派上拓展文件系统 如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间. 具体步骤如下: 1.在树莓派终端(或者SSH)上输入: 1 $ ...

  9. php+swoole

    swoole官网:www.swoole.com Swoole:面向生产环境的 PHP 异步网络通信引擎  是PHP开发人员可以编写高性能的异步并发 TCP,UDP,UnixSocket,HTTP,We ...

最新文章

  1. 宣告放弃社交后,支付宝把希望放在了“信息流”上
  2. Python之路--WEB框架本质
  3. 不幸的是MyApp已停止。 我该如何解决?
  4. Vmware ESX server CPU掩码导致的挂起
  5. 016_SpringBoot整合MyBatis
  6. 团购硝烟慢慢散去之时:从团购身上我们可以学到什么?
  7. Nginx相关 解决nginx反向代理后页面上的js/css文件无法加载
  8. 部分网卡安装esxi6.7报错“Shutting down firmware services…解决方法
  9. Android中XML数据解析
  10. 如何做漂亮实用的UI界面?UI/UX设计模板,帮你入手!
  11. 斯坦福大学2019年NLP课程上线,下周二开课 | 附PPT+视频
  12. Android设备的ID
  13. openwrt监控linux,openwrt linux portal 实现 支持 https 支持基于时长和流量控制
  14. SDL2 + OPENGL GLSL 实践
  15. 工具:数据库设计ER图
  16. 北京大学2019年高等代数考研试题
  17. 扒一扒最近很火的被马云强东联手封杀性感女黑帽
  18. SMARTS决策引擎实战练习
  19. MyBatis_Learning_3.5.7
  20. 最大似然估计与极大似然估计_使用最大似然估计对NFL球队排名

热门文章

  1. 什么是dll文件且解决dll文件丢失
  2. uni-app开发常用点
  3. Beyond:二十年摇滚之累
  4. 编程不适合12小时工作制,“我有灵感才工作” | 专访《Java编程思想》作者Bruce Eckel...
  5. 小周的考研计划(一定要上岸呀)
  6. 机器学习应该准备哪些数学预备知识?
  7. 网络安全——指纹识别
  8. 在组态软件中开发脚本功能的方法
  9. 跑腿软件开发怎么选择公司
  10. RealPlay在Fedora13上的安装