内容提要

引言

1. 如何打开S32DS应用工程的属性设置

2. 设置Cross Settings

2.1 配置Create flash image

2.2 配置print size

3. 配置Target Processor

4. 配置Standard S32DS C Compiler(C编译器)

4.1预处理器设置(Preprocessor)

4.2 包含路径(Includes)

4.3设置优化等级(Optimization)

4.4 配置调试信息(debugging)

5. 配置Standard S32DS C Linker(C链接器)

5.1 添加/设置链接文件

5.2 添加用户库

6. 配置Standard S32DS Assembler (汇编器)

总结

引言

本文详细介绍S32DS应用工程的工程属性配置,包括汇编器(Assembler)、C编译器(Compiler)、链接器(Linker)以及编译器所使用的C标准库、链接完成后输出Flash编程文件格式和memory使用统计结果的配置。

1. 如何打开S32DS应用工程的属性设置

在工程管理器(Project Explorer)中选中工程,右键-->Properities或者快捷键Alt + Enter;

Tips:同一个可以有多个编译目标(Bulid Target),不同的编译目标可以设置不同的属性配置

2. 设置Cross Settings

勾选使能两个比较有用的工具

−Create flash image-->生成编程文件工具使能

−Print Size-->控制台打印编译链接输出结果大小

2.1 配置Create flash image

通过配置Create flash image,我们可以控制编译结果elf生成的编程文件Output file format(输出文件格式)

-Motorola S-record-->摩托罗拉S19文件

-Intel HEX-->英特尔HEX文件

-Raw binary-->二进制BIN文件

Tips:设置输出文件格式为Motorola S-record,重新编译生成的S19文件其文件名后缀默认为.srec而非.s19,所以需要手动修改其后缀为.s19才能被某些编程器或者软件工具识别。

2.2 配置print size

−Size Format-->Berkely/SysV

−HEX-->输出16进制结果/十进制结果

−Show totals-->输出总大小

配置使能print size之后重新编译S32DS应用工程,编译结束后将在其控制台(console)会输出编译结果所占RAM和Flash的大小统计结果:

其中:

RAM size = .data + .bss(不包含堆栈(heap and stack)大小)

Flash size = .text + .data

上述编译结果的S19文件(S19文件中只包含要下载到Flash的代码和数据)结果如下:

Tips:heap和stack的大小可以从工程的链接文件(.ld)或者编译结果map文件中获得:

3. 配置Target Processor

用于设置工程目标MCU内核处理器配置选项

-内核架构(Architecture)

-大小端(Endianess)

-Float支持(Float ABI)

-FPU支持(FPU Type)

-非对齐访问(Unligned access)

-C标准库(Library support)

Tips:工程创建好了之后还可以通过工程属性的Target Processor对目标MCU的处理器选项进行重新配置,使能FPU硬件加速,选择不同的C标准库,从而实现优化。

4. 配置Standard S32DS C Compiler(C编译器)

4.1预处理器设置(Preprocessor)

在此可以添加全局宏定义/标志,对整个工程的.c和.h文件起作用

4.2 包含路径(Includes)

添加C编译器可以访问的路径,所有需要编译的.c和.h文件所在的目录都必须在此添加,编译的时候才能找到相应的文件

Tips:a. 新建工程是创建的目录都默认添加到Includes下了,但用户自己创建的目录,不会自动添加,必须手段添加,否则编译的时候会报找不到文件的错误;

b.推荐添加相对路径(通过Workspace选择添加),绝对路径(通过File system..添加)在其他电脑上不一定能正常工作:

4.3设置优化等级(Optimization)

-None(-O0):无优化,推荐使用

-其他优化等级:需要客户自己测试保证优化结果的正确性

4.4 配置调试信息(debugging)

通过配置调试等级设置(Debug Level)可以选择elf文件中所包含调试信息的多少:

-等级越高elf文件中包含的调试信息越丰富,推荐使用Maximum(-g3)

-该设置不影响最终Flash编程文件的大小,仅影响elf文件的大小

5. 配置Standard S32DS C Linker(C链接器)

5.1 添加/设置链接文件

−在通用(General)中添加/设置工程的链接文件,同一个工程目录下可以有多个链接文件,具体某个编译目标使用哪一个链接文件选在在此指定,默认新建S32DS工程的编译目标Debug/release-->S32K144_64_flash.ld,Debug_RAM-->S32K144_64_ram.ld,用户也可以使用其他的链接文件,完成对memory的个性化定义。

•推荐添加相对路径

•绝对路径在其他电脑上不一定能正常工作

5.2 添加用户库

如果在应用工程中需要使用到用户库(比如算法库,驱动库等),比如我们的AMCLIB.a这个电机驱动库,则需要在Libraries选项中配置相应的.a库文件和库文件及头文件搜索路径:

•推荐添加相对路径

•绝对路径在其他电脑上不一定能正常工作

•引用的库和相应的API定义头文件必须也同时添加到工程目录下在可以正常调用

6. 配置Standard S32DS Assembler (汇编器)

与C编译器类似,提供针对汇编代码的:General:添加文件路径

Symbols:全局符号定义

Optimization:优化等级设置

Debugging:调试信息配置

总结

