在车载嵌入式开发过程中,除了常用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和内存的软件,释放电脑资源。
-end-
分享不易,恳请点个【👍】和【在看】