0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

keil自动化编译脚本

strongerHuang 来源:Gitee 2023-10-16 17:04 次阅读

Keil开发单片机虽然被很多开发者吐槽,但不得不承认,目前Keil依然是众多单片机开发者首选的工具之一。

今天就来分享一个开源的 keil 自动化编译脚本。

1、需求来源

部分对开发流程有限制的公司是将开发与编译(提交后的代码版本)分开的,要求编译过程尽可能少的人为参与,需在程序上实现代码的自动化编译。基于此需求开发了本脚本。

b5888d2a-6bf9-11ee-939d-92fbcf53809c.png

2、介绍

这是一个 keil 的自动化编译脚本,可被其他脚本或程序调用,接收参数并按参数编译 keil 工程,而不必打开 keil 软件,实现程序上的自动化。主要实现了以下功能:
  1. 自动搜索脚本所在的目录下所有的 keil 工程
  • 搜索到多个 keil 工程时,若指定为空,则默认选择最后找到的 keil 工程
  • 指定 keil 工程时支持相对路径和绝对路径
  • 可选择Keil_v4Keil_v5进行编译
  • 为空时默认使用Keil_v5,需指定Keil_v4输入4即可
  • 支持模糊输入,如:K4,Keil4,Keilv4,Keil_4
  • 支持指定不同 keil 软件的所在路径,如:C:Keil_v5UV4UV4.exe
  • 当 keil 的安装路径和本案例中的D:Keil_v5UV4UV4.exe路径不同时,除非修改代码后重新编译成新的.exe,否则必须指定 keil 软件的所在路径
  • 可选择project target
  • 为空时默认选择 keil 工程最后选择的project target
  • 支持非法字符识别并报错
  • 编译完成后自动将.bin.hex文件拷贝至脚本的同级目录
  • 仅拷贝选定的 keil 工程编译出的.bin.hex文件

3、有哪些参数

b593ff3e-6bf9-11ee-939d-92fbcf53809c.png

说明:本脚本的所有参数可不按顺序输入,为空时表示选择默认值,但参数与参数之间需用空格隔开

