早些年做MCU开发,一半以上工程师都会用IAR作为主要开发工具,不知道现在还有多少工程师还在用这款IDE工具。
今天就来聊聊这家位于瑞典的老厂,是怎么用 40 多年时间把一个看似边缘的工具,做成了汽车行业的"准基础设施"。
一、瑞典工程师 Anders Rundgren,1983 年开了一家"工程公司"
先把名字捋清楚——IAR 不是英文缩写,是瑞典语的缩写。
> Ingenjörsfirman Anders Rundgren
直译就是"Anders Rundgren 工程公司"。一个工程师拿自己名字开公司,这事儿在瑞典挺常见——典型的"匠人办企业"路数。
1983 年,Anders Rundgren 在瑞典中部小城乌普萨拉注册了 IAR Systems。乌普萨拉这个地方没听过没关系,跟你介绍两句——
·瑞典第四大城市,人口约 23 万
·北欧最古老的大学乌普萨拉大学就在这儿(1477 年建校)
·距离斯德哥尔摩大约 70 公里高铁车程
·卡罗琳娜医学院的分支也在这——诺贝尔生理学奖那个评审机构
简单说,乌普萨拉是瑞典的"剑桥/牛津"——大学城 + 工程师密集地。Rundgren 把公司开在这种地方,意思也很明白:靠学校养工程师,做最硬核的底层活。
公司成立时正好是 8 位单片机的黄金时代。Z80、Intel 8051、Motorola 6800 那一批刚刚普及到工业控制领域,但开发工具还停留在"手写汇编 + 烧 EPROM"的状态。Rundgren 看准了一个空缺——给 8 位 MCU 写一套像样的 C 编译器。
这一押,押了 40 多年。
二、Embedded Workbench:嵌入式 IDE 这个词就是它带火的
IAR 的拳头产品叫Embedded Workbench,业内一般缩写成EWARM(for ARM 版本)、EWSTM8(for STM8 版本)等等。
这玩意儿是什么概念?——它是把"工具链"四个字从命令行打包到图形 IDE 的开山之作之一。一个 EW 装下去,你拿到的是:
模块 | 作用 |
C/C++ 编译器 | 8/16/32/64 位 MCU/MPU/ASIC 全打通 |
汇编器 | 内置体系架构特定优化 |
链接器 | 复杂存储映射、bank 切换、far/near 内存模型 |
C-SPY 调试器 | RTOS 感知、多核调试、实时寄存器监控 |
C-STAT 静态分析 | MISRA C/C++、CERT C/C++、CWE 检查 |
C-RUN 动态分析 | 运行时错误检测 |
打开是个 IDE,关上是个工具链。Windows、Linux、容器里都能跑,跟 GitHub/GitLab 的 CI/CD 也能无缝串。
EW 早期最大的卖点其实不是花哨的 IDE,而是一件特别枯燥的事——代码生成质量。同一份 C 代码,IAR 编出来的二进制比别家小 20-28%、跑得快 29.8%。这种数字看上去不大,但对一颗只有32KB Flash 的 MCU 来说,省下来的 20% 就是一行 BOM。
我自己第一次用 IAR 是 2010 年代早期接 STM8 的项目。当时 GCC for STM8 还很不成熟(其实严格说今天也不算成熟),STM8 全家桶基本只有两个选择——Cosmic和IAR。我选了 IAR,编出来的 hex 比 SDCC 直接小一倍。这个体验是"价格贵但你不得不用"——后面会专门聊这个话题。
三、它支持的芯片有多离谱?
来看一组数据,2023 年 IAR 官方公布的数字:
维度 | 数据 |
累计支持的开发板装机量 | 超过100 万个嵌入式应用项目 |
支持的芯片型号 | 15,000+款 |
半导体合作伙伴 | 70+家 |
全球客户数(截至 2020) | 46,000+家公司 |
全球办公室 | 14间(2021 年) |
员工总数 | 约 200 人 |
上市状态 | 1999 年纳斯达克 OMX 斯德哥尔摩上市,股票代码IAR B |
70 家半导体伙伴 + 1.5 万颗芯片 + 200 个员工——这个比例真的吓人。意思是平均每个员工背后挂着 75 颗芯片的 BSP 和编译器后端。这种工作密度在国内公司基本不存在。
支持的架构是这么个清单:
架构家族 | 代表芯片 |
Arm(车规重点) | Infineon TRAVEO™ T2G、PSoC™ 4 HV,Microchip SAMA5/E5,NXP S32M/S32K,Renesas R-Car,还有芯驰 E3等国产车规MCU |
RISC-V | 阿里玄铁、SiFive 全系 |
Renesas 自研车规及工控线 | RH850、RL78——日系车厂动力总成的扛把子 |
8 位经典 | STM8——欧美工业控制还在大量用 |
AVR | Atmel/Microchip 的老牌 8 位 |
注意RH850/RL78这一行——这是日本瑞萨半导体的两条核心车规 MCU 产品线,丰田、本田、马自达的发动机/变速箱 ECU,95% 都在跑这俩。这两条产品线的官方推荐编译器,从头到尾就是 IAR。
四、真正的护城河:TÜV SÜD 功能安全认证
聊到这儿,重点来了。
我们做嵌入式开发的,最早接触 IAR 大都是在消费电子项目里——STM8 控个继电器、Arm 跑个 BLE,IAR 编一编就完事。但 IAR 真正活成"刚需"的地方,不在消费市场,在汽车行业。
汽车行业有一个绕不过去的标准:ISO 26262功能安全。
它把车上的电子电气系统按出问题的危险程度分了五级:
等级 | 出事严重程度 | 应用场景 |
QM | 一般质量 | 不涉及安全的车机娱乐 |
ASIL A | 轻微伤害 | 大灯、雨刷 |
ASIL B | 中等伤害 | 仪表盘、车身控制 |
ASIL C | 严重伤害 | 部分动力总成、ABS |
ASIL D | 致命伤害 | 电子转向、电子刹车、自动驾驶 |
要做一辆能上路的车,从最低的 QM 到最高的 ASIL D 全部要过。这意味着——你用的编译器、静态代码分析工具,全部要能"自证安全"。
如果你自己买一套 GCC 来想搞 ASIL D,光是把编译器的安全工具链验证做完,需要花多少钱?官方数据是这样的:
> 6 到 12 个月的工程师工时 + 完整的测试覆盖证据 + 第三方独立审计。
> 如果选 IAR 经过 TÜV SÜD 认证的工具链,这一切都已经现成。
TÜV SÜD 是德国的独立认证机构,全球做功能安全认证最权威的几家之一(TÜV 莱茵、SGS、UL)。IAR 是少数同时拿下 ISO 26262、IEC 61508、EN 50128、IEC 62304 四张证的编译器厂商——分别对应汽车、工业、铁路、医疗。
这就是 IAR 的护城河——你不用 IAR,你就得自己花一年时间和几百万人民币,把同样的活儿再干一遍。
DENSO(电装)的官方案例里说得很直白——他们之前一直在自己验证工具链,后来直接换成 IAR 经过认证的版本,编码效率提升 20%。换算成时间就是节省至少12 个月的认证周期。
五、做嵌入式的朋友一定调过 IAR
聊点跟我们日常工作直接相关的。如果你做过下面这些场景,IAR 你一定见过——
STM8:欧美工业控制最后的避风港
国内做家电、消费电子的同学可能没碰过 STM8。但你去翻欧洲那批工业老厂的 BOM 单——施耐德、ABB、博世家电——STM8 还在大量出货。这些项目的工具链清一色是 IAR EWSTM8,因为:
·ST 官方 IDE(STVD)已经多年没大更新
·GCC for STM8 实验性质
·SDCC 能用但代码大、效率低
·IAR 是 STM8 上唯一稳定、可商用的编译器选择
STM32 + ST-LINK:仿真器三部曲
虽然 STM32 上 Keil MDK 和 IAR 平分秋色,但做汽车项目时默认选 IAR。常见配置组合:
调试模式 | 引脚 | 适用场景 |
SWD(推荐) | 2 根(SWDIO + SWCLK) | 大多数开发板,引脚紧张 |
JTAG | 5 根(TCK/TMS/TDI/TDO/nTRST) | 复杂调试、需在线仿真 |
新手第一次配 IAR + ST-LINK,最常踩的坑是这几个——
现象 | 实际原因 | 解决 |
编译过了但下不进去板子 | 没勾 `Override default .icf` | Linker → Config 选对 .icf 文件 |
显示 "No target connected" | BOOT0 接错或供电不稳 | BOOT0 接地,外接稳压电源 |
芯片莫名锁死 | SWD 引脚被改成普通 IO | BOOT0 + NRST 短接进入系统存储器恢复 |
HardFault 一启动就跳 | .icf 用错了型号 | 哪怕只差几 KB 也不能偷懒拿别的型号的 |
多核车规调试:到了 RH850 这种级别,IAR 的 RTOS 感知、时序视图、实时性能分析全部是必装,因为传统办法根本调不动。
六、IAR 上市 + 财务数据
这家公司的财务也挺有意思。
节点 | 事件 |
1983 | 在瑞典乌普萨拉成立 |
1990 年代 | 主战场从 8 位转向 16/32 位 |
1999-01-04 | 在斯德哥尔摩纳斯达克 OMX 上市,股票代码IAR B |
2015-2019 | 净销售额从约 3.1 亿瑞典克朗增长到4.056 亿瑞典克朗(约 3 亿人民币) |
2020-10 | 市值约21.68 亿瑞典克朗(约 17 亿人民币) |
2023 | EWARM 9.40 集成 PACBTI(Arm v8.1-M 安全特性) |
3 亿人民币年营收 / 200 人 = 人均 150 万——这个数字在工业软件公司里属于第一档。
它的钱从哪儿来?答案就一个字——许可证。每一份 IAR EW 的商用版都是按工程师按席位卖的,单年许可费加维护费动辄几万人民币起步。这是一门看上去贵、但你别无选择的生意。
七、贵但不能不用:嵌入式工具链的"垄断税"
聊到 IAR,绕不开一个话题——它真的太贵了。
我们国内 STM32 项目大量在用盗版 IAR 这个事儿,圈子里都心知肚明。但凡正经一点的车规项目、医疗项目,没有谁敢用盗版——一旦审计或者认证机构查到,整个 ASIL 链路就崩了。
IAR 的定价大概是这个梯度(北美/欧洲市场):
版本 | 单席位年费(粗略) |
IAR EWARM 标准版 | 约 ¥3-5 万 |
IAR EWARM 功能安全版 | 约 ¥10-20 万 |
多人多席位企业版 | 谈合同价 |
跟同档对比:
工具链 | 单席位年费 | 功能安全认证 |
IAR EWARM | 3-5 万 | ✅ TÜV SÜD |
Keil MDK | 2-4 万 | ✅(部分版本) |
GCC | 免费 | ❌(要自己验证) |
Wind River Diab | 5-10 万 | ✅ |
Tasking VX | 4-8 万 | ✅(特别强 TriCore) |
这种价格背后是一种很特殊的工业软件商业模型——你不能不用,你又只能买。
类似的"垄断税"在嵌入式行业不少见:MATLAB / Simulink、Synopsys / Cadence 的 EDA、AUTOSAR 协议栈的 Vector / EB——它们共同的特点是认证背书 + 生态绑定 + 极少替代品。
国产工具链在过去 5-10 年里一直在补这块,但你看认证那条线——TÜV SÜD 一张证就要 1-2 年时间。这是技术问题,更是时间和工程严谨度的问题。
八、IAR 给国产工具链的启示
最后说点干货。
我自己做嵌入式十几年,看到国产 IDE / 编译器这条路上走得最远的是 RT-Thread Studio、芯驰自研工具链、华大半导体的 DDL,但是离 IAR 这种"全球车规级别"还有相当大的距离。
差距在哪?我列三条——
第一条:认证体系是真护城河
国产工具链在编译器优化上其实已经追得很近——很多场景代码生成质量跟 IAR 差距已经在 5% 以内。但 ASIL D 这一行,没有 TÜV SÜD 的章你就是进不了博世/电装/华为车 BU 的供应商名单。
第二条:长期"冻结版本"承诺
IAR 给客户的承诺是——一个版本一旦认证通过,可以"冻结"几十年。这个"几十年支持"对车规至关重要——一辆车设计出来到淘汰可能 15-20 年。这种支持不是技术问题,是公司能不能活那么久的问题。IAR 1983 年开张,已经活了 43 年。
第三条:硬核工程师文化 + 商业克制
200 人体量做到 3 亿营收 + 全球 70 家半导体伙伴。我看 IAR 那种"小而精"的样子,跟很多国产工具链团队"做大做强"的扩张冲动形成鲜明对比。
你说这种公司值得不值得国产工具链学?
我觉得,比起去硬卷 IAR,更现实的路径是先在某个细分赛道上做出 5-10 年的"持续性"。比如玄铁的 RISC-V 工具链、比如华为 LiteOS 的 BSP——只要你能在一个细分场景里坚持做 10 年、做出可被审计、可被认证的产品,剩下的事情时间会给答案。
九、写在最后
回到开头那个问题——
一家瑞典公司,凭什么让全球车规芯片都装它的编译器?
答案我捋一下:
关键因素 | 具体表现 |
时间 | 1983 年开张,43 年专注一件事 |
工程严谨 | 200 人维护 70 家半导体伙伴 + 1.5 万颗芯片 |
认证背书 | TÜV SÜD ISO 26262 / IEC 61508 / EN 50128 / IEC 62304 |
长期支持 | "冻结版本"几十年,匹配车规生命周期 |
四十年前,一个叫 Anders Rundgren 的瑞典工程师在乌普萨拉小城注册了一家用自己名字命名的小公司。他可能没想过有一天他的工具会跑在地球上每一辆现代汽车的发动机和刹车 ECU 里。
这就是工业软件最浪漫的地方——它不轰轰烈烈,但它足够长。
在一个被巨头反复并购、烧钱扩张的工业软件世界里,有一家瑞典小公司,用 200 个工程师、43 年时间,把"编译器"这一件事做到了全球车规芯片的默认选项。
致敬,IAR 。
也致敬所有在国产工具链一线、还在啃认证、啃 BSP、啃后端优化的工程师们
。
