使用QM的外部工具功能编译代码

来源:互联网 发布:炮火兰捏脸数据 编辑:程序博客网 时间:2024/05/22 05:45

参考 1:http://www.state-machine.com/qm/ui_tools-dlg.html
参考 2:http://www.keil.com/support/man/docs/uv4/uv4_commandline.htm

转载请标明出处:http://blog.csdn.net/chenbb8/article/details/52292009
注:本文的软件环境是QPC5.6.5+QM3.3+MinGW(g++ 4.9.3)+WIN7,并根据调试信息和软件版本,修改了原文中提供的相关命令。如果在你的电脑上出现了警告,可能是因为软件环境不一致,请根据信息自行修改命令。

在通过QM生成代码后(另文介绍),我们可以选择通过外部的IDE进行编译仿真,也可以直接通过QM的加载的外部工具直接编译代码。

这个功能需要用到QM的一个控件:管理工具对话框(Manage Tools Dialog Box)。

Manage Tools Dialog Box
Manage Tools Dialog Box图标

管理工具对话框最多允许添加5个外部工具,并为每个工具分配一个快捷键(F8-F12)。

点击上面的图标,打开Manage External Tools对话框:

Manage External Tools
Manage External Tools

在管理工具对话框不同的几个输入框功能分别如下:

  • Environment Variables
    定义环境变量,这些环境变量被QM定义的所有外部工具所共享,并且只有在外部工具启动和运行的时候生效。这些环境变量的调用方式,在windows环境下通过%xxx%引用,而在linux环境下主要通过$(xxx)引用。
  • External Tools
    选择需要设置的外部工具,一共有5个外部工具,对应快捷键F8-F12。
  • Icon
    在Icon组合框中为这个工具选择一个图标。这个图标将会显示到 Tools Toolbar 和 Tools Menu.
  • Title
    在Title框中输入工具的标题。这个标题可以在 Tools Toolbar 和 Tools Menu中辨认出对应的工具,并且在鼠标停留在Tools Toolbar工具的按钮上时候,还会有气泡提示。
  • Command
    在Command框,需要填入被调用的工具名称。如果这个工具的目录已经被添加到系统的环境变量中(右击”我的电脑”->属性->高级系统设置->高级->环境变量->系统变量->Path中,添加目录,注意目录和目录之间使用’;’号分隔),那么直接填入文件名(无需后缀)就好。如果没有,那么直接通过Command输入框右侧的图标选择对应的工具。
  • Arguments
    如果需要,可在这个输入框,填入参数。
  • Initial Directory
    一般情况下,都是希望Command在特定的工作目录下启动。例如,make 命令行工具需要启动于makefile文件所在的目录。在Initial Directory框输入指定初始工作目录,或者也可以点击右边的文件夹图标进行查找。另外也可以通过’.’符号作为使用相对路径(相对于QM model文件的路径)。Note:这个初始目录并不是指工具的位置。它是工具启动的工作目录。
  • Generate code before launching
    如果希望QM在运行外部工具之前生成代码,就可以勾选Generate code before launching框。
  • Show error message box after failure
    如果希望QM可以在外部工具失败后产生提示,就可以勾选Show error message box after failure框。
  • Start as detached from QM
    如果希望外部工具可以独立运行于QM之外,可以勾选Start as detached from QM。这个选项只有在外部工具拥有GUI的时候才生效。Note1:如果一个工具”分离”于QM运行,那么它必须被明确的关闭。
    Note2:QM的第三方工具可以认为是通过命令行来进行调用的,”Command”是命令行调用的命令,”Arguments”是这个命令后带着的参数,”Initial Directory”就是当前的路径。如果本文中的调试结果和你那边的不一致,可以先运行CMD调试通了再添加到QM中

例1:添加GCC作为第三方工具
根据QM教程生成blinky.c后,根据如下图所示的方法添加REBUILD功能:

Setting up GCC build
Setting up GCC build

Title:REBUILD
Command:gcc(假设已经将gcc的路径添加到环境变量中了)或者”%GCC_PATH%\gcc.exe”
Arguments:blinky.c -oblinky.exe -I%QPC%/include -I%QPC%/ports/win32 -L%QPC%/ports/win32/dbg -lqp
Initial Directory: . (model directory)

添加RUN功能的方法如下图所示:

Setting up Blinky run
Setting up Blinky run

Title: RUN
Command: blinky.exe (this assumes that gcc is on the PATH)
Initial Directory property: . (model directory)


例2:添加IAR作为第三方工具
许多成熟的嵌入式交叉编译器支持命令行,因为只有这样才算实现真正的自动化编译。例如,IAR就可以通过在命令行中调用IarBuild.exe编译程序。根据如下图所示的方法添加REBUILD功能:

Setting and Log of IAR build
Setting and Log of IAR build

注:家里电脑的EWARM出问题了,这里调用了EW8051编译cc2540的例程,EWARM编译QP的用法应该也一样,如果不行 就先用CMD先调用,根据信息调试下

Title:MAKE
Command:”C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.0\common\bin\IarBuild.exe”(注意带“”)
Arguments:SimpleBLEPeripheral.ewp -build CC2540(注意是ewp 最后一个参数是当前workspace下的configuration)
Initial Directory: D:\project\BLE-CC254x-1.3.2\Projects\ble\SimpleBLEPeripheral\CC2540DB


例3:添加MDK作为第三方工具
MDK不像IAR那样提供专门的,命令行下对工程进行操作的可执行文件。所以这次的操作没办法在QM的Log Console上输出编译过程信息。我们通过-o选项,将信息打印到Build_Output.txt中。

set up MDK build
set up MDK build

Title:BUILD
Command:”C:\Keil_v5\UV4\UV4.exe”(注意带“”)
Arguments:-b blinky-qk.uvprojx -o Build_Output.txt-b编译 -r重编译 -f下载
Initial Directory: C:\qp\qpc\examples\arm-cm\blinky_efm32-slstk3401a\qk\arm

接下来我们通过笔记本将编译过程打印出来:

log of MDK build
log of MDK build

0 1
原创粉丝点击