ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

IAR与东软睿驰战略合作,汽车软件工具链生态走向深度绑定

IAR与东软睿驰战略合作,汽车软件工具链生态走向深度绑定 IAR和东软睿驰宣布战略合作的消息在嵌入式圈子里传得挺快。说实话我第一反应是这两家凑到一起有点东西。一个是在嵌入式工具链里摸爬滚打了几十年的老牌厂商一个是国内汽车基础软件领域快速崛起的头部玩家它们联手表面看是“工具平台”的常规组合但往深了想这其实是给整个汽车软件开发链条释放了一个明确信号——工具链和生态的深度绑定已经从“可选”变成了“必选”。很多做嵌入式的朋友可能对IAR不陌生上学时搞51、STM32工作后做车规级MCU大概率都碰过IAR Embedded Workbench。但东软睿驰这个名字可能一些纯做底层驱动的工程师还不太熟悉。它做的是汽车基础软件平台、中间件是连接芯片和上层应用的关键层。这两个角色走到一起最终受益的其实是一线的软件工程师。这篇文章不打算写成新闻通稿我尽量以从业者的视角把这次合作背后的产业逻辑、对开发者的实质影响以及我们在实际用IAR时的一些经验和坑一次讲清楚。1. 一次战略合作背后的产业逻辑工具商和平台商为什么必须站到一起1.1 汽车软件开发正在经历从“点”到“面”的痛苦转型如果你这两年参与过整车级软件项目应该能明显感觉到一个变化以前做ECU开发基本就是“一个芯片一个编译器一套AUTOSAR/裸机代码”就完事了大家关心的是怎么把某个功能跑起来。但现在完全不一样了功能越来越多电子电气架构往域控制器集中一辆车上有几十个甚至上百个ECU软件代码量从百万行级别直接跳到亿行级别。这时候最头疼的问题不再是“某个函数写得对不对”而是“这么多模块怎么集成”“这套代码怎么在不同芯片之间复用”“工具链能不能支撑快速迭代”。说白了软件开发从“点状”变成了“网状”过去各干各的模式走不通了。在这个背景下两个角色变得非常重要一是提供统一开发工具链的厂商二是提供标准化基础软件平台和中间件的厂商。前者决定工程师每天写代码、编译、调试的效率和体验后者决定上层的应用软件能不能跨平台、跨车型地复用。国际合作的价值在于它把两者之间的适配成本从“工程师自己扛”变成“厂商替你搞定”。1.2 IAR为什么需要东软睿驰这样的“生态合伙人”IAR在工具链领域的技术底子是公认的尤其是编译器的代码密度和编译速度在ARM、RISC-V为主的MCU开发里一直口碑很好。但传统的工具链厂商有一个天然的短板它能帮你把代码高效地变成可执行的二进制但它不太懂你代码要跑在什么样的软件架构里。汽车行业现在的软件架构越来越复杂AUTOSAR CP/AP、SOA、中间件、OTA升级、信息安全这些全都不是靠一个编译器能解决的。如果工具链和这些平台之间没有深度适配工程师就会陷入无休止的“折腾环境”里今天这个插件版本不兼容明天那个配置工具生成不了代码后天调试器又连不上目标板。时间全花在环境上哪还有精力做业务功能所以IAR需要的不只是一个“用户”而是一个能定义软件架构、能带来大规模落地场景、还能一起打磨工具链需求侧反馈的合作伙伴。东软睿驰正好在这些方面有布局NeuSAR是国内少有的能让AUTOSAR落到量产项目里的基础软件平台它带来的适配需求和真实场景对IAR来说有非常大的价值。1.3 东软睿驰在下一盘关于“软件定义汽车”的大棋再站在东软睿驰的角度看。做汽车基础软件平台最关键的一个环节是开发者生态。再好的中间件如果开发工具不方便底层代码生成和调试一团糟客户和开发者都会被劝退。尤其是在国内很多工程师习惯了上手快、教程多、坑少的工具链如果这是个“劝退”的工具那技术再好也白搭。东软睿驰这几年一直在围绕NeuSAR构建工具链和生态但基础软件平台涉及的芯片型号、编译器、调试器、配置工具的组合几乎是天文数字完全靠自己做适配不现实。它需要拉上IAR这种工具厂商把最底层、最常用的编译调试环节做到“开箱即用”。这对东软睿驰的价值不亚于签下一个大客户订单——它直接降低了客户的开发门槛让“从芯片到应用”的链路更顺滑。所以这次合作更像是一个信号工具链厂商和基础软件平台商正在从“各自为政”走向“联合作战”。对工程师来说这意味着以后做项目时很多原本需要自己花一两周去解决的集成问题可能开箱就是好的。2. 工具链“老炮儿”IAR凭什么还能打不只是编译器强更在于适配深2.1 代码密度与编译速度是嵌入式的两条腿聊到IAR很多老工程师的第一反应就是它的编译器确实有一手。嵌入式开发里Flash和RAM都是真金白银同一份逻辑IAR编译出来的代码可能比某些开源工具链小个百分之十甚至更多。别小看这几KB的差距在消费电子里可能无所谓但在车规级MCU上Flash价格高、容量有限密度就是成本。编译速度也很关键。现在的大型软件工程动辄几百上千个源文件如果一次全量编译要等十分钟以上一天下来光是等编译就能把人等疯。IAR在增量编译和链接阶段的优化做得比较到位我实测下来大项目的干净构建和重新编译速度明显比一些加重型框架的IDE要快。尤其是改一行代码然后点增量编译反馈速度直接关系到开发的流畅感。2.2 调试和跟踪能力不光能看还能“追”编译只是基本功真正决定效率的是调试体验。IAR Embedded Workbench里那个调试器是我用得最顺手的地方之一它不只是打断点看变量那么简单还支持复杂的Trace分析和覆盖率分析。在汽车电子这类对时间确定性要求很高的场景里能有这么一个工具去查时序问题、查任务执行路径帮助是巨大的。另外IAR对芯片厂商的支持非常积极像NXP、ST、瑞萨、英飞凌这些汽车电子主力厂商的新品基本在早期就能拿到配套支持。这一点在车规项目里很重要——你很可能在芯片还没完全量产的时候就要开始做预研和软件适配如果工具链不支持或者支持太晚整个项目的进度都会卡住。2.3 功能安全认证是车规开发绕不开的“入场券”还有一个我们平时可能不太关注但极其重要的点功能安全。汽车软件开发必须考虑ISO 26262这个标准如果你的工具链本身没有通过相关的认证那么你在做功能安全相关的软件时整个工具链的置信度评估会非常麻烦。IAR这块做得算早的它的工具链针对ISO 26262有专门的认证套件可以提供TÜV认证的证书和相关文档。在跟功能安全相关的BMS电池管理系统、VCU整车控制器等项目中这直接决定了开发流程能不能顺利过审。这种隐形价值在合作中很容易被忽略但对真正做量产项目的团队来说这可能是选择IAR而非其他工具的重要理由。3. 当IAR遇上东软睿驰NeuSAR开发效率和生态协作到底怎么落地3.1 合作最直接的落点基础软件工程的编译调试“零障碍”战略合作的文件一般写得比较宏观但工程师最关心的永远是我用的时候到底哪里变好了从我了解的信息和行业惯例来看这次合作最值得期待的落点是东软睿驰NeuSAR相关的基础软件工程在IAR Embedded Workbench中能做到充分的适配和优化。简单说以前你如果基于NeuSAR搭建AUTOSAR工程可能需要在配置工具里生成代码再手动配编译器、链接脚本、调试器中间任何一个环节不匹配都可能出问题。有些工程师光是搞明白那些生成的代码怎么跟工具链配合就要花掉大半个月。合作之后IAR这边会针对NeuSAR的标准工程模板做验证和适配很多配置可以拿过来直接用编译链接调试一气呵成整个过程的“摩擦力”小多了。3.2 赋能的具体体现模板工程、底层驱动与调试插件的深度整合战略合作通常会衍生出一些实际可用的工具包。比如针对NeuSAR的标准工程IAR可能会推出预配置的工程模板包含了正确的芯片配置、链接文件、启动文件、调试配置等。这对于刚接触AUTOSAR或者刚切换到IAR的团队来说等于拿到了一个可以直接“抄作业”的标准答案。另外我在一些资料里看到东软睿驰NeuSAR的配置工具和IAR的工程文件之间有可能会打通双向同步。也就是说在NeuSAR那边做了模块配置、生成了新的代码后IAR工程里的文件结构能够自动识别更新不需要手动去把新文件拖进来。这比写一文档让你照着做要实在得多。3.3 瞄准的目标场景域控制器、BMS和下一代电子电气架构这种“平台工具”的合作组合瞄准的应用场景也很清晰。一个是新一代的域控制器开发这些项目软件架构复杂、需要多个MCU之间紧密配合工具链的调试能力和编译性能直接决定开发效率。另一个是BMS这类对功能安全要求极高的应用前面说过IAR的认证基础和NeuSAR的AUTOSAR支持能让功能安全流程走得更顺。长远一点看随着中央计算平台成为趋势软件的复杂度和迭代速度会进一步加大这个时候开发工具链在持续集成、自动化测试、版本管理中的参与度也会越来越高。IAR和东软睿驰在这个时间节点合作也是在提前卡位下一代开发模式给未来的联合解决方案铺路。4. 对开发者来说这东西到底怎么用从工程创建到避坑心得4.1 普通人能从这波合作里拿到的最实际红利是什么如果你是一个正在或者准备做汽车电子软件开发的工程师这波合作对你个人的最直接影响就是以后用IAR做东软睿驰相关平台项目的学习成本会降低遇到的问题也会更少因为两边在底层帮你把障碍扫掉了。但往宽了说这次合作也给了我们一个提示选工具链别再只看编译器多猛、界面多花哨要看它跟上下游生态的适配度。一个能够和主流基础软件平台深度合作的工具链大概率比一个“孤胆英雄”式的工具链能在实际项目中帮你节省更多时间。所以我一直建议身边的工程师在选型阶段就要把“生态适配”作为重要的考量维度不要光看跑分。4.2 从零到一用IAR新建一个嵌入式工程的开荒记录工具这事光看介绍不够我用一个实际创建工程的流程来说说上手的真实体验到底怎么样。无论你是做车规项目还是做一般的MCU开发这套流程都比较通用。打开IAR Embedded Workbench后第一步是File - New - Workspace创建一个新的工作区文件。如果你已经有工作区直接用Open Workspace打开现成的就行。第二步是创建一个工程Project - Create New Project。在弹出的窗口里选择芯片型号或者工具链一般情况下IAR会自动识别你当前搭建的芯片平台比如ARM Cortex-M系列。创建完成后你会得到一个带有一个main.c模板文件的空工程。第三步是设置芯片参数和调试选项这是很容易踩坑的一步。右键点击工程名选择Options然后在General Options里设置好你的目标芯片或头文件路径。在Debugger选项卡里根据你手上的调试器选好接口常见的是I-jet、J-Link或者ST-Link。很多人编译不通过查找原因时往往发现是这里没有配置正确。第四步是添加你自己的源文件。直接右键工程名选择Add - Add Files把需要的.c和.h文件加进来。注意IAR中头文件路径可以分成两种方式设置一种是在Options - C/C Compiler - Preprocessor里添加Include路径另一种是用$PROJ_DIR$这样的环境变量方便做路径管理。我建议团队项目都用相对路径加$PROJ_DIR$来处理这样换了电脑或者换了存放位置工程也不会因为路径报错。最后一步就是编译和下载调试。Project - Compile可以快速编译当前文件Debug - Start Debugging可以直接进入调试模式。测试下来IAR的编译反馈很快问题定位也准看变量、看寄存器、实时跟踪任务栈的使用情况都很直观。整体感受就五个字干净利落脆。4.3 使用IAR过程中绕不开的那些坑在分享了一个流畅通顺的流程之后我有一点必须说在前面我用IAR少说也有好几年了早期踩过的坑真的不少这里整理几个有代表性的给新手朋友们参考。第一个是工程路径不能有中文或特殊字符。IAR这个工具对路径比较敏感路径中一旦有中文、空格或者特殊字符编译时会出现各种难以理解的错误。很多人找不到原因最后把整个工程路径改造一遍就好了。第二个是芯片头文件和编译器的兼容性。某些国产芯片如果用IAR的话可能需要在工程里自己添加一个专用的头文件来适配不能直接用默认的。很多人新建工程时忘记这一步结果初始化死活不对。正好我最近也看到有网友问“怎么下GD32的pack包”其实IAR里和很多IDE类似也需要安装对应的芯片支持包。不过包管理器在安装时很容易被安全软件拦掉或者网速不给力下载失败这里建议下载完成后手动解压到对应的安装目录再重启IAR。多折腾几次你就明白工具链选型谁用谁知道。第三个坑也是最常见的一启动就“菜单栏消失”或者界面错乱。这个问题我在IAR 8.11.3版本上遇到过菜单栏直接没了乍一看以为IDE坏了。其实多半是你的窗口布局状态文件出错了settings目录里的相关文件被强制清理或者修改过。解决方案也比较简单把工作区目录下的settings文件夹里的窗口状态文件删掉重新打开工程就能恢复。这听起来有点“野路子”但在官方没出修复前这确实是最快的办法。再有一个就是代码优化等级导致的行为异常。编译器优化开了之后数组越界、未初始化变量、悬空指针这些问题的表现可能会和开优化之前完全不一样。很多时候不是你代码逻辑错了而是优化等级一开时序敏感的地方就被编译器“聪明地”重排了。排查问题的时候先用低优化等级跑定位到问题之后再调整这个做事习惯能帮你省下不少排查时间。4.4 一个长期项目里的感悟工具稳定比新功能更重要做了这么多年的嵌入式开发我最大的感悟是工具链的稳定性远比新功能的数量更值得被优先考虑。在量产的汽车项目中一旦某一天编译出来的代码行为发生变化你很难区分到底是代码问题、工具问题还是硬件问题。用一套经过大量项目验证、版本迭代稳定的工具链可以帮你少很多这种玄学层面的排查工作。这也是我比较认可这次合作的一个原因——战略合作不只是签一个文件更重要的是两边会投入实际的人力去适配对方的版本去验证各种场景。对于用户来说这种集中式的验证比我们自己一个一个去试错要可靠得多。5. 这次合作背后的另一个看点开发工具链的“生态协同”趋势5.1 工具链正在从“单一编译器”走向“全链路协同平台”这次合作如果放在更大的视野下来看其实折射出行业的一个新趋势开发工具链正在从单一独立的IDE演变成覆盖编译、调试、配置、分析、测试的全链路协同平台。以前的IAR大家认知里就是一个很能打的IDE。但在现代汽车软件的开发中IDE只是其中一环。前面要有装备配置工具生成代码后面要有持续集成做自动化验证再往后还要跟各种测试工具、标定工具通信。如果工具链不能把这些环节串联起来单点再强也很难发挥出完整的效率优势。IAR和东软睿驰这样的合作其实就是在帮开发工具链从“点”延伸到“面”。IAR负责底层工具侧的扎实和稳定东软睿驰在上层的软件架构和配置工具侧搭桥。二者结合后开发者从拿到一个ECU开发需求到生成基础软件、编译、调试、验证可能在同一个工具流里就能顺畅完成减少中间环节的“硬切换”。5.2 国内汽车软件工具链生态的“远水”与“近渴”为什么这次合作会有如此大的关注度还有一个大背景是国内汽车软件这几年发展很快但底座级的工具链生态在很长一段时间里主要依赖国外厂商。虽然我们有了自己的基础软件平台但上面的编译器、IDE、调试器很多还是在用国外产品。所以像IAR这类老牌工具商和东软睿驰这种本土基础软件平台商的深度握手本身就是在加速工具链在本土场景的落地适配这对整个行业来说是有积极意义的。当然这不是说一套工具就能解决所有问题。汽车软件的复杂度决定了它需要多种工具组合在性能优化、疑难杂症排查等特定环节工具链和平台之间如何能配合得更紧密还需要更多像这次一样的合作去打磨细节。6. 给嵌入式工程师的几条实在建议不管你现在用不用IAR6.1 把工具链的“生态宽度”纳入选型标准很多工程师选开发工具时首先看的是编译器的跑分、调试器的功能列表。这些当然重要但我建议你再加一个维度生态宽度。也就是这套工具跟你所在领域的软件平台、芯片厂商、中间件提供商之间的适配程度。一个人单打独斗的编译器再强如果每次适配一个新平台都要自己写脚本、改链接脚本、调配置给你项目带来的实际体验并不会太好。反过来如果一个工具链虽然某些所谓“硬指标”不是最强但它跟你的每个合作方都能顺利接通那大概率才是你在量产项目里真正需要的。IAR跟这么多芯片厂商、现在又跟东软睿驰这样平台商合作本质就是在加宽这个生态护城河。6.2 与其等教程不如直接从官方模板“白嫖”最佳实践我见过不少同事遇到不熟悉的新工具第一反应是在各大论坛里翻碎片化的教程结果下载下来的东西质量参差不齐有时候教程本身的工程配置都是不完整的。其实官方渠道才是最快的路径。就拿IAR来说它在安装目录里就带了不少芯片厂商的工程模板很多官方例程也提供了IAR工程文件。你直接从这些例程上改不需要自己从头配置寄存器也不容易踩到前面说的路径、芯片头文件之类的坑。东软睿驰的NeuSAR这块合作展开后大概率也会提供针对IAR的模板工程那就更省事了直接以官方模板为起点去做功能和业务开发绝对比自己从零搭要快。6.3 养成“改动留痕”的好习惯排查省一半时间最后一个纯粹经验之谈嵌入式开发中很多“玄学”问题其实都跟环境变化有关。今天调试突然现象不对很多时候不是你代码改了而是某个设置项被动过、某个依赖库被换过版本。所以建议在IAR这类IDE里养成一个习惯关键节点备份一下工程配置和编译器版本信息做到开发环境有迹可循。我在实际项目里会专门维护一个文档记录每个阶段用的IAR版本、编译优化等级、调试点配置以及在哪个时间点切换过芯片型号。这样一旦出问题先查环境变化很多时候比对着代码发呆更能快速定位问题。这个习惯配合IAR的状态恢复功能基本能保证你在长周期项目里不被环境问题拖住。7. 我对这次合作的三点真实判断这件事我捋了一下有几个个人判断不一定对分享出来供大家参考。第一这次合作不会是简单的“品牌互相站台”。回顾东软睿驰过往的动作它在拉生态这件事上一直比较认真而IAR在全球也有比较成熟的合作体系。两边在技术侧的资源投入是能看得到的后续大概率会定期放出一些适配好的工具包和工程案例这些对一线工程师是实实在在的利好。第二北京市和东软睿驰在汽车软件方向的布局其实不是孤立事件。整车软件复杂度上升之后基础软件平台的短板越来越明显很多厂商都在补课。东软睿驰选择在这个时机强化工具链侧的生态是在给之后的规模化铺路这次和IAR的合作属于其中比较关键的一步。第三对我们这些做技术的人来说不用急着站队说“某个工具就是最好的”。工具是拿来用的不是拿来崇拜的。在合适的场景里把合适的工具用到极致才是我们该操心的事。IAR这次主动往生态上走了一步至少说明它在尝试理解国内汽车软件开发者的真实需求作为用户我觉得这是值得肯定的方向。如果你也在做或者准备做汽车嵌入式开发建议现在就可以找个开发板把IAR环境搭起来把基础的工程模板跑通一遍。结合这次东软睿驰和NeuSAR的方向把AUTOSAR的基础概念也一起过一遍。等真正上了项目你会发现前期这些看似不紧不慢的准备工作回报率都很高。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表