Keil C51工具集成到Qt Creator中

时间:2018-04-08 21:54:17

标签: qt-creator keil

我喜欢Qt Creator开发环境,现在需要使用Keil C51编译器/工具编译一些C代码。

是否可以将Qt Creator IDE与Keil C51工具配合使用?有人可以详细描述如何设置它吗?

OR - 是否可以与Qt Creator集成的另一个8052芯片编译器?

2 个答案:

答案 0 :(得分:0)

我可以确认,我能够在Q51上使用QT。

环境

我使用QT作为编辑。 和Keil C51一样编译。我用纯C(不是C ++)为STC微控制器编写程序。

TLDR

我使用Windows Batch文件编译工作目录中的所有*.c文件,然后将它们链接到一个hex文件中。然后我设置QT(项目 - >构建设置 - >构建步骤 - >自定义)以在构建阶段使用此批处理(不要忘记正确设置工作目录)。

如何获取所需的批处理文件

简单方法

Keil可以为特定项目生成批次(请参阅项目 - >目标选项 - >输出 - >创建批处理文件)。然后如上所述在QT中使用此文件。

这种方式的主要缺陷是 - 当您更改项目配置或向项目添加新文件时,您需要从Keil重新生成批处理。

更好的方式

使用Keil生成的批处理,我写了自己的Bath,它没有上述的缺陷。

更好的方式

我认为使用Makefile比Batch更好,因为它在编译过程中为QT提供了更多的控制和错误信息。但是我没有"在货架上#34;现在的例子。

批处理文件说明

简而言之,这批:

  1. 设置设置和目录
  2. 为工作目录
  3. 中的每个*.c文件调用编译器
  4. 构建*.obj列表并调用链接器以获取二进制格式的固件映像
  5. 将获得的图像转换为HEX格式
  6. 列表:

    REM "Folders"
    SET C51FLDR=d:\Keil\C51
    SET OUTFLDR=.\Objects
    SET LSTFLDR=.\Listings
    SET HEXNAME=PREP_FIRMWARE
    
    SET C51INC=%C51FLDR%\Inc;%C51FLDR%\Inc\STC
    SET C51LIB=%C51FLDR%\Lib
    
    REM "Variables"
    SET C51EXE=%C51FLDR%\BIN\C51.EXE
    SET C51LNK=%C51FLDR%\BIN\BL51.EXE
    SET C51HEX=%C51FLDR%\BIN\OH51.EXE
    set OBJLIST=
    
    REM "Defines"
    SET CPU_TYPE=STC15W408S
    SET CPU_VENDOR=STC
    SET UV2_TARGET=Target 1
    SET CPU_XTAL=0x02160EC0
    SET SETTINGS="COMPACT ROM(COMPACT) OPTIMIZE (9,SIZE) BROWSE DEBUG OBJECTEXTEND LISTINCLUDE SYMBOLS TABS (2)"
    
    
    echo ===================== Compile =====================
    for %%f in (*.c) do (
    echo %errorlevel%
    setlocal EnableDelayedExpansion
    %C51EXE% %%f  %SETTINGS% "PRINT(%LSTFLDR%\%%~nf.lst) OBJECT(%OUTFLDR%\%%~nf.obj)"
    if !errorlevel! neq 0 exit /b !errorlevel!
    )
    
    echo ===================== Link =====================
    call :obj_list
    echo %OBJLIST%
    %C51LNK%  %OBJLIST% TO "%OUTFLDR%\%HEXNAME%" PRINT("%LSTFLDR%\%HEXNAME%.m51") RAMSIZE(256) 
    echo %errorlevel%
    if %errorlevel% GTR 1 exit /b %errorlevel%
    
    echo ===================== Hex =====================
    %C51HEX% "%OUTFLDR%\%HEXNAME%" 
    if %errorlevel% neq 0 exit /b %errorlevel%
    
    echo ==========================================
    echo Build Success
    echo ==========================================
    goto :eof
    
    :obj_list
    for %%f in (.\Objects\*.obj) DO call :concat %%f
    set OBJLIST=%OBJLIST:~0,-1%
    goto :eof
    
    :concat
    set OBJLIST=%OBJLIST%"%1",
    goto :eof
    

答案 1 :(得分:0)

现在,可以将 QtCreator 与 Qbs 一起使用(自 1.15 起)。此外,还可以将 VSCode 与 Qbs 扩展一起使用。