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

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

3天内不再提示

SEGGER编译器优化和安全技术介绍 支持最新C和C++语言

麦克泰技术 来源:麦克泰技术 2024-06-04 15:31 次阅读

SEGGER编译器是专门为ARMRISC-V微控制器设计的优化C/C++编译器。它建立在强大的Clang前端上,支持最新的C和C++语言功能。

除其他外,其主要功能包括:

1)尺寸优化:通过调整代码生成,SEGGER编译器生成非常小的代码,非常适合内存受限的环境,而不会牺牲执行速度。

2)速度优化:在最高优化级别,SEGGER编译器生成尽可能快的代码,确保您的应用程序以峰值性能运行。

SEGGER编译器无缝集成到Embedded Studio中。它与SEGGER Linker、Assembler和Runtime Library一起,为任何嵌入式应用程序形成了一个专业工具链。

尺寸优化

SEGGER 编译器可以调整代码生成以生成小代码以优化大小,同时保持良好的执行速度。

下表显示了使用代码尺寸优化(-Oz)

430d70e4-221f-11ef-91d2-92fbcf53809c.png

速度优化

凭借最高的优化级别,SEGGER 编译器通过高级优化生成最快的代码,并且对代码大小的关注更少。下表显示了具有最高优化(-O3) 的编译器的性能值。

432c03ba-221f-11ef-91d2-92fbcf53809c.png

堆栈防溢出(STOP) 技术

借助 STOP 技术,编译器在调整堆栈指针之前,会在必要时添加对堆栈限制检查例程的调用。作为基于 Clang、高度优化的 SEGGER 编译器的一个选项,STOP 可以轻松启用,而无需对应用程序代码进行任何更改。这样,可以防止所有堆栈溢出。如果防止了堆栈溢出,系统可以进入安全状态并恢复。

麦克泰公司代理SEGGER全线产品,具有丰富的RTOS软件与工具使用方面的知识和经验,提供技术服务和培训教育。

SEGGER公司由Rolf Segger于1992年创立,目前正稳步发展。SEGGER总部位于德国蒙海姆,在美国波士顿设有分公司,并在英国,美国硅谷以及中国上海设有子公司,在全球有各地分销商(北京麦克泰是SEGGER公司在中国的分销商),使用户在全球范围内都能使用SEGGER全系列产品。

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

    关注

    180

    文章

    7551

    浏览量

    131846
  • 编译器
    +关注

    关注

    1

    文章

    1586

    浏览量

    48795
  • C++语言
    +关注

    关注

    0

    文章

    147

    浏览量

    6895
  • SEGGER
    +关注

    关注

    0

    文章

    35

    浏览量

    14027
收藏 人收藏

    评论

    相关推荐

    C51支持C++语言吗?

    C51支持C++语言吗?如果不支持,那个编译器支持
    发表于 02-08 10:45

    CC2540工程如何在C的工程中支持C++

    CC2540工程都是采用C语言进行创建编译的,应用要求增加C++的类,编译失败。通过修改IAR编译器
    发表于 03-21 11:36

    C语言——编译器的问题

    内存中一个阴暗恐怖的地方,同时安排了一个指针指向这个地方(暂时称为“神秘指针”),而这个指针会由C语言编译器作为一个隐藏参数传递给函数Func。当函数Func返回时,编译器生成的代码
    发表于 04-20 15:14

    C++笔记010:C++C的扩展——register关键字增强

    的地址在C语言里面是会出错的。同样的代码我们放到C++编译环境下,发现编译是通过的!在C++中依
    发表于 08-11 12:34

    C++服务编译耗时优化的原理和服务分析

    命令不属于C/C++语句(这也是定义宏时不要加分号的原因),语法检查是编译器要做的事情。预处理之后,得到的仅仅是真正的源代码。编译器:生成汇编代码,得到汇编
    发表于 12-23 17:32

    S32DS C编译器/标准S32DS C++编译器-优化,,(-O3) 和 (-Os) 的MCU功能和性能是否完全相同?

    对于S32DS C编译器/标准S32DS C++编译器-优化,当我们将设置从最优化(-O3)更改
    发表于 04-06 07:48

    如何为Arm编译Cc++代码

    Studio或Keil MDK IDE环境中。 Linux编译常见的编程语言在Arm上得到了很好的支持,大多数开源工具都可以在Linux发行版提供的包中使用。用于C++
    发表于 08-02 17:28

    Arm C/C++编译器开发人员和参考指南

    提供帮助您使用Arm®编译器Linux版的Arm®C/C++编译器组件的信息。Arm®C/C++
    发表于 08-10 06:17

    Arm C/C++编译器22.1版开发人员和参考指南

    提供帮助您使用ARM®编译器Linux版的ARM®C/C++编译器组件的信息。 ARM®C/C++
    发表于 08-11 07:46

    RealView用于BREW编译器和库的编译工具指南

    99的一些功能,如Long Long,也是可用的。 ARM C++编译器期望C++符合国际标准化组织/国际电工委员会14822:1998年的C++国际标准。 有关ARM
    发表于 08-12 07:38

    TMS320C54x汇编语言工具C/C++编译器的功能优化详细概述

    该系列是一套软件开发工具的支持,其中包括一个优化的C/C++编译器、汇编器、链接器,以及组合工具。本章提供了这些工具的概述,介绍了功能
    发表于 04-27 09:43 10次下载
    TMS320C54x汇编<b class='flag-5'>语言</b>工具C/<b class='flag-5'>C++</b><b class='flag-5'>编译器</b>的功能<b class='flag-5'>优化</b>详细概述

    MSP430优化C/C++编译器V 3.2用户指南

    MSP430是由一套软件开发工具的支持,其中包括一个优化的C/C++编译器、汇编器、链接器、及配套的公用设施。
    发表于 05-07 17:25 9次下载
    MSP430<b class='flag-5'>优化</b>C/<b class='flag-5'>C++</b><b class='flag-5'>编译器</b>V 3.2用户指南

    MSP430优化C/C++编译器V 3.3用户指南

    本章提供了这些工具的概述,介绍优化的C / C++编译器的特点。在MSP430汇编语言工具的用户指南中详细讨论了汇编器和链接器。
    发表于 05-07 17:28 7次下载
    MSP430<b class='flag-5'>优化</b>C/<b class='flag-5'>C++</b><b class='flag-5'>编译器</b>V 3.3用户指南

    英特尔C++和Fortran编译器的逐渐优化过程介绍

    这是一个介绍视频,解释了英特尔®C++和Fortran编译器提供的逐步优化
    的头像 发表于 11-05 06:21 2967次阅读

    基于GCC实现支持MISRAC的安全编译器

    基于GCC实现支持MISRAC的安全编译器(通信电源技术杂志简介)-基于GCC实现支持MISRAC的安全
    发表于 09-24 11:09 9次下载
    基于GCC实现<b class='flag-5'>支持</b>MISRAC的<b class='flag-5'>安全</b><b class='flag-5'>编译器</b>