在车载嵌入式开发过程中,除了常用tasking作为编辑器,hightec也是常用的之一,在之前分享过一份tasking提高编译速度的文章(回送门:TASKING TriCore如何提高编译速度)。下面根据使用经验整理了一些hightec方法。
优化方法1:启用平行编译并将CPU核数设置为电脑的CPU核数量
1、 进入激活项目属性设置,进入 c/c++Build,按照下面的图设置:

如果默认 build command 不是 make –j4,那么取消 Use default build command 选项,直接按照下面配置:

然后配置 Behaviour 项,这里以电脑的核心为4来配置,如果电脑的核心为8个,则Use parallel jobs设置为8,
另外选项“Stop on first build error”默认是选中状态,这样在编译时一旦出错就会停止继续编译;如果未选中,即使出现编译错误也会继续向下编译其它c文件直到编译结束。

优化方法2:避免每次都生成makefile文件以及临时文件
HighTec在编译时默认是根据工程源文件文件架构首先生成makefile文件,然后执行“make makefile”指令来编译工程。
需要注意的是这样每次在你每次单击“编译”按钮时每次都会生成makefile文件。假如工程中没有增加或删除c/h文件,每次生成的makefile是一样的,也就是生成makefile步骤是重复执行的,因此我们可以按照下图将“Generate Makefiles automatically”取消掉。

另外进入激活项目属性设置->Setting->Tricore c Compiler->Output,按照下面图片要求进行设置,取消编译过程的临时文件。

优化方法3:手写makefile,通过编译命令优化
如果自己写的 makefile 文件,需要在编译选项里面添加-pipe,去掉-Wa,-ahlms=${OutputFileBaseName}.lst,-save-temps 选项。比如在 BaseFrameWork 项目里面的 CfgCompiler_Gnuc.mk 文件需要修改
# Compiler options
CC_OPTIONS_MAIN = -DGNU -msmall-const=8 -Wall -g -O2
-fno-common -fno-short-enums -mtc161 -fsingle-precision-constant
-fstrict-volatile-bitfields -g –c
-pipe
里面添加-pipe,不能包含-Wa,-ahlms=${OutputFileBaseName}.lst, -save-temps 选项。
优化方法4:将程序模块编译成静态库
将代码工程按模块化划分,将部分模块拆分成一个工程,编译成静态库,然后再在大工程编译的时候link该库,这样可以减少编译时间,工程设置为生成静态库文件而不是可执行elf文件。

优化方法5:释放电脑资源
最后就是干掉杀毒软件等耗CPU和内存的软件,释放电脑资源。
审核编辑:黄飞
-
cpu
+关注
关注
68文章
11216浏览量
222933 -
内存
+关注
关注
9文章
3173浏览量
76114 -
嵌入式开发
+关注
关注
18文章
1103浏览量
49844 -
编辑器
+关注
关注
1文章
826浏览量
32648
原文标题:HighTec Tricore如何提高编译速度
文章出处:【微信号:eng2mot,微信公众号:汽车ECU开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
TC1766通过HIGHTec编译不会产生elf文件怎么解决?
HighTec工程编译出错,已经添加了路径,但还出错是怎么回事?
hightec编译时,已添加路径却仍然有找不到文件的error是为什么?
hightec新建工程的向导页面没有TriCore板可选,是否安装失败了?
HIGHTEC编译报错“recipe for target failed”的原因?怎么解决?
Hightec GNU学习的linker笔记(可参考Hightec GNU的linker手册)
Linux系统的性能优化策略
浅谈hightec的编译链接文件
如何搭建BIFACES+HighTec开发环境
基于Tricore架构的RTThread多核实现
HighTec C/C++编译器支持Andes晶心科技RISC-V IP
HighTec C/C++编译器套件全面支持芯来RISC-V IP

HighTec Tricore编译速度优化策略探讨
评论