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

描述

在车载嵌入式开发过程中,除了常用tasking作为编辑器,hightec也是常用的之一,在之前分享过一份tasking提高编译速度的文章(回送门:TASKING TriCore如何提高编译速度)。下面根据使用经验整理了一些hightec方法。

优化方法1:启用平行编译并将CPU核数设置为电脑的CPU核数量

1、 进入激活项目属性设置,进入 c/c++Build,按照下面的图设置:

cpu

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

cpu

然后配置 Behaviour 项,这里以电脑的核心为4来配置,如果电脑的核心为8个,则Use parallel jobs设置为8,

另外选项“Stop on first build error”默认是选中状态,这样在编译时一旦出错就会停止继续编译;如果未选中,即使出现编译错误也会继续向下编译其它c文件直到编译结束。

cpu

优化方法2:避免每次都生成makefile文件以及临时文件

HighTec在编译时默认是根据工程源文件文件架构首先生成makefile文件,然后执行“make makefile”指令来编译工程。

需要注意的是这样每次在你每次单击“编译”按钮时每次都会生成makefile文件。假如工程中没有增加或删除c/h文件,每次生成的makefile是一样的,也就是生成makefile步骤是重复执行的,因此我们可以按照下图将“Generate Makefiles automatically”取消掉。

cpu

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

cpu

优化方法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文件。

cpu

优化方法5:释放电脑资源

最后就是干掉杀毒软件等耗CPU和内存的软件,释放电脑资源。

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分