Bat脚本-编译及烧录keil-MDK工程

概述

本文主要讲述的是一个关于调用keil-MDK的软件编译对应单片机工程的脚本函数。

背景

在开发单片机的过程中会使用到keil-mdk,但是个人感觉这个工具的编写代码界面不是很好看,所以使用了VScode 进行编写代码,然后在用keil-mdk进行编译,来回切换,使用的久了以后感觉这样也不是很舒服,于是想着写一个脚本,在VScode 中调用该脚本进行代码编译,这样就可以实现在Vscode 中编写代码,然后在Vscode 调用脚本进行代码编译。

需求

1、bat 脚本;
2、可以在vscode 中调用自动识别当前工程;
3、可以编译当前路径下的keil-mdk工程;

需求分析

第一个需求很简单,就是写一个bat脚本就可以;
第二个需求可以用文件查找的方式,在当前路径或子路径中找到工程文件即可;
第三个需要可以使用脚本调用keil-mdk 的编译软件,输入对应的工程参数即可完成工程编译;

需求实现

通过夜以继日的查找资料和代码编写,同时参考了以下大神的资料:
使用脚本(命令行)编译KEIL工程
完成了如下脚本:

@echo off
setlocal enabledelayedexpansion
REM ------------------------------------------------------------------
REM 脚本:keil-mdk 的编译脚本
REM 日期:2022/6/16
REM 输入参数:-r: 全局编译; -b: 编译; -f: 烧录; 无参数:编译
REM 使用方法:
REM 1、将脚本放置任意文件夹,并对此文件夹添加环境变量
REM 2、在相关工程路径下进行脚本调用此脚本,根据需求输入参数
REM 参考资料:
REM ARM开发网站:https://developer.arm.com/documentation/101407/latest/Command-Line
REM ------------------------------------------------------------------

REM 这里把UV设置成Keil安装地址
set UV=D:\keilMdk\loading\UV4\UV4.exe
REM 查找工程文件并把UV_PRO_PATH设置成工程路径
for /f "delims=" %%i in ('dir /s/b/a-d ^| findstr .uvprojx') do (
	set UV_PRO_PATH=%%i
	set /a n=n+1)
echo %UV_PRO_PATH%
REM 判断是否只有一个工程文件
if not %n%==1 (
	goto NO_ONLY
)

REM 开始编译或烧录
echo .>build_log.txt

if "%UV_PRO_PATH%" == "" goto NOP
if "%1" == "-b" (
REM 编译
    echo Init building ... 
    %UV% -j0 -sg -b %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
) else if "%1" == "-f" (
REM 烧录
    echo Init flashing ...  
    %UV% -j0 -sg -f %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
) else if "%1" == "-r" (
REM 全局编译
    echo Init building ...  
    %UV% -j0 -sg -r %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
) else (
REM 仅编译
    echo Init building ... 
	%UV% -j0 -sg -b %UV_PRO_PATH% -o %cd%\build_log.txt
    type build_log.txt
REM    echo Init flashing ... 
REM    %UV% -j0 -sg -f %UV_PRO_PATH% -o %cd%\build_log.txt 
REM    type build_log.txt
)
if "%2" == "-f" (
REM 烧录
    echo Init flashing ... 
    %UV% -j0 -sg -f %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
)
echo Done.
del %cd%\build_log.txt
goto end

:NOP
echo No ProjectName
goto end

:NO_ONLY
echo Not the only Project,Please check project number
goto end

:end
REM 打开下面这个注释可能导致控制台窗口在编译完成后关闭
::exit

实现功能

1、可以识别当前路径下的keil-mdk 工程文件进行编译;
2、同时可以把编译的过程输出到vscode 控制台窗口中;

使用示例

1、修改脚本中的编译软件路径

将脚本中UV4.exe的路径修改成自己电脑中安装UV4.exe的路径

REM 这里把UV设置成Keil安装地址
set UV=D:\keilMdk\loading\UV4\UV4.exe

2、将脚本的文件路径加入系统的环境变量

目前我把该脚本命名为“mdkbuild.bat”,存放在“D:\work\workdata\Lin\Information\BatTool”路径中,并将该路径设置为环境变量,这样就可以在电脑的任意路径下通过控制台机进行调用。
在这里插入图片描述

3、通过Vscode 进行调用

可以看到在工程的路径下,通过VScode 的控制台调用该脚本,完成了代码的编译,同时输出了编译的结果。如果出现编译错误,还可以通过ctrl + 鼠标左键点击显示编译错误的地方,直接跳转过去。
在这里插入图片描述

可进一步优化的方向

1、该脚本还不能支持在线debug 的功能,所以需要debug 的时候还是得使用keil-mdk进行debug;
2、该脚本编译代码的结果是在编译完成后才会显示出来,所以会出现调用脚本后,要等一会才会出现编译的结果,而不能实时打印显示编译了那个文件;

总结

