拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Keil MDK 5.42安装顺序详解:先装主程序再装芯片包

1. 为什么安装顺序这件事值得单独拿出来说搞嵌入式开发的人手里大概率都绕不开 Keil MDK 这套工具链。不管你是刚入行的学生还是做了十几年的老工程师装环境这件事几乎每隔一两年就要重复一次——换电脑、换系统、帮同事配环境、给实验室新机器搭平台每次都得走一遍。而 MDK 5.42 这个版本算是目前比较稳定、芯片支持也比较全的一个版本很多人会优先选它。但就是这么一个看起来“下一步下一步”就能搞定的安装过程我见过太多人卡住。卡在哪不是软件装不上而是装完软件之后发现找不到芯片型号或者芯片包死活装不进去又或者装完芯片包之后编译报一堆莫名其妙的错误。这些问题的根源十有八九都指向同一个点安装顺序搞反了。这篇文章要讲的核心就一件事先把 MDK 5.42 主程序装好再去拉芯片包Device Family Pack顺序不能反。听起来像废话但我实测下来至少有三分之一的人会先去找芯片包下载然后发现没有主程序可以加载或者装完主程序之后芯片包路径对不上又回头折腾。这篇内容适合谁看如果你是第一次装 MDK 的新手照着走能少踩很多坑如果你已经装过但总是遇到芯片包加载失败的问题这里会解释清楚背后的原因如果你是帮别人配环境的老手也可以看看有没有遗漏的细节。全文基于我自己的实操记录和多次帮人排查的经验整理不是官方文档的复述而是实际装完之后觉得“早知道就好了”的那些点。2. 安装前的整体思路与准备工作2.1 为什么顺序这么重要从 MDK 的目录结构说起很多人不理解为什么装个软件还要讲究顺序觉得不就是装完主程序再装包吗能有什么区别。这里得从 MDK 的目录结构讲起。MDK 主程序安装完之后会在安装目录下生成一套固定的文件夹结构其中有一个关键目录叫ARM里面又包含Packs文件夹。这个Packs文件夹就是芯片包的“家”。芯片包本质上是一个.pack文件里面包含了芯片的寄存器定义、启动文件、外设驱动库、示例工程等资源。MDK 在编译的时候会根据工程里选的芯片型号去Packs目录里找对应的支持文件。如果你先装芯片包那时候 MDK 主程序还没装系统里根本没有Packs这个目录芯片包装到哪里去有些芯片包安装器会自己创建一个路径但那个路径跟后面 MDK 主程序默认的路径很可能不一致。等 MDK 装好之后它去自己的Packs目录找发现是空的于是你就看到“Device not found”或者芯片列表里一片空白。所以顺序的本质是先让 MDK 把目录框架搭好再把芯片包放进它认识的目录里。这就像你先得有个书架才能把书按分类放上去书架还没买回来书只能堆在地上回头找起来就乱了。2.2 安装包和芯片包的获取渠道MDK 5.42 的主程序安装包官方渠道是 Keil 官网。下载的时候注意选对版本5.42 是一个比较成熟的版本兼容性不错。安装包大小大概在 1GB 左右下载完之后是一个.exe文件。芯片包这边ST 的芯片包比如 STM32F1、STM32F4 系列可以从 Keil 官方的 Pack 下载页面获取也可以从 ST 官方的资源页面找。GD32 的芯片包一般从兆易创新官网或者 Keil 的 Pack 索引里找。国产芯片像 GD32L235 这种有时候官方提供的包更新没那么及时可能需要去社区找但要注意来源可靠性。注意芯片包文件的后缀是.pack下载下来之后直接双击就能安装但前提是 MDK 主程序已经装好了。如果双击没反应或者提示找不到安装目标大概率就是主程序还没装。另外网上有些打包好的“MDK芯片包合集”看起来省事但我个人不太建议用。原因有两个一是版本可能对不上主程序和芯片包的版本不匹配会出各种奇怪问题二是来源不明的包有安全风险嵌入式开发经常要连硬件环境不干净后面调试起来很麻烦。2.3 系统环境的前置检查在开始装之前有几件事最好先确认一下。首先是操作系统版本MDK 5.42 在 Windows 10 和 Windows 11 上都能跑但如果你用的是比较老的 Win7可能会遇到一些兼容性问题。其次是磁盘空间MDK 主程序装完大概占 2-3GB芯片包每个系列大概几百 MB如果你要装多个系列预留 10GB 以上比较稳妥。还有一个容易被忽略的点安装路径不要带中文和空格。默认路径是C:\Keil_v5这个就挺好。有些人喜欢装到D:\我的软件\Keil这种路径下中文路径在某些情况下会导致芯片包安装失败或者编译时报路径错误。空格同理虽然现在大部分工具对空格的处理已经好很多了但嵌入式工具链里有些老组件对空格还是很敏感。最后如果你之前装过其他版本的 MDK建议先卸载干净再装 5.42。不同版本的 MDK 共存虽然理论上可以但注册表和环境变量容易打架尤其是芯片包路径会互相干扰。卸载的时候除了用控制面板卸载还要手动检查一下C:\Keil_v5目录是否残留以及用户目录下的.keil文件夹要不要清理。3. MDK 5.42 主程序安装实操3.1 安装过程中的关键选项双击安装包之后前面几步都是常规的许可协议和路径选择。到了选择安装类型的界面会有几个选项让你勾选。这里我建议全部勾上尤其是Pack Installer这个组件。有些人觉得芯片包可以手动装就不勾 Pack Installer结果后面想在线更新芯片包的时候发现没有这个工具还得重新装一遍。安装路径用默认的C:\Keil_v5就行没必要改。改路径带来的唯一好处是 C 盘空间紧张时能省点地方但代价是后面所有配置、脚本、别人给的工程路径都要跟着改得不偿失。安装过程大概需要 5-10 分钟取决于机器性能。装完之后会弹出一个窗口让你安装额外的软件组件比如串口驱动、调试器驱动之类的。这些建议都装上尤其是如果你用的是 ST-Link 或者 J-Link 调试器对应的驱动装好之后能省很多事。3.2 装完主程序后的第一件事确认目录结构主程序装完之后先别急着去拉芯片包。打开文件资源管理器进到C:\Keil_v5目录下看看里面有什么。你应该能看到ARM、UV4、TOOLS.INI这些文件和文件夹。再进到ARM目录下看看有没有Packs文件夹。如果Packs文件夹不存在可以手动建一个但通常情况下安装程序会自动创建。这一步的意义在于确认 MDK 的“书架”已经搭好了。后面芯片包就是要放到这个Packs文件夹里。如果你发现Packs文件夹不在ARM下面而是在别的地方那就要留意了可能安装的时候路径选得不对后面芯片包安装器可能会找不到目标位置。另外TOOLS.INI这个文件也值得看一眼。它记录了 MDK 的各种路径配置包括芯片包的搜索路径。用文本编辑器打开找到[UV2]这一段里面有一行PATH开头的后面跟的就是芯片包的路径。正常情况下应该指向C:\Keil_v5\ARM\PACK。如果这里指向的路径不对芯片包装了也白装。3.3 首次启动与注册主程序装好之后第一次打开 MDK它会提示你注册。这里不展开讲注册的具体操作只提醒一点注册要在装芯片包之前完成。有些芯片包在安装的时候会检查 MDK 的授权状态如果没注册可能会提示“License not found”之类的错误虽然不一定会导致安装失败但会增加不必要的麻烦。注册完成之后可以随便新建一个工程试试看看能不能正常打开。如果能进到选择芯片型号的界面说明主程序本身没问题。这时候芯片列表里应该是空的或者只有几个默认的 ARM 内核型号没有具体的芯片厂商型号。这是正常的因为芯片包还没装。4. 芯片包安装的完整流程4.1 在线安装与离线安装的选择芯片包的安装方式有两种一种是在 MDK 里面通过 Pack Installer 在线下载安装另一种是提前下载好.pack文件然后离线安装。在线安装的好处是方便Pack Installer 里能看到所有可用的芯片包点一下就能装。但缺点是受网络影响大ST 的服务器有时候拉取固件包列表会失败尤其是国内网络环境下经常出现“网络请求失败”的提示。而且在线安装的包版本可能不是最新的或者不是你想要的特定版本。离线安装的好处是可控你可以精确选择芯片包的版本下载好之后随时装不依赖网络。缺点是得自己去官网找对应的.pack文件有时候找起来比较费劲。我个人的习惯是主流的 STM32 系列用离线安装因为官网的包很全下载也稳定国产芯片或者比较冷门的系列先试试在线安装不行再去找离线包。4.2 离线安装芯片包的具体步骤假设你已经下载好了 STM32F1 系列的芯片包文件名类似Keil.STM32F1xx_DFP.2.4.0.pack。安装步骤很简单确认 MDK 主程序已经装好并且注册完成。关闭 MDK 软件如果已经打开的话。双击.pack文件会弹出安装向导。向导会自动检测 MDK 的安装路径如果路径正确直接点 Next 就行。等待安装完成通常几秒钟到几十秒不等。装完之后重新打开 MDK新建工程在选择芯片型号的界面里应该就能看到 STM32F1 系列的型号了。如果还是看不到那就要检查一下芯片包到底装到哪里去了。4.3 在线安装芯片包的操作路径如果你选择在线安装打开 MDK 之后在工具栏上找到 Pack Installer 的图标通常是一个小盒子形状点进去。左侧是芯片厂商列表右侧是具体的芯片包。找到你需要的系列点 Install 按钮剩下的就是等。在线安装的时候Pack Installer 会从 Keil 的服务器拉取包信息。如果遇到“网络请求失败”或者列表加载不出来可以试试这几个方法一是检查网络连接二是换个时间段再试三是手动配置代理如果公司网络有要求的话。不过说实话在线安装的体验不太稳定我一般能离线就离线。提示在线安装的芯片包会放在C:\Keil_v5\ARM\Packs目录下按厂商和系列分文件夹存放。离线安装的包也是放到这个目录所以两种方式装出来的结果是一样的。4.4 验证芯片包是否安装成功装完芯片包之后怎么确认真的装好了最直接的方法就是新建一个工程在选择芯片的界面里搜索你需要的型号。比如你装了 STM32F103 的包就搜 “STM32F103”如果能搜到对应的型号并且能看到芯片的简要信息内核、主频、Flash 大小等那就说明装好了。另一个验证方法是看Packs目录下的文件结构。进到C:\Keil_v5\ARM\Packs应该能看到类似Keil、STMicroelectronics这样的厂商文件夹再进去就是具体的芯片系列和版本号。如果目录是空的或者只有厂商文件夹没有具体内容那说明安装没成功。5. 常见问题与排查技巧实录5.1 芯片包装了但列表里找不到这是最常见的问题。原因通常有三个一是芯片包装到了错误的路径MDK 去自己的Packs目录找结果找不到二是TOOLS.INI里的路径配置不对三是芯片包版本和 MDK 版本不兼容。排查的时候先去看C:\Keil_v5\ARM\Packs目录下有没有对应的厂商和系列文件夹。如果没有说明包装到别的地方去了需要重新安装并指定正确路径。如果有但 MDK 里还是看不到那就去检查TOOLS.INI里的PATH配置确保它指向的是C:\Keil_v5\ARM\Packs。5.2 在线安装时提示网络请求失败这个问题在拉取 ST 的固件包列表时特别常见。原因可能是网络环境的问题也可能是 Keil 服务器那边的临时故障。我的处理方式是先等几分钟再试如果还是不行就直接去官网下载离线包。离线包虽然多花几分钟找但装起来一次成功比反复折腾在线安装省时间。5.3 安装过程中报错“Cannot find the target”这个错误通常出现在双击.pack文件的时候。原因是 MDK 主程序还没装或者装了但注册表信息不完整导致芯片包安装器找不到安装目标。解决办法很简单先确认 MDK 主程序装好了并且至少启动过一次。如果主程序确实装了但还是报这个错可以试试用管理员权限运行.pack文件。5.4 多个版本的 MDK 共存导致芯片包混乱有些人电脑上同时装了 MDK 5.36 和 5.42或者还装了 Keil C51。这种情况下芯片包可能会装到其中一个版本的目录下另一个版本就找不到。更麻烦的是不同版本的 MDK 可能共用同一个TOOLS.INI文件导致路径配置互相覆盖。我的建议是尽量只保留一个版本的 MDK。如果确实需要多个版本共存那在装芯片包的时候一定要看清楚安装路径确保装到你当前主要使用的那个版本下面。Keil C51 和 MDK 共存的情况比较特殊两者虽然都是 Keil 的产品但目录结构不一样芯片包一般不通用装的时候注意区分。5.5 芯片包版本选择的问题芯片包不是越新越好。新版本的包可能修复了一些 bug但也可能引入新的问题或者不再支持老旧的芯片型号。如果你做的是维护老项目最好用项目原来使用的芯片包版本。如果是新项目可以用最新版本但要注意和 MDK 主程序的兼容性。一般来说芯片包的版本号里第一位是大版本第二位是小版本第三位是补丁版本。比如2.4.0大版本 2小版本 4补丁 0。大版本更新通常意味着有较大的变动小版本更新一般是功能增加或 bug 修复补丁版本就是修修补补。选的时候优先选大版本和小版本比较新的补丁版本用最新的就行。6. 一些实操心得与避坑建议装 MDK 这件事说难不难但细节确实多。我帮别人装过不下几十次总结下来有几个点特别容易出问题。第一个是安装路径。很多人喜欢把软件装到 D 盘或者自定义文件夹觉得 C 盘空间宝贵。但 MDK 这套工具链对路径的敏感度比较高尤其是芯片包的安装器它默认会去找C:\Keil_v5如果你装到别的地方它可能找不到。所以除非你有特别充分的理由否则就用默认路径。第二个是注册的时机。前面提过注册要在装芯片包之前完成。但有些人装完主程序之后急着去拉芯片包结果芯片包装到一半提示授权问题又回头去注册折腾一圈。正确的顺序是装主程序 → 注册 → 装芯片包 → 验证。第三个是芯片包的来源。网上有很多“芯片包合集”或者“一键安装包”看起来省事但版本往往比较旧或者被人改过。嵌入式开发对工具链的稳定性要求很高来源不明的包能不用就不用。官方渠道虽然麻烦一点但放心。第四个是备份Packs目录。如果你经常重装系统或者换电脑可以把C:\Keil_v5\ARM\Packs这个目录整个备份下来。新机器上装好 MDK 主程序之后直接把备份的Packs目录拷回去芯片包就全都有了省得一个个重新装。这个技巧我用了好几年特别适合需要频繁配环境的场景。第五个是注意TOOLS.INI的修改。有些教程会让你手动改TOOLS.INI里的路径改之前一定要备份原文件。改错了会导致 MDK 启动异常甚至找不到编译器。如果改完之后出问题把备份的文件恢复回去就行。最后说一个关于芯片包版本的小技巧。如果你不确定该用哪个版本的芯片包可以去 Keil 官方的 Pack 页面看看每个版本的更新日志。更新日志里会写清楚这个版本改了什么、修了哪些 bug、有没有已知问题。花两分钟看一下比装完了再排查问题省时间得多。装环境这件事本质上是一次性的工作装好了可能一两年都不用再动。但正因为是一次性的很多人装的时候不仔细出了问题又得从头来。按照“先主程序、后芯片包”的顺序走把路径和注册这两个点确认好基本上就不会出大问题。剩下的就是耐心等安装完成然后开始写代码。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门