【ARM】如何生成构建日志文件?-2022

问题

我在项目构建期间遇到了一些编译器和链接器问题,这需要 Keil 支持团队的帮助。我可以从 µVision 许可证管理过程中生成任何构建日志文件,我可以将其转发给 Keil 支持团队以提供有关问题的更多详细信息吗?

背景

使用构建日志有很多好处:

ARM:如何归档您的 Keil MDK 项目:在归档项目代码时将完整的构建日志包含在项目代码中。由于完整的构建日志记录了项目中使用的软件包版本和文件版本,它本身记录了重新创建该项目所需的内容。

µVision:使用不同版本的 ARM 编译器:构建日志显示使用了哪些编译器和库。µVision 中可以加载多个编译器,此文件显示用于创建项目的编译器。

记录最后一次构建输出:完整的构建日志还列出了最后一次构建中的所有警告消息。如果项目签入时出现警告,查看最后的构建输出将极大地有益于需要编辑此代码的未来程序员。那些程序员不会浪费时间解决可以忽略的警告。

避免未来的许可错误:构建日志列出了用于创建此项目的许可类型。由于有许多不同的 Keil MDK 版本,未来的程序员可以确保在他们的机器上使用正确的许可证以避免许可证问题。

提出技术支持请求:完整的构建日志是技术支持案例的一个很好的工具,因为它包含支持分析师理解问题所需的大部分背景信息。

回答

是的。构建项目后会生成一个*.build_log.htm文件。

但是,要创建完整的构建日志,请执行rebuild all,而不是构建。这将记录一个项目的所有信息。

要从编译器输出中检索更多详细信息,您可以在Options for Target - C/C++ - Misc Controls中指定--echo选项。

要查看build_log文件,在屏幕右侧的Project窗口中,右键单击目标文件夹,然后在上下文菜单中选择Open Build Log -*.build_log.htm文件将在Web浏览器中打开。

此*.build_log.htm文件通常位于对象输出文件夹的同一目录中,例如“.Flash”或“.RAM”文件夹。请将此带有问题描述的日志文件发送给Keil支持团队。

构建日志将类似于以下内容:

µVision Build Log

Tool Versions:

IDE-Version: µVision V5.15

Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved.

License Information: Bruce Lee, Arm, LIC=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Tool Versions:

Toolchain:       MDK-ARM Professional  Version: 5.15.0

Toolchain Path:  C:Keil_v515ARMARMCCBin

C Compiler:      Armcc.exe V5.05 update 2 (build 169)

Assembler:       Armasm.exe V5.05 update 2 (build 169)

Linker/Locator:  ArmLink.exe V5.05 update 2 (build 169)

Library Manager: ArmAr.exe V5.05 update 2 (build 169)

Hex Converter:   FromElf.exe V5.05 update 2 (build 169)

CPU DLL:         SARMCM3.DLL V5.15.0

Dialog DLL:      DARMP1.DLL V1.25.0.0

Target DLL:      UL2CM3.DLL V1.155.8.0

Dialog DLL:      TARMP1.DLL V1.24.0.0

Project:

C:MDK5_ProjectsBoardsKeilMCB1700BlinkyBlinky.uvprojx

Project File Date:  06/05/2015

Output:

*** Using Compiler 'V5.05 update 2 (build 169)', folder: 'C:Keil_v515ARMARMCCBin'

Rebuild target 'LPC1768 Flash'

compiling Blinky.c...

compiling LED_MCB1700.c...

compiling GPIO_LPC17xx.c...

compiling PIN_LPC17xx.c...

assembling startup_LPC17xx.s...

compiling system_LPC17xx.c...

linking...

Program Size: Code=2046 RO-data=254 RW-data=16 ZI-data=512

".FlashBlinky.axf" - 0 Error(s), 0 Warning(s).

Software Packages used:

Package Vendor: ARM

                http://www.keil.com/pack/ARM.CMSIS.4.3.0.pack

                ARM::CMSIS:CORE:4.1.0

                CMSIS (Cortex Microcontroller Software Interface Standard)

   * Component: CORE Version: 4.1.0

Package Vendor: Keil

                http://www.keil.com/pack/Keil.LPC1700_DFP.2.0.0.pack

                Keil::Device:Startup:1.0.0

                NXP LPC1700 Series Device Support, Drivers and Examples for MCB1700

   * Component: Startup Version: 1.0.0

   * Component: PIN Version: 1.00

   * Component: GPIO Version: 1.00

   * Component: LED Version: 1.0.0

Package Vendor: Keil

                http://www.keil.com/pack/Keil.MDK-Middleware.6.4.0.pack

                ::Board Support:LED:1.00 (API)

                Keil MDK-ARM Professional Middleware for ARM Cortex-M based devices

   * Component: LED Version: 1.00

Collection of Component include folders:

  C:MDK5_ProjectsBoardsKeilMCB1700BlinkyRTE

  C:MDK5_ProjectsBoardsKeilMCB1700BlinkyRTEDeviceLPC1768

  C:Keil_v515ARMPACKARMCMSIS4.3.0CMSISInclude

  C:Keil_v515ARMPACKKeilLPC1700_DFP2.0.0DeviceInclude

  C:Keil_v515ARMPACKKeilLPC1700_DFP2.0.0RTE_Driver

  C:Keil_v515ARMPACKKeilMDK-Middleware6.4.0Board

Collection of Component Files used:

   * Component: ARM::CMSIS:CORE:4.1.0

   * Component: Keil::Device:Startup:1.0.0

      Include file:  DeviceIncludeLPC17xx.h

      Source file:   DeviceSourceARMstartup_LPC17xx.s

      Source file:   DeviceSourcesystem_LPC17xx.c

      Include file:  RTE_DriverConfigRTE_Device.h

   * Component: Keil::Device:PIN:1.00

      Include file:  RTE_DriverPIN_LPC17xx.h

      Source file:   RTE_DriverPIN_LPC17xx.c

   * Component: Keil::Device:GPIO:1.00

      Include file:  RTE_DriverGPIO_LPC17xx.h

      Source file:   RTE_DriverGPIO_LPC17xx.c

   * Component: Keil.MCB1700::Board Support:LED:1.0.0

      Source file:   BoardsKeilMCB1700CommonLED_MCB1700.c

   * Component: ::Board Support:LED:1.00 (API)

      Include file:  BoardBoard_LED.h