这次脚本的编写对我来说还是发现了
ARM开发网站
这个网站有很多值得学习的资料。
总的来说,还算是满足了需求,不过还有很多需要加强的地方,后续有方案了在改进吧。

免责声明:本文内容含网络参考、作者编写等,内容版权归原作者所有,未经允许,禁止转载。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Keil Arm-MDK是一种用于嵌入式系统开发开发工具。其具有使用方便、灵活性高、功能强大等特点,让开发者可以在开发过程中更加高效的完成工作。 在使用Keil Arm-MDK进行嵌入式系统开发时,开发者可以通过多种方式获取参考资料,帮助自己更好的完成开发工作。以下是一些常见的Keil Arm-MDK开发参考资料: 1. 官方文档:Keil Arm-MDK官方网站上提供了大量的使用文档和指南,包括入门指南、用户手册、开发指南、技术文档等,可供开发者在线或离线查阅。 2. 示例代码:Keil Arm-MDK带有大量的示例代码,覆盖了多个应用领域和开发板型号,开发者可以借鉴这些示例代码,快速掌握Keil Arm-MDK的使用方法和注意事项。 3. 手册和编程参考书籍:市面上有大量的Keil Arm-MDK编程参考书籍和手册,其中包括了Keil Arm-MDK的基础知识、实用技巧、应用案例等,有助于开发者深入了解Keil Arm-MDK的使用方法和开发技巧。 4. 在线资源:开发者可以通过搜索引擎或嵌入式技术社区查询Keil Arm-MDK相关的博客、论坛、教程等在线资源,获取更多的开发经验和技巧。 总之,Keil Arm-MDK开发参考资料丰富,开发者可以通过多种方式获取帮助和指导,在开发过程中更加高效的完成工作。 ### 回答2: Keil ARM-MDK是一款广泛使用的嵌入式系统开发工具,可用于开发各种基于ARM处理器的应用程序。Keil ARM-MDK的参考资料是非常丰富的,以下是一些常用的参考资料: 1. Keil ARM-MDK官方网站:该网站提供了Keil ARM-MDK的下载、安装、使用等方面的详细介绍和说明,是了解ARM-MDK最基本的途径。 2. Keil ARM-MDK用户手册:该手册包括所有Keil ARM-MDK软件及功能的详细介绍和指导。用户手册可分为几个章节,涵盖了工程管理、源文件编辑、编译、调试、版本管理等方面的内容。 3. Keil ARM-MDK软件包:Keil公司提供多种软件包,该软件包可以作为Keil ARM-MDK的附加组件,提供一些额外的功能。例如,可以使用CMSIS嵌入式软件包、Keil RTX实时操作系统等。 4. ARM Cortex-M4技术资料:Keil ARM-MDK支持基于Cortex-M4的处理器,该处理器具有高度的性能和灵活性。ARM提供了大量关于Cortex-M4的技术资料,这些资料涵盖了处理器的架构、指令集、时钟、内存、外设等方面的内容。 5. Keil ARM-MDK示例代码:Keil公司为ARM-MDK提供了大量的示例代码。这些示例涵盖了各种应用场景,包括基本的GPIO控制、LCD显示、串口通信、CAN总线通信等等。这些示例代码可以帮助新手更快地上手Keil ARM-MDK开发。 总之,Keil ARM-MDK的参考资料是非常丰富的,但需要注意的是,学习前需要具备一定的单片机和C语言基础,同时需要对ARM处理器的特点和应用有一定的了解。 ### 回答3: Keil ARM-MDK是一种用于开发ARM微处理器的集成开发环境。它支持多种ARM处理器系列,包括Cortex-M系列和Cortex-R系列。Keil ARM-MDK提供了一个强大的编译器、调试器和仿真器,能够帮助开发人员快速有效地开发出高质量的嵌入式软件。 在使用Keil ARM-MDK进行ARM微处理器开发时,参考资料是非常重要的。下面是一些可供参考的资料: 1. Keil ARM-MDK官方网站:官方网站提供了大量的文档、例程和资料,以帮助开发人员更好地使用Keil ARM-MDK进行ARM微处理器开发开发人员可以在官网的下载中心下载Keil ARM-MDK以及其他相关工具。 2. Keil ARM-MDK编译器用户手册:这是Keil ARM-MDK编译器的详细说明,包括编译器使用、编译器选项、编译器错误处理等。 3. Keil ARM-MDK调试器用户手册:该手册提供了关于Keil ARM-MDK调试器的使用说明和调试技巧。 4. 《ARM Cortex-M系列嵌入式系统开发实战》:该书是一本关于使用Keil ARM-MDK开发Cortex-M系列嵌入式系统的实战指南,内容包括嵌入式系统架构、软件设计、硬件控制等方面。 5. KEIL软件开发管理单元教程:该手册提供了一个完整的Keil ARM-MDK开发项目配置和管理教程,包括软件开发流程、项目配置、固件升级等。 以上资料可以帮助开发人员更好地使用Keil ARM-MDK进行ARM微处理器开发,提高开发效率和开发质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值