ARMmbed / mbed-os-example-nfc

Examples of NFC use with Mbed OS
Apache License 2.0
4 stars 20 forks source link

NFC_SmartPoster CMake build fails with `../../../../source/main.cpp:22:10: fatal error: nfc/controllers/PN512Driver.h: No such file or directory` #106

Closed Patater closed 3 years ago

Patater commented 3 years ago

Description of defect

#### STDERR ####

#### End of STDOUT/STDERR ####

IMAGE is /builds/workspace/mbed-os-ci_cmake-example-GCC_ARM-dev@11/examples/mbed-os-example-nfc/NFC_EEPROM/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/NFC_EEPROM.bin
[EXAMPLES]> INFO     In folder 'mbed-os-example-nfc/NFC_SmartPoster'
[EXAMPLES]> INFO     Compiling mbed-os-example-nfc/NFC_SmartPoster DISCO_L475VG_IOT01A GCC_ARM
[EXAMPLES]> INFO     Executing command 'mbed-tools compile -t GCC_ARM -m DISCO_L475VG_IOT01A -c'...

#### STDOUT ####
Configuring project and generating build system...
-- The C compiler identification is GNU 9.2.1
-- The CXX compiler identification is GNU 9.2.1
-- The ASM compiler identification is GNU
-- Found assembler: /usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python3: /usr/bin/python3.7 (found version "3.7.4") found components: Interpreter 
-- Checking for Python package prettytable -- found
-- Checking for Python package future -- found
-- Checking for Python package jinja2 -- found
-- Checking for Python package intelhex -- found
-- Configuring done
-- Generating done
-- Build files have been written to: /builds/workspace/mbed-os-ci_cmake-example-GCC_ARM-dev@11/examples/mbed-os-example-nfc/NFC_SmartPoster/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM
Building Mbed project...
[1/297] Link line:
[2/297] Building ASM object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/TOOLCHAIN_GCC/TARGET_RTOS_M4_M7/irq_cm4f.S.obj
[3/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Config/RTX_Config.c.obj
[4/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_lib.c.obj
[5/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_evr.c.obj
[6/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/source/main.cpp.obj
FAILED: CMakeFiles/NFC_SmartPoster.dir/source/main.cpp.obj 
/usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++ @CMakeFiles/NFC_SmartPoster.dir/source/main.cpp.obj.rsp -MD -MT CMakeFiles/NFC_SmartPoster.dir/source/main.cpp.obj -MF CMakeFiles/NFC_SmartPoster.dir/source/main.cpp.obj.d -o CMakeFiles/NFC_SmartPoster.dir/source/main.cpp.obj -c ../../../../source/main.cpp
../../../../source/main.cpp:22:10: fatal error: nfc/controllers/PN512Driver.h: No such file or directory
   22 | #include "nfc/controllers/PN512Driver.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[7/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Library/cmsis_os1.c.obj
[8/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/stm32l4xx_hal_dfsdm_ex.c.obj
[9/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/stm32l4xx_hal_dma2d.c.obj
[10/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/SmartPoster/SmartPoster.cpp.obj
[11/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/Source/os_tick_ptim.c.obj
[12/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_delay.c.obj
[13/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/Source/os_systick.c.obj
[14/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/device/rtos/TOOLCHAIN_GCC_ARM/mbed_boot_gcc_arm.c.obj
[15/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/stm32l4xx_hal_dcmi.c.obj
[16/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_memory.c.obj
[17/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_system.c.obj
[18/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/device/rtos/source/mbed_rtos_rtx.c.obj
[19/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_evflags.c.obj
[20/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/device/rtos/source/mbed_boot.c.obj
[21/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_mempool.c.obj
[22/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/device/rtos/source/mbed_rtx_handlers.c.obj
[23/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_timer.c.obj
[24/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_semaphore.c.obj
[25/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_mutex.c.obj
[26/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_kernel.c.obj
../../../../mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_kernel.c: In function 'svcRtxKernelInitialize':
../../../../mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_kernel.c:93:3: warning: 'memset' offset [17, 164] from the object at 'osRtxInfo' is out of the bounds of referenced subobject 'kernel' with type 'struct <anonymous>' at offset 8 [-Warray-bounds]
   93 |   memset(&osRtxInfo.kernel, 0, sizeof(osRtxInfo) - offsetof(osRtxInfo_t, kernel));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[27/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/DigitalInOut.cpp.obj
[28/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c.obj
[29/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/DigitalIn.cpp.obj
[30/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/DigitalOut.cpp.obj
[31/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/SPISlave.cpp.obj
[32/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/stm32l4xx_hal_dfsdm.c.obj
[33/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/AnalogOut.cpp.obj
[34/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/BusOut.cpp.obj
[35/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/BusIn.cpp.obj
[36/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/BusInOut.cpp.obj
[37/297] Building C object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_thread.c.obj
[38/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/cmsis/device/rtos/source/mbed_rtx_idle.cpp.obj
[39/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/AnalogIn.cpp.obj
[40/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/CAN.cpp.obj
[41/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/FlashIAP.cpp.obj
[42/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/I2C.cpp.obj
[43/297] Building CXX object CMakeFiles/NFC_SmartPoster.dir/mbed-os/drivers/source/BufferedSerial.cpp.obj
ninja: build stopped: subcommand failed.

#### STDERR ####
ERROR: CMake invocation failed!

More information may be available by using the command line option '-v'.

Target(s) affected by this defect ?

DISCO_L475VG_IOT01A

Toolchain(s) (name and version) displaying this defect ?

GCC_ARM

What version of Mbed-os are you using (tag or sha) ?

9bbc8c914c7e

What version(s) of tools are you using. List all that apply (E.g. mbed-cli)

Mbed CLI 2

How is this defect reproduced ?

mbed-tools compile -t GCC_ARM -m DISCO_L475VG_IOT01A -c

ciarmcom commented 3 years ago

Thank you for raising this detailed GitHub issue. I am now notifying our internal issue triagers. Internal Jira reference: https://jira.arm.com/browse/IOTOSM-3785

LDong-Arm commented 3 years ago

This is not a bug, but something we need to change in our CI.

As noted in https://github.com/ARMmbed/mbed-os-example-nfc/blob/master/NFC_SmartPoster/README.md, this example requires a PN512 NFC controller. But DISCO_L475VG_IOT01A has a different NFC controller (M24SR). Compilation doesn't fail with Mbed CLI 1 because it always builds the PN512 driver regardless of the target, but Mbed CLI 2 enables a check.

Two examples are included in this repo, and they require different targets.

LDong-Arm commented 3 years ago

PR created: https://github.com/ARMmbed/mbed-os/pull/14527