MDK5中的一些用户命令

我们在使用MDK5开发单片机工程时,可能需要使用用户命令插入编译过程,如指定生成bin文件、拷贝某文件到指定路径等,如下图。

MDK自定义命令窗口

fromelf.exe工具

这个工具是 MDK自带的,在目录“Keil_v5\ARM\ARMCC\bin”下面。
在此路径下,打开控制台,输入“fromelf --help”即可获取相关的指令信息。

fromelf.exe工具帮助信息

我个人在使用此工具时,通常是用来指定生成bin文件和elf文件,并且是可以指定存放目录的。

fromelf.exe --bin -o ../Output/test.bin ./Objects/test.axf

指定生成test.bin文件,并存放在“…/Output”目录下。其中“…/”是指当前目录的上一级目录。
指定生成axf文件。

这俩文件有什么用呢?似乎学习32单片机开发时都没用到。

bin文件可以用来烧录,可以用来作为IAP升级时传输的文件(当然,实际传输时,会对其进行一定的打包,实际就是常规的C语言文件操作,增加一些头尾的相关信息)。

axf文件很少用到,实际上这个文件在调试时会用到,只不过我们通常在MDK中调试,不会去关注这些。如果你用其他工具调试,比如我用的Ozone,就是通过打开此文件导入调试的。

cmd.exe工具

这个工具没在MDK中找到,可能是win系统自带的命令吧,没找到资料求证……

这个工具可以用来干嘛呢?

拷贝文件!

众所周知,MDK编译生成的文件都在Objects文件夹中,当然你也可以指定其他文件夹。但是生成的许多文件都是中间文件,对我们没啥用处,我们要用的其实主要是hex文件或者bin文件。

这时候我们可以使用此命令,将编译生成的我们需要的文件拷贝到一个单独的文件夹中,方便我们获取使用。比如下面我用的。

cmd.exe /c copy .\Objects\test.hex ..\Output

功能很简单,将生成的hex文件拷贝到Output文件夹下,结合上面的fromelf.exe工具,在Output文件夹下我们就有了hex和bin文件,一目了然。(注意命令中的“/”和“\”)

我的配置

最后,贴一下我自己的配置指令。

我的用户指令

有时候编译可能执行出错,重新编译下即可。

编译结果

其他还有别的命令,后面发现了再更新……

### 在MDK5中安装和配置AC5编译器 #### 背景说明 自Keil MDK 5.37版本起,AC5 (ARM Compiler 5) 不再作为默认组件提供。因此,如果需要使用基于AC5编译的工程,则需手动安装该编译器。 --- #### 步骤概述 1. **下载AC5编译器** 用户可以从官方渠道或其他可信资源获取AC5编译器文件。例如,可以通过以下方式之一获得: - 官方网站:访问Arm官方网站并注册账号以下载所需工具链。 - 第三方分享链接:如引用中的百度云或夸克网盘[^1][^3]。 2. **解压与放置文件** 将下载后的压缩包解压,并定位到其中名为`ARMCC`的文件夹。将其复制至Keil MDK的安装目录下的`ARM`子文件夹内。具体路径通常类似于: ``` C:\Program Files\Arm\Keil_v5\ARM\ ``` 3. **添加编译器支持** 启动Keil MDK软件后,通过如下操作完成编译器的添加: - 打开任意一个项目或者创建新项目; - 进入项目的设置界面(可通过点击魔术棒图标旁的小方块按钮实现); - 寻找“Toolchain”选项卡,在此位置应能看到新增加的AC5编译器条目; - 如果未自动识别,可手动指定其所在路径——即之前拷贝过去的`ARMCC`文件夹的位置[^2]。 4. **切换目标编译器** 确认当前工程项目所选用的是AC5而非其他替代品。调整方法同样位于上述提到过的设置面板里,只需从下拉菜单挑选对应项即可生效。 5. **验证安装成果** 最终一步是对整个流程加以检验,尝试重新构建先前因缺少适当环境而失败的任务。假如一切顺利的话,应该不会再遭遇诸如“uses ARM-Compiler 'Default Compiler Version 5' which is not available”的错误提示了[^3]。 ```python # 示例伪代码表示可能涉及的部分自动化脚本逻辑处理部分 import os def install_ac5_compiler(keil_install_path, armcc_archive_path): """模拟将armcc文件移动到keil安装目录的过程""" extracted_folder_name = "ARMCC" destination_directory = os.path.join(keil_install_path, "ARM") try: # 解压档案 extract_command = f"unzip {armcc_archive_path} -d {destination_directory}" os.system(extract_command) # 移动特定文件夹 source_armcc_dir = os.path.join(destination_directory, extracted_folder_name) final_destination = os.path.join(destination_directory, extracted_folder_name) move_command = f'move "{source_armcc_dir}" "{final_destination}"' os.system(move_command) return True except Exception as e: print(f"An error occurred during installation: {str(e)}") return False if __name__ == "__main__": keil_path = r"C:\Program Files\Arm\Keil_v5" archive_location = r"path_to_your_downloaded_file.zip" success = install_ac5_compiler(keil_path, archive_location) if success: print("Installation completed successfully.") ``` --- #### 注意事项 尽管提供了详尽指导,实际执行过程中仍可能出现若干特殊情况需要注意规避风险以及妥善解决潜在障碍。比如不同操作系统之间可能存在权限差异影响某些命令执行效果;又或者是网络状况不佳致使初始阶段资料难以及时取得等问题都需要提前做好预案准备应对措施。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值