4、我想直接用

  1. 本脚本仅支持windows系统且要求已经安装了 keil 软件

  2. 在发行版中下载可直接运行的.exe

  3. .exe脚本与需要编译的 keil 工程放在同一级目录(下称目录 A )

  4. 打开powershellcmd并定位至目录 A

  • 若使用powershell,可在目录 A 空白处按住shift键同时单击鼠标右键选择打开powershell,将自动定位到目录 A

  • 执行脚本

    .Keil-Autopiler.exe
    .Keil-Autopiler.exe 4 
    (注:keil UV4.exe 的路径和本脚本一致才可使用本条指令,否则使用下条指令)

    .Keil-Autopiler.exe C:Keil_v4UV4UV4.exe
    .Keil-Autopiler.exe .CodeProjectMDK	emplate.uvprojx

    .Keil-Autopiler.exe C:UsersAdministratorDesktop	estCodeProjectMDK	emplate.uvprojx
    .Keil-Autopiler.exe release
    .Keil-Autopiler.exe 4 release .CodeProjectMDK	emplate.uvprojx
    (注:keil UV4.exe 的路径和本脚本一致才可使用本条指令,否则使用下条指令)

    .Keil-Autopiler.exe C:Keil_v4UV4UV4.exe release C:UsersAdministratorDesktop	estCodeProjectMDK	emplate.uvprojx
  • 指定 keil 版本

  • 指定 keil 工程

  • 指定 project target

  • 案例五:

  • 指定 project target

  • 案例四:

  • 指定 keil 工程

  • 案例三:

  • 指定 keil 版本

  • 案例二:

  • 只有一个 keil 工程 或 搜索到的最后一个工程就是要编译的工程

  • 只有一个 project target 或 keil 工程保存时已选中需编译的 project target

  • keil UV4.exe 的路径和本脚本一致 (D:Keil_v5UV4UV4.exe

  • 案例一:

  • 编译时间与编译器版本、编译选项和代码量有关,需耐心等待。(可打开同级目录的keilx_compile_log.txt查看编译过程日志)

  • powershellcmd打印内容出现Copy above file(s) SUCCESS的字样表示执行成功,并将对应 keil 工程生成的.bin.hex文件拷贝至脚本的同级目录中b59df2e6-6bf9-11ee-939d-92fbcf53809c.png

5、我想自己编译

本代码仅支持 windows 系统。

5.1 预备操作

  1. 如果你已经安装了 gcc ,请忽略本步骤

  2. 下载 gcc 编译器,为了考虑兼容性,这里提供一个 32 位的 mingw 下载链接:https://github.com/niXman/mingw-builds-binaries/releases/download/13.1.0-rt_v11-rev1/i686-13.1.0-release-posix-dwarf-ucrt-rt_v11-rev1.7z

  3. 解压后放在任意路径,此处以C:mingw32为例

  4. 配置好环境变量b5a5eee2-6bf9-11ee-939d-92fbcf53809c.png

  5. 打开powershellcmd输入gcc -v,出现下图内容表示配置成功b5ac1b50-6bf9-11ee-939d-92fbcf53809c.png

5.2 编译

  1. 打开powershellcmd并定位至代码目录

  • 若使用powershell,可在代码目录空白处按住shift键同时单击鼠标右键选择打开powershell,将自动定位到代码目录

  • 执行以下 gcc 命令

    gcc .Keil-Autopiler.c -o .Keil-Autopiler.exe
  • 无任何提示信息,编译通过b5b64260-6bf9-11ee-939d-92fbcf53809c.png

重要说明

本脚本依赖 keil 软件,定位为 keil 的自动化编译脚本。目的是替代手动编译,实现程序自动化,而非替代编译工具,并无附带任何编译器和链接器。因此,无论代码工程是基于 keil C51 亦或是 keil MDK 都可执行。

开源地址:
https://gitee.com/DinoHaw/keil-autopiler

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    28

    文章

    5037

    浏览量

    77731
  • keil
    +关注

    关注

    68

    文章

    1196

    浏览量

    165311
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32392

原文标题:keil 自动化编译脚本

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    介绍10个Python自动化脚本

    在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。那么在本文中,我将向您介绍 10 个 Python 自动化脚本
    发表于 10-17 09:27 800次阅读

    10个杀手级的Python自动化脚本

    今天浩道跟大家分享10个日常工作中用到的python自动化脚本。让你感受一番python简单强大之处!
    发表于 11-28 11:07 521次阅读

    自动化

     (1) 在形式方面,制造自动化有三个方面的含义:   .代替人的体力劳动。   .代替或辅助人的脑力劳动。   .制造系统中人、机及整个系统的协调、管理、控制和优化。   (2) 在功能方面
    发表于 05-24 18:59

    FPGA设计之自动化

    概述所谓自动化设计,就是在逻辑设计流程中,有些过程需要反复进行,比如编译、仿真和工程调试等等,可以通过一定的方式使得这些流程可以自动运行,而不必每次都需要人工手动去启动。参考[3]介绍了如何
    发表于 12-16 15:09

    招聘自动化、电气自动化自动化控制工程师

    招聘自动化、电气自动化自动化控制工程师,挂证,不坐班,要求持有相关专业的中级职称证,用于我司资质申报工作上,凑资质人员申报资质,不存在风险。联系电话***,Q1580479594李经理
    发表于 10-24 18:06

    手机自动化测试方法

    脚本生成后点击调试按钮 8.点击左下角的启动键进行脚本回放,不要控制鼠标,此时鼠标会自动点击小萝贝控机大师进而控制手机进行手机APP自动化测试 `
    发表于 07-05 15:07

    手机自动化测试

    之前发布过小萝贝控机大师与按键精灵结合实现手机自动化测试的功能,小萝贝控机大师升级了实现了更多手机自动化测试的功能,如下:l手机功能自动化测试:录制脚本,检查点时点击小萝贝控机大师右边
    发表于 07-08 13:36

    【北京】诚聘自动化测试工程师

    ;4、根据产品特点和需求,制定自动化脚本和夹具,实现硬件相关测试自动化的需求。岗位要求:1、3年以上相关经验,计算机、电子及相关专业本科及以上学历;2、熟悉可靠性相关理论;3、熟悉测试夹具和夹具
    发表于 12-05 16:15

    楼宇自动化

    楼宇自动化.zip,关于楼宇自动化的所有课件,一共有56个。
    发表于 09-24 11:53

    自动化测试脚本开发技巧

    开发自动化测试脚本的技巧和心得软件测试 增量式调试脚本 录制测试脚本,和其他的软件开发成果一样,会变得非常大。为了可以成功的回放,需要调试几百行的代码,为了参数化的
    发表于 03-26 16:24 53次下载

    Keil编译常见问题

    吴鉴鹰总结的Keil 编译常见问题,吴鉴鹰总结的Keil 编译常见问题。
    发表于 07-22 15:31 10次下载

    如何创建自动化脚本

    在前面的 bash 初学者系列文章中,我们介绍了关于 bash 的一些基础知识,在了解了这些基础知识之后,可以尝试创建一些自动化脚本,来完成一些相对枯燥重复的管理任务。
    的头像 发表于 01-04 16:50 2755次阅读
    如何创建<b class='flag-5'>自动化</b><b class='flag-5'>脚本</b>

    分享10个实用的Python自动化脚本

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python 自动化脚本
    的头像 发表于 01-21 15:58 1130次阅读

    使用Python脚本实现自动化运维任务

    许多运维工程师会使用 Python 脚本来自动化运维任务。Python 是一种流行的编程语言,具有丰富的第三方库和强大的自动化能力,适用于许多不同的领域。
    的头像 发表于 04-08 10:36 1279次阅读

    modelsim自动化仿真实验 利用脚本实现modelsim自动化仿真

    ,然后编译,再添加波形,这样是非常麻烦的。在实际工作中一般不会这样操作,通常我们都会利用脚本实现modelsim的“自动化编译。实现一键完成电脑
    的头像 发表于 07-19 10:10 1062次阅读
    modelsim<b class='flag-5'>自动化</b>仿真实验 利用<b class='flag-5'>脚本</b>实现modelsim<b class='flag-5'>自动化</b>仿真