前言:工作中接触过一些编译器,例如ADS,Hightec,CCS,Tasking,用的较多的是CCS和Tasking,感觉这两个编译器用起来感觉差不多,我想如果一款编译软件用熟练之后,其他应该也能很快上手。如果对编译过程熟悉的话,那么对了解编译器的配置会有帮助。 以下为本人工作过程中觉得一些比较常用的Tasking的配置设置,做一些记录。如有不对之处,欢迎大家指正。重点记录Build部分的配置,工程编译基本都在这部分配置。
1. 编译过程
首先来了解一下C语言的编译过程,一般来说,将源文件构建成可执行文件的过程大致分为四步:预处理(Preprocessing)→编译(Compilation)→汇编(Assemble)→链接(Linking)。
以Tasking编译器为例,实现过程如下:
- 预处理(Preprocessing)
处理由"#"开头的预处理器指令,例如将#define定义的宏进行替换,将#include包含的头文件进行插入。
- 编译(Compilation)
将C程序转换为芯片架构(如TriCore)的汇编代码。
- 汇编(Assemble)
将汇编代码转换成计算机认识的机器码,即生成二进制格式的目标文件。
- 链接(Linking)
链接器Linker将所有的目标文件与其他库文件、启动文件等链接起来生成可执行文件。
不同的编译器编译的细节实现可能不一样,但过程大致一样。
2. 属性配置(Properties)
右键工程,点击Properties进行以下配置。
2.1 C/C++ Build
2.1.1 配置管理(Configuration)

编译工程代码时,我们可以以不同的配置进行编译,具体可以通过不同配置下的宏定义实现编译后的差异。项目中一般使用较多的是Debug和Release,Debug软件用于内部调试,Release软件用于正式释放。
2.1.2 出现错误便停止编译(Stop on first build error)

项目过大时,编译整个项目是需要花费很多时间的,通过勾选这个配置可以在编译时遇到第一个错误便停止编译。
2.1.3 内存(Memory)

这里可以对内存地址进行一些设置
2.1.4 设置(Settings)
这里是重头戏,分成了三大类部分:编译(预处理也在这里)、汇编、链接

2.1.4.1 编译(C/C++ Complier)
2.1.4.1.1 预编译(Preprocessing)

一般不需要生成pre文件,当然在排查问题时可以通过pre文件看看宏替换后的样子
2.1.4.1.2 包含的文件路径(Include Paths)

添加了代码别忘了包含其路径所在。这里可以通过手动填写地址添加/workspace添加/system files添加,我一般通过workspace添加,感觉更方便。
2.1.4.1.3 编译优化(Optimization)

TASKING编译器提供了四个优化级别和一个自定义级别,在每个级别上都启用了一组特定的优化。
- 0级:不进行任何优化。
- 1级优化:启用不影响源代码可调试性的优化。当在使用优化级别2调试源代码时遇到问题时,使用此级别。
- 2级(默认):启用更多优化以减少内存占用和/或执行时间。这是默认的优化级别。
- 3级优化:最高级别的优化。当程序/硬件变得太慢而无法满足实时需求时,使用此级别。
- 自定义优化:在自定义优化页面上启用/禁用特定优化。
而编译速度和内存占用选择是此消彼长的,想要速度快,就得牺牲点内存,反之。
2.1.4.2 汇编(Assembler)
汇编需要配置的不多,大多用默认配置就行,如果有一些除.c.h的文件,如.asm,则需要包含路径进来。
- Include Paths

2.1.4.3 链接(Linker)
- Scipt File

链接部分主要关注选择链接文件。
2.1.4.4 hex文件生成(Binary Parsers)

默认是不生成hex文件的,需要在这里进行勾选。
2.2 C/C++ General
代码分析(Code Anlysis)

一般默认配置就行,也可以根据需要进行自定义设置。
格式器(Formatter)

这里设置是为了方便格式同一。比如上传代码到Git上时,如果项目组不同成员Table代表的空格数不一致,那么最终显示在Git上的代码会很不美观。
3. 参数配置(Preferences)
Preferences里更多的是与代码有关,包括字体选择,字体大小等等。
3.1 显示代码行数

3.2 字体字形大小选择

3.3 命名重构

当你想对某个变量进行重新命名,但是这个变量被多处引用,这时可以用这个功能。
3.4 下标索引
当你找不到定义时,可以试试重新Rebuild index,右键工程:
![]()
4712

被折叠的 条评论
为什么被折叠?



