Keil-MDK编译前后运行用户自定义程序

Keil作为一款经典的嵌入式开发IDE,从51到ARM一直都被众多的开发者使用。今天介绍一下它运行用户程序的功能,也就是在”Target Options”中”User”选项卡之下的内容。

在那些需要自动处理源文件或者转换输出文件的场景中,这部分功能是相当给力的。比如我最近做的一个网络模块。它内置了几个网页用以显示运行状态和配置功能参数,开发的时候要把HTML的源文件转成.h头文件中的字符串。它还提供了固件升级功能,也就是要把固件文件提供给用户,这样固件文件就要加密。另外为了方便调试和追踪代码,还希望能自动提交代码到版本库。

显然,转换HTML文件要在编译之前进行,而固件文件加密和提交代码在编译链接并输出完成之后进行。这样就可以像下面这样设置:

keil-mdk-user-prog

网页转换和加密所用的工具是我用C写的两个命令行下的小程序,操作源文件和输出文件时使用的都是相对路径。如果在上面直接调用这两个小程序的话,会导致找不到正确的文件。所以做了一个.bat的DOS脚本,在调用这些工具之前先CD到相应的目录,比如“加密.bat”这个文件的内容就是下面这几行:

keil-user-bat

这样配合另外一个自动固件升级的程序(每隔500ms检查固件文件,如有变动就自动通过网络升级设备),就可以实现修改源文件后只需点一下keil的生成按钮,就可完成网页转换-编译输出-固件加密-提交代码-固件升级的一系列步骤。大大简化了开发过程,不用再像以前那样先要运行网页转换的程序,然后在keil里生成,再然后运行加密程序、提交代码,最后再固件升级。

另外这样调用命令行程序后,就会把keil的”Build Output”输出窗口作为显示终端。这些命令行程序中如果有printf函数输出,就会直接显示在”Build Output”输出窗口中。

weinxin
我的微信
一个码农、工程狮、集能量和智慧于一身的、DIY高手、小伙伴er很多的、80后奶爸。
Igor
  • 版权声明: 发表于 2020-07-2215:13:40
  • 转载注明:http://blog.tsingmac.com/prolions/creators/hardware/3903/
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: