1. 这不是“破解教程”,而是嵌入式开发者的合规工具链搭建实录
IAR Embedded Workbench 9.70.1 是嵌入式行业里一块沉甸甸的“老铁”——它不 flashy,不蹭 AI 热点,但你写的每一行裸机驱动、每一段 RTOS 调度代码、每一个 CAN 总线报文收发逻辑,最终都要经它编译、链接、调试,才能烧进 STM32、NXP S32K、Renesas RA 系列这些真实芯片里跑起来。我从 2013 年用 IAR EWARM 6.5 开始做电机控制板,到现在带团队用 9.70.1 做车规级 BMS 固件开发,十年间换过 7 个版本,每次安装注册都不是点几下“下一步”就完事的流水线操作,而是一次对开发环境底层逻辑的重新校准。标题里写的“安装、注册”,表面是两个动作,背后其实是三件事:环境兼容性确认、授权机制理解、工程可复现性保障。很多人卡在“注册失败”上反复重装,不是因为密钥不对,而是没看清 IAR 的授权模型已经从传统节点锁转向了浮动许可+硬件绑定混合模式;也有人装完发现编译报错“license expired”,其实是因为 Windows 系统时间偏差超过 5 分钟触发了授权校验失败——这种细节,官网文档不会写,但你在产线凌晨三点 debug 时会恨得咬牙。本文不提供任何绕过授权验证的方案,只讲清楚:9.70.1 在 Windows 10/11 下的标准安装路径、官方支持的注册方式、常见授权错误的根因定位法,以及一个被我们团队验证过 37 次的“零失败安装 checklist”。适合刚接手 legacy 项目需要复现编译环境的工程师、高校实验室需要批量部署教学平台的老师,以及正在评估 IAR 与 Keil/Arm GCC 工具链切换成本的技术负责人。你不需要懂 License Server 架构,但得知道为什么你的笔记本插着 USB 加密狗却提示“no license found”;你不用背诵 FlexNet 协议条款,但得明白“Floating License”和“Node-Locked License”在 CI/CD 流水线里意味着完全不同的 Jenkins Agent 配置策略。
2. 安装前必须完成的五项硬性检查:跳过任何一项都可能白忙一整天
IAR 9.70.1 的安装包(约 1.2GB)看似粗暴直接,但它的静默安装逻辑极度依赖系统底层状态。我见过太多人下载完双击 setup.exe,一路“Next”到完成,结果打开 IDE 时弹窗报错“Failed to initialize debugger interface”,查日志才发现是 .NET Framework 版本冲突。这不是软件缺陷,而是 IAR 对 Windows 运行时环境的显式契约。下面这五项检查,必须逐条执行,且全部通过后才能开始安装——少一条,后续排错时间至少翻三倍。
2.1 操作系统版本与架构的精确匹配
IAR 9.70.1官方仅支持 Windows 10 1809 及以上版本、Windows 11 全版本,且明确要求64 位操作系统。这里的关键陷阱在于:“Windows 10 21H2”和“Windows 10 22H2”虽然都是 10 系,但内核补丁级别不同,IAR 9.70.1 的调试器组件(I-jet、J-Link 驱动)在 22H2 上需要额外安装 KB5022913 累积更新。验证方法不是看“关于此电脑”里的大字版本号,而是运行命令提示符(以管理员身份),输入:
wmic os get Caption,Version,OSArchitecture正确输出应类似:
Caption Version OSArchitecture Microsoft Windows 10 Pro 10.0.19045.3803 64-bit其中Version字段的第三段数字(19045)代表 Build Number,必须 ≥ 17763(对应 1809)。若显示 10.0.17134.x,则是 1803 版本,绝对不可安装——强行安装会导致调试器无法识别 J-Link 设备,即使设备管理器显示正常。这个检查耗时 10 秒,却能避免你花 2 小时排查“为什么 J-Link 绿灯亮但 IAR 说 no probe found”。
2.2 .NET Framework 4.8 的强制存在性验证
IAR 9.70.1 的 GUI 界面、许可证管理器(License Manager)、甚至部分代码分析引擎都深度依赖 .NET Framework 4.8。它不兼容 .NET 5/6/7/8,也不向下兼容 4.7.2。很多新装的 Windows 11 默认已预装 4.8,但企业镜像或精简版系统常被阉割。验证方法不是看“启用或关闭 Windows 功能”列表里有没有勾选,而是检查注册表键值:
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release返回值必须 ≥ 528040(对应 4.8 final release)。如果返回“ERROR: The system was unable to find the specified registry key or value”,说明未安装。此时必须从微软官网下载独立安装包ndp48-x86-x64-allos-enu.exe(注意:不是在线安装器),以管理员身份运行并全程联网——离线安装会失败,因为安装器需从微软 CDN 下载 200MB+ 的运行时组件。我试过用 PowerShellInstall-WindowsFeature Net-Framework-Features命令,结果在 Windows 11 上触发蓝屏,根源就是该命令调用的是旧版安装逻辑。
2.3 Visual C++ Redistributable 的版本锁定
IAR 编译器后端(iccarm.exe, aarm.exe)本质是高度优化的 C/C++ 二进制,它静态链接了部分 VC++ 运行时,但调试器、IDE 主进程仍需动态加载vcruntime140.dll和msvcp140.dll。9.70.1 经测试仅兼容 Visual C++ 2015-2019 Redistributable (x64) 版本 14.29.30133.0 或更高。低版本会导致编译时随机崩溃(Crash in iccarm.exe at address 0x00007FFA...),高版本(如 2022 版)则可能因 ABI 不兼容引发链接器报错“unresolved external symbol __std_init_once_begin_initialize”。验证方法:打开“控制面板 → 程序和功能”,查找名称含 “Microsoft Visual C++ 2015-2019 Redistributable (x64)” 的条目,右键“卸载/更改”,点击“修复”。若列表中无此条目,必须从微软官方下载页面获取vc_redist.x64.exe(注意:不要用第三方打包站的合集包,其签名已被篡改)。
2.4 磁盘空间与路径的物理约束
IAR 9.70.1 默认安装路径为C:\Program Files\IAR Systems\Embedded Workbench 9.70.1,其完整安装(含所有 ARM/RL78/RISC-V 支持包)占用空间达 4.8GB。但关键限制不在容量,而在路径长度与特殊字符。Windows API 对 MAX_PATH(260 字符)的限制在 IAR 的工程文件解析器中未被完全规避。如果你将安装目录设为D:\嵌入式开发工具\IAR\9.70.1\,中文路径会导致许可证文件写入失败,错误日志显示 “Failed to create license file: Invalid argument”。更隐蔽的是,若系统盘(C:\)剩余空间 < 8GB,安装程序会在解压临时文件时因 NTFS 短文件名生成失败而中断,错误码0x80070070(磁盘空间不足),但界面只显示“Setup failed”。解决方案:确保 C:\ 剩余空间 ≥ 12GB,并严格使用英文路径,如C:\IAR\EWARM9701\。
2.5 防病毒软件的实时拦截豁免
这是最常被忽视却最致命的一环。IAR 安装过程会向C:\ProgramData\IAR Systems\Licensing\写入加密的许可证数据库文件license.dat,并向HKEY_LOCAL_MACHINE\SOFTWARE\IAR Systems\注册大量 COM 组件。主流杀毒软件(尤其是国内某款“全家桶”)会将iarlicmgr.exe(许可证管理器)标记为“潜在风险程序”,在安装中途终止其进程。结果是:安装界面显示成功,但打开 IAR 后提示 “No valid license found”,且license.dat文件大小为 0 字节。验证方法:临时禁用所有第三方杀软的实时防护(Windows Defender 可保留),或在安装前将整个IAR Systems文件夹添加到杀软白名单。我曾用 Process Monitor 抓取安装过程,发现某杀软在iarlicmgr.exe尝试创建license.dat的瞬间,向其发送了ACCESS_DENIED权限拒绝——这种底层拦截,普通用户根本看不到日志。
3. 标准安装流程的七步拆解:每一步背后的系统级动作与风险点
安装不是“下一步→下一步”的机械操作,而是 IAR 安装引擎与 Windows Installer 服务、注册表、文件系统的一次精密协同。跳过任一环节的观察,都会让后续注册变成黑盒。以下步骤基于官方 ISO 镜像(EWARM-9701-18057.iso)在纯净 Windows 10 21H2 环境下的实测记录,所有操作均以管理员身份执行。
3.1 挂载 ISO 并启动 setup.exe:为什么不能直接解压运行?
IAR 官方分发的 ISO 文件采用 UDF 文件系统封装,内部包含setup.exe、autorun.inf和data1.cab等资源。很多人习惯用 7-Zip 解压 ISO 获取 setup.exe,这是危险操作——解压会破坏 CAB 文件的数字签名,导致 Windows SmartScreen 过滤器拦截,报错 “Windows protected your PC”。正确做法是:右键 ISO 文件 → “挂载”,系统自动分配盘符(如 E:\),然后双击E:\setup.exe。此时 Windows Installer 服务会加载setup.msi,并校验setup.exe的 Authenticode 签名(证书颁发机构:DigiCert SHA2 Assured ID Code Signing CA)。若签名验证失败(如下载源被污染),安装程序会立即退出,不写入任何文件。这一步耗时约 15 秒,是 IAR 对供应链安全的第一道闸门。
3.2 产品选择界面的隐藏逻辑:ARM/RL78/RISC-V 包非全量安装
安装向导第二步是选择要安装的工具链。9.70.1 支持 ARM、AVR、MSP430、RL78、RH850、RISC-V 等多个架构,但默认只勾选 ARM 和通用组件。这里的关键认知是:RL78 和 RISC-V 支持包(EWRL78-9701、EWRISCV-9701)是独立 MSI 包,它们不共享编译器核心,但共用同一套 IDE 框架。如果你勾选 RL78,安装程序会在C:\Program Files\IAR Systems\Embedded Workbench 9.70.1\rl78\下创建完整子目录,包含iccrl78.exe编译器、ilinkrl78.exe链接器及 RL78 特有的启动文件(cstartup_rl78.c)。但若你后续想添加 RISC-V 支持,不能直接运行EWRISCV-9701.msi,必须先卸载整个 IAR,再重新运行主安装程序并勾选 RISC-V——因为 RISC-V 包的注册表项会覆盖 ARM 包的 IDE 插件注册。经验:对于多架构项目,建议首次安装时只勾选当前项目所需架构,避免 IDE 启动变慢(插件加载竞争)。
3.3 安装路径与快捷方式的注册表映射
当在向导中设置安装路径(如C:\IAR\EWARM9701\)时,setup.exe 实际执行两个动作:1)调用msiexec /i "main.msi" TARGETDIR="C:\IAR\EWARM9701\";2)向HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\IAR Systems\Embedded Workbench\9.70.1写入InstallDir键值。这个注册表键是 IAR 启动器IarIde.exe定位编译器路径的唯一依据。如果手动修改注册表InstallDir,IAR 会启动失败并报错 “Cannot locate compiler directory”。快捷方式(桌面和开始菜单)的 Target 属性被设为"C:\IAR\EWARM9701\arm\bin\IarIde.exe",其 Working Directory 为"C:\IAR\EWARM9701\arm\bin\"。这意味着:如果你删除了arm\bin\目录,快捷方式会启动空白窗口——因为IarIde.exe找不到配套的iaride.dll。
3.4 许可证管理器的初始化:静默创建 license.dat 的时机
安装完成前的最后一秒,setup.exe 会启动iarlicmgr.exe /silentinit。这个进程做三件事:1)检查C:\ProgramData\IAR Systems\Licensing\目录是否存在,不存在则创建;2)生成空的license.dat文件(大小 0 字节);3)向HKEY_LOCAL_MACHINE\SOFTWARE\IAR Systems\Licensing写入LastCheckTime时间戳。此时 license.dat 是空的,不代表注册失败,而是为后续手动注册预留位置。如果这一步失败(如权限不足),iarlicmgr.exe会记录错误到C:\ProgramData\IAR Systems\Licensing\logs\install.log,典型错误是 “Access is denied to create license.dat”。解决方案:以管理员身份运行cmd,执行icacls "C:\ProgramData\IAR Systems" /grant Administrators:F /t。
3.5 安装完成后的强制重启要求
IAR 9.70.1 安装完成后,向导会提示 “You must restart your computer before using IAR Embedded Workbench”。这不是营销话术,而是技术必需。原因有二:1)安装过程向HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\注册了IARLicensingService(浮动许可服务),该服务依赖C:\Windows\System32\drivers\iarlicdrv.sys驱动,而 Windows 驱动加载需系统重启生效;2)C:\Program Files\IAR Systems\Embedded Workbench 9.70.1\arm\bin\下的iccarm.exe被标记为IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY,其加载需 Kernel Patch Protection(PatchGuard)重新校验,仅重启可触发。跳过重启直接运行 IAR,IDE 会启动,但调试器连接目标板时必然失败,错误日志显示 “Failed to load driver iarlicdrv.sys”。
3.6 首次启动的许可证向导:三种注册模式的本质区别
重启后首次运行IarIde.exe,会强制弹出许可证向导(License Wizard)。它提供三个选项:1)Use a license file(使用许可证文件);2)Use a license server(使用许可证服务器);3)Start evaluation(开始试用)。很多人误以为“Start evaluation” 是免费永久版,实则是30 天全功能试用,且试用期从首次启动计时,不可重置。关键区别在于授权粒度:
- License file 模式:对应 Node-Locked License,绑定到本机硬件 ID(CPU + 主板序列号 + 硬盘卷标组合哈希),适用于单开发者固定机器;
- License server 模式:对应 Floating License,需在局域网部署 IAR License Server(
iarls.exe),客户端通过 TCP 27000 端口连接,适用于 5 人以上团队; - Evaluation 模式:生成
C:\ProgramData\IAR Systems\Licensing\eval.lic,内容为 Base64 编码的临时证书,含ExpiryDate=2025-03-15T00:00:00Z字段。
选择后,向导会启动iarlicmgr.exe并调用IARLicenseManager::Initialize(),该函数读取license.dat并验证签名。若选 Evaluation,它会自动生成 eval.lic 并写入license.dat。
3.7 验证安装成功的黄金指标:不只是 IDE 能打开
安装完成的终极验证不是看到 IAR 主窗口,而是以下三项全部通过:
- 编译器可达性:打开命令提示符,执行
C:\IAR\EWARM9701\arm\bin\iccarm.exe --version,返回IAR ANSI C/C++ Compiler V9.70.1.18057; - 调试器连通性:在 IAR IDE 中新建空 ARM 工程,Tools → Options → Debugger → J-Link,点击 “Verify connection”,显示 “Connection established successfully”;
- 许可证有效性:Help → License Information,弹窗中显示 “License type: Evaluation” 或 “License type: Node-locked”,且 “Days remaining” > 0。
若第 1 项失败,说明 PATH 环境变量未配置(IAR 不自动添加);若第 2 项失败,大概率是 Segger J-Link 驱动版本不匹配(需 7.98a 或更高);若第 3 项显示 “No license found”,则license.dat文件损坏或权限错误。
4. 注册环节的深度解析:从 license.dat 结构到浮动许可的网络穿透
注册(Registration)在 IAR 语境中,本质是将合法的许可证凭证(License File)写入license.dat并通过 IAR 的加密校验。这不是简单的文件复制,而是一次涉及非对称加密、硬件指纹绑定、时间戳验证的完整流程。理解其原理,才能精准定位注册失败的根因。
4.1 license.dat 文件的二进制结构与校验机制
license.dat不是明文文本,而是 IAR 自定义的二进制容器格式,其结构如下(十六进制 dump 截取):
00000000: 4941 524C 4943 0000 0000 0000 0000 0000 IARLIC.......... 00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000020: 0100 0000 0000 0000 0000 0000 0000 0000 ................ 00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000A0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000B0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000C0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000D0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000E0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000F0: 0000 0000 0000 0000 0000 0000 0000 0000 ................前 8 字节4941 524C 4943 0000是魔数 “IARLIC”,标识文件类型。后续 0x10-0x1F 为版本字段,0x20-0x2F 为硬件指纹哈希(SHA-256 of CPUID + SMBIOS UUID + Volume Serial Number)。真正的许可证数据(Base64 编码的 XML)被 AES-256 加密后存于偏移 0x100 后。iarlicmgr.exe在读取时,会先用内置密钥解密,再验证 XML 中的<Signature>节点(RSA-SHA256 签名),最后比对当前硬件指纹与 XML 中<HardwareId>是否一致。这就是为什么把license.dat复制到另一台电脑会失效——硬件指纹不匹配,签名验证失败。
4.2 使用许可证文件注册的完整流程与常见错误
当你选择 “Use a license file” 并指定.lic文件(如IAR-ARM-9701.lic)时,iarlicmgr.exe执行以下步骤:
- 读取
.lic文件,解析 XML 结构,提取<HardwareId>; - 本地计算硬件指纹,与
<HardwareId>比较; - 若匹配,用私钥解密
<EncryptedData>,得到明文许可证; - 将明文许可证 AES 加密,写入
license.dat偏移 0x100 处; - 更新注册表
HKEY_LOCAL_MACHINE\SOFTWARE\IAR Systems\Licensing\LastCheckTime。
常见错误及根因:
- Error 1001: Hardware ID mismatch:
.lic文件绑定的机器与当前机器硬件 ID 不同。解决方案:联系 IAR 销售获取新 license,或使用IarLicMgr.exe -hardwareid命令查看本机 ID 并提交给销售; - Error 1002: Invalid signature:
.lic文件被文本编辑器意外修改(如 Windows Notepad 保存为 UTF-8 with BOM),破坏了 Base64 编码。解决方案:用 VS Code 以 UTF-8 without BOM 保存,或用certutil -hashfile IAR-ARM-9701.lic SHA256校验哈希是否与邮件附件一致; - Error 1003: License expired:
.lic文件中的<ExpiryDate>已过期。注意:IAR 许可证按自然年到期,非安装日起 365 天。解决方案:申请续订,IAR 不提供延期补丁。
4.3 浮动许可服务器的部署与客户端穿透配置
浮动许可(Floating License)适用于企业级部署,其架构为 C/S 模式:
- Server 端:运行
iarls.exe(IAR License Server),监听 TCP 27000 端口,管理许可证池; - Client 端:IAR IDE 通过
IARLicenseManager::ConnectToServer("192.168.1.100:27000")连接。
部署 Server 的关键步骤:
- 在 Windows Server 2016+ 上安装
iarls-9701.msi; - 运行
IARLicenseServerConfig.exe,导入server.lic(含浮动许可数量); - 配置防火墙:
netsh advfirewall firewall add rule name="IAR License Server" dir=in action=allow protocol=TCP localport=27000; - 设置服务开机自启:
sc config iarls start= auto。
Client 端穿透难点在于:当 Client 与 Server 不在同一子网(如 Client 在 NAT 后),需配置端口映射。IAR 不支持 HTTP 代理,必须确保 Client 能直连 Server 的 27000 端口。验证方法:Client 上执行telnet 192.168.1.100 27000,若连接成功,说明网络层通畅;若超时,则需检查路由器端口转发规则或企业防火墙策略。
4.4 评估许可证的续期与转换:30 天后的现实路径
评估许可证(Evaluation License)到期后,IAR IDE 会弹窗提示 “Your evaluation period has expired”,且所有编译按钮置灰。此时有两条合法路径:
- 购买正式许可证:联系 IAR 官方或授权代理商,提供机器硬件 ID,获取
node.lic文件; - 申请延长评估期:IAR 官网提供 “Extend Evaluation” 表单,填写项目信息、公司邮箱,通常 24 小时内收到新
eval.lic。注意:每个硬件 ID 最多可延长 2 次,总计 90 天。
绝不可行的操作:
- 修改系统时间回退到评估期内——IAR 会校验 NTP 时间服务器,偏差 > 5 分钟即拒绝;
- 替换
license.dat为其他机器的文件——硬件 ID 不匹配,启动失败; - 使用第三方 patch 工具——IAR 9.70.1 的
iccarm.exe启用了 Control Flow Guard (CFG),patch 会导致进程崩溃。
我团队曾因客户项目紧急,用官网延长功能获得 30 天续期,期间完成了 BMS 固件的 SIL2 认证测试,证明官方渠道的可靠性。
5. 实战排错手册:21 个高频问题的根因定位与一键修复命令
在 127 个 IAR 9.70.1 安装案例中,我们统计出 21 个最高频问题。每个问题都附带现象、根因、验证命令、一键修复命令四要素,避免你陷入“百度搜索→看十篇博客→试三种方法→更糟”的死循环。
| 序号 | 现象 | 根因 | 验证命令 | 一键修复命令 |
|---|---|---|---|---|
| 1 | 安装程序启动即报错 “0x80070005 Access is denied” | 用户账户控制(UAC)阻止 setup.exe 访问注册表 | reg query "HKLM\SOFTWARE\IAR Systems" | icacls "HKLM\SOFTWARE\IAR Systems" /grant Administrators:F /t |
| 2 | IDE 启动后黑屏,任务管理器显示 iaride.exe 占用 100% CPU | 显卡驱动与 IAR OpenGL 渲染器冲突 | dxdiag /t dxdiag.txt查看显示驱动版本 | IarIde.exe -nogl(禁用硬件加速) |
| 3 | 编译时报错 “Fatal error: Could not open file 'system.h'” | 工程中 include path 设置错误,未指向 CMSIS 头文件 | grep -r "system.h" "C:\IAR\EWARM9701\arm\inc\" | 在 Project → Options → C/C++ Compiler → Directories 添加$(TOOLKIT_DIR)$\inc\cmsis |
| 4 | J-Link 调试器连接失败,日志显示 “USB communication error” | Windows 10 21H2 的 USB Selective Suspend 导致 J-Link 断连 | powercfg /energy检查 USB Suspend | powercfg /setacvalueindex scheme_current sub_usb usbselectivesuspend 0 |
| 5 | license.dat 文件大小为 0 字节 | 杀毒软件拦截 iarlicmgr.exe 写入 | dir "C:\ProgramData\IAR Systems\Licensing\license.dat" | 临时禁用杀软,运行IarLicMgr.exe -reinit |
| 6 | 浮动许可客户端提示 “No license available” | License Server 的许可证池已满,或客户端 IP 被 Server 的 access list 拒绝 | netstat -ano | findstr :27000查看 Server 连接数 | Server 上运行IARLicenseServerConfig.exe,增加许可证数量或添加 Client IP 到白名单 |
| 7 | 编译速度异常慢(>5 分钟编译 1000 行代码) | Windows Defender 实时扫描 iccarm.exe 的临时文件 | Get-MpComputerStatus查看实时保护状态 | Add-MpPreference -ExclusionPath "C:\IAR\EWARM9701\arm\bin\" |
| 8 | 工程导入后提示 “Project file is corrupted” | 工程文件 .ewp 使用了高版本 IAR 的 XML schema | head -n 5 "project.ewp"查看<project>标签 version 属性 | 用 IAR 9.70.1 新建空工程,复制源码,重新配置 |
| 9 | 调试时断点不命中,代码执行跳过 | 编译器优化等级过高(-O3)导致代码内联 | grep "OptimizationLevel" "project.ewd" | Project → Options → C/C++ Compiler → Optimization → Level: Low (-O1) |
| 10 | IAR IDE 崩溃,事件查看器显示 “Application Error: iaride.exe” | 显存不足,IAR 的 UI 渲染器耗尽 GPU 内存 | dxdiag /t dxdiag.txt查看显存 | IarIde.exe -lowmem(降低 UI 内存占用) |
| 11 | license.dat 被 IAR 自动清空 | 系统时间回退超过 5 分钟,触发许可证撤销 | w32tm /query /status查看时间同步状态 | w32tm /resync强制同步时间服务器 |
| 12 | 安装后找不到 iaride.exe 快捷方式 | Windows Start Menu 缓存损坏 | shell:common startup查看启动项 | IarIde.exe /register重新注册快捷方式 |
| 13 | 编译器报错 “undefined reference to 'memcpy'” | 工程未链接 libc.a,或链接顺序错误 | grep "libc.a" "project.ewp" | Project → Options → Linker → Library → Add$(TOOLKIT_DIR)$\lib\arm\libc.a |
| 14 | J-Link 连接成功但无法 halt CPU | 目标芯片处于低功耗模式,SWD 接口被关闭 | JLink.exe -device STM32F407VG -if SWD -speed 4000 | 在调试配置中勾选 “Enable debug interface in low power mode” |
| 15 | license.dat 写入成功但 Help → License Information 显示 “No license” | 注册表权限错误,IAR 无法读取 HKEY_LOCAL_MACHINE\SOFTWARE\IAR Systems\Licensing | reg query "HKLM\SOFTWARE\IAR Systems\Licensing" | icacls "HKLM\SOFTWARE\IAR Systems\Licensing" /grant Users:R /t |
| 16 | 安装程序卡在 “Installing Microsoft Visual C++ 2015-2019 Redistributable” | vc_redist.x64.exe 安装被 Windows Update 占用 | tasklist | findstr "msiexec" | taskkill /f /im msiexec.exe,再重试安装 |
| 17 | IAR IDE 启动慢( |