嵌入式应用工程开发,从用户输入的汇编和C源代码到最终生成可下载调试的elf文件和Flash编程文件,需要经过预处理-->编译-->汇编-->链接这四个工程,对应的会使用到IDE里面集成的预处理器-->C编译器-->汇编器-->链接器,通过S32DS的工程属性选项配置,我们可以对其进行详细的配置和控制,同时通过S32DS集成的print size和create flash image两个使用工具,可以得到编译结果所占用memory资源的大小和生成不同格式的Flash编程文件。

本文虽然以S32DS for ARM v2.0的应用工程为例进行的介绍,但其设置适用于S32DS for Power v1.1/2以及同样基于eclipse的CodeWarrior 10.6/7 IDE。

胡恩伟

NXP汽车电子FAE

若对本文观点有任何意见和建议欢迎留言指出。

如果喜欢,可以关注本人公众号,精彩内容。

s32ds 路径_S32DS 使用 tips--工程属性配置(编译选项和C编译器、汇编器及链接器设置)...相关推荐

  1. Visual Studio属性配置中使用宏

    在学习C语言的时候,我们曾经遇到过一个宏的概念.宏的作用机理本质上是宏的展开,C语言中的宏的用法也有很多种(水其实很深...),不过从感觉上来讲,人们大致上会在以下的场景中,利用宏来解决一些窘境:一是 ...

  2. VS项目(工程)属性配置的总结

    转载自:https://blog.csdn.net/yyhero1/article/details/19272637 首先,解决方案和项目文件夹包含关系(c++项目): VS解决方案和各个项目文件夹以 ...

  3. vs2015 c语言安装选项,visual studio(VS2015)路径和工程属性设置

    visual studio(VS2015)路径和工程属性设置 VS 2015新建一个工程,右键属性,打开**工程属性页. 1.常规选项: a)输出目录 输出目录就是.exe,.ilk,*.pdb文件所 ...

  4. Visual Studio 2013或2015工程属性中包含目录和库目录的添加方法,附加依赖项,相对路径

    参考文章:包含目录.库目录.附加包含目录.附加库目录.附加依赖项之详解 https://blog.csdn.net/u012043391/article/details/54972127 参考文章:V ...

  5. Eclipse3.2下JFace和SWT工程环境配置方法

    Eclipse3.2下JFace和SWT工程环境配置方法 Java的Web开发环境布置向来很烦琐,还记得在做本科毕业设计时配置JBuilder2005+Weblogic8.1+SQL2k整合环境时的痛 ...

  6. CSR867X sink例程的VM工程属性编译选项简析

    为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板[淘宝链接:思度科技CSR开发板]. 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单号入 ...

  7. C++:VS2017基本操作、番茄助手的重构功能以及C++的项目工程基本配置

    一.VS2017 IDE环境基本配置 窗口布局:在视图中选择"类视图"."资源视图"."解决方案资源管理器"."输出窗口" ...

  8. VS2017属性配置

    简言: 上午卸载了下qt,引发了一大堆问题,突然发现以前很多知识点记不住了,想着以后还是把知识点以博客的形式记录下来: 1.VC++目录 功能:决定VS在哪个路径下搜索头文件,包含目录和库目录3. n ...

  9. FLIR相机项目属性配置lib文件备份

    灰点官方全面升级了自己的sdk文档,全新的sdk名称也由 FlyCapture2 过渡到 Spinnaker SDK(话说是很久之前的事情了).然而国内的灰点相机的sdk的使用文档较少,更别说 Spi ...

最新文章

  1. 阿里巴巴拿下奥运顶级赞助商
  2. 解决jar包乱码 in 创新实训 智能自然语言交流系统
  3. python requests_小白学 Python 爬虫(18):Requests 进阶操作
  4. 群晖python套件包_利用群晖Docker安装ubuntu16.04搭建python网站服务器(部署篇)
  5. 【转】细说.NET中的多线程 (四 使用锁进行同步)
  6. ul li前面的点怎么变大_硅片尺寸变大,生产成本降低,光伏电池生产商转向更大尺寸硅片...
  7. 成立烘焙公司、买茶饮 瑞幸咖啡谋变破局
  8. java从入门到秃头,小白的秃头之路
  9. WebKit编译小结
  10. git pull的理解 以及 git conflict的解决
  11. centos安装python3_CentOS安装Python3-阿里云开发者社区
  12. LayaAir textInput 单行输入多行输入
  13. 技术-经济范式视角下的开源软件演进剖析(三)
  14. 如果开发“科技”一查通小程序软件查询添加剂信息是否有前途呢?
  15. Kvaser、C++、Qt编写监控界面(三)
  16. 智能制造+机器视觉技术培训研讨会
  17. win10动态壁纸怎么设置_技术贴,安卓手机如何设置类似iPhone的炫酷动态壁纸
  18. 关系型数据库大数据性能优化解决方案之:分表(当前表历史表)、表分区、数据清理原则
  19. 让你彻底明白:HTTPS安全通信机制
  20. MySQL 幻读和不可重复读的区别

热门文章

  1. H5 授权微信第三方登录
  2. 中国与印度软件工程师的比较
  3. deepstream c++ rtsp流输出
  4. linux查看进程家族树,3.1.6 进程家族树
  5. java刻画三角形和梯形和圆形_三角形、梯形和圆形的类封装
  6. 计算机桌面无法解锁,win10锁屏后解锁却无法进入桌面怎么办?解决方案
  7. 首届·技术播客月开播在即
  8. Go语学习笔记 - gorm使用 - gorm处理错误 Web框架Gin(十)
  9. 关于聪明与努力的文章.
  10. VMWare 15虚拟机下载和安装说明兼容WIN10