0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

汽车ECU开发 来源:汽车ECU开发 2024-04-10 12:44 次阅读

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

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

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

fa1aae5e-f6e2-11ee-a297-92fbcf53809c.png

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

fa3da24c-f6e2-11ee-a297-92fbcf53809c.png

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

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

fa4bce76-f6e2-11ee-a297-92fbcf53809c.png

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

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

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

fb1a9bd4-f6e2-11ee-a297-92fbcf53809c.png

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

fb28ecf2-f6e2-11ee-a297-92fbcf53809c.png

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

fb4a9726-f6e2-11ee-a297-92fbcf53809c.png

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

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

审核编辑:黄飞

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

    关注

    68

    文章

    10451

    浏览量

    206583
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72779
  • 嵌入式开发
    +关注

    关注

    18

    文章

    979

    浏览量

    46961
  • 编辑器
    +关注

    关注

    1

    文章

    788

    浏览量

    30239

原文标题:HighTec Tricore如何提高编译速度

文章出处:【微信号:eng2mot,微信公众号:汽车ECU开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TC1766通过HIGHTec编译不会产生elf文件怎么解决?

    TC1766,在DAVE生成工程时,其编译器选项只有GNU和TASKing,导入到HIGHTec编译时不会产生elf文件;TC1767的话,生成DAVE工程的编译器选项是TASKing
    发表于 02-04 09:35

    HighTec工程编译出错,已经添加了路径,但还出错是怎么回事?

    HighTec工程编译出错,已经添加了路径,但还出错!#include \"Tricore/Compilers/Compilers.h\" /* mapping compiler
    发表于 02-04 06:34

    HIGHTEC创建工程导入iLLD遇到的疑问求解

    HIGHTEC环境,导入iLLD,想要使用ILLD自带的start函数。在注册irq函数时:C:UsersHAIGU~1AppDataLocalTempccBXRWbc.s: Assembler
    发表于 02-05 08:00

    hightec编译时,已添加路径却仍然有找不到文件的error是为什么?

    如题,Hightec编译时,已在properties中添加complier包含的文件路径,仍然编译不通过,显示找不到文件的error。哪位大侠知道怎么回事?
    发表于 02-05 06:37

    hightec新建工程的向导页面没有TriCore板可选,是否安装失败了?

    hightec新建工程的向导页面没有TriCore板可选,是否安装失败了(已添加license)
    发表于 02-06 07:05

    hightec中如何将源代封装,并编译链接成.a的库函数?

    hightec中如何将源代封装,并编译链接成.a的库函数
    发表于 02-18 08:10

    HIGHTEC编译报错“recipe for target failed”的原因?怎么解决?

    操作系统:WIN10版本:free_tricore_entry_tool_chain_4.9.3.0,已安装证书新建HighTec Project,选择芯片为TC397B,执行Build
    发表于 02-18 07:51

    Infineon官网下载的Demo工程,Tasking编译通过,移植Hightec报故障怎么解决?

    Demo工程在Tasking工程中,编译成功。 按照论坛大神之前分享的资料移植至Hightec编译器(lsl链接文件路径已修改,头文件已添加,),编译报错,如何解决?该在哪个文件夹下设
    发表于 02-20 08:11

    Hightec GNU学习的linker笔记(可参考Hightec GNU的linker手册)

    自己学习Hightec GNU的linker的笔记(可参考Hightec GNU的linker手册),因为是自学的,记录可能比较混乱。感兴趣的初学同学可以参考一下。建议还是以手册为准。linker notes.pdf (713.84 KB )
    发表于 12-14 10:41

    Linux系统的性能优化策略

    近年来,世界上许多大软件公司纷纷推出各种Linux服务器系统及Linux下的应用软件。目前,Linux 已可以与各种传统的商业操作系统分庭抗礼,在服务器市场,占据了相当大的份额。本文分别从磁盘调优,文件系统,内存管理以及编译优化等方面来论述 Linux系统的
    发表于 07-16 06:23

    FPGA设计应用及优化策略有哪些?

    EDA技术具有什么特征?FPGA是什么原理?FPGA设计应用及优化策略基于VHDL的FPGA系统行为级设计
    发表于 04-15 06:33

    英飞凌Tricore系列单片机开发工具HighTec免费申请方法

    英飞凌Tricore系列单片机开发工具HighTec免费申请方法
    发表于 11-13 15:51 20次下载
    英飞凌<b class='flag-5'>Tricore</b>系列单片机开发工具<b class='flag-5'>HighTec</b>免费申请方法

    浅谈hightec编译链接文件

    hightec编译链接文件的后缀为ld,因此后文简称ld文件,ld文件主要分为三个部分:宏定义、MEMORY命令、SECTIONS命令。
    的头像 发表于 03-15 11:13 2634次阅读

    如何搭建BIFACES+HighTec开发环境

    环境,但其本身是不集成编译器(Compiler)的,这就需要为工程项目配置外置的编译器,下面以使用HighTec集成的编译器为例介绍搭建步骤。
    的头像 发表于 04-12 10:22 935次阅读

    Android编译优化之混淆配置

    为了使用java8及后续java新版本的特性,Google增加了一步编译过程—脱糖(desugaring),但这一步会导致更长的编译时间,这也是为什么Google会推出D8和R8编译器来优化
    的头像 发表于 12-21 09:21 463次阅读
    Android<b class='flag-5'>编译</b><b class='flag-5'>优化</b>之混淆配置