project-chip / connectedhomeip

Matter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.
https://buildwithmatter.com
Apache License 2.0
7.39k stars 1.98k forks source link

[BUG] Unable to flash nrfboard as lock-app #27634

Open phonnakasturi-apple opened 1 year ago

phonnakasturi-apple commented 1 year ago

Reproduction steps

Steps to Reproduce:

SHA: da148bcc007d3546a7f6f0f82eb0c9108c254602

  1. cd ~/connectedhomeip
  2. export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig"
  3. source scripts/activate.sh
  4. ~/Desktop/032321_install_nordic_tools.sh
  5. python3 scripts/setup/nrfconnect/update_ncs.py --update
  6. cd examples/lock-app/nrfconnect
  7. west build -b nrf52840dk_nrf52840 --pristine always

Error Log:

[481/774] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/conn.c.obj
/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/subsys/bluetooth/host/conn.c: In function 'send_frag':
/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/subsys/bluetooth/host/conn.c:594:20: warning: 'pending_no_cb' may be used uninitialized in this function [-Wmaybe-uninitialized]
  594 |    (*pending_no_cb)--;
      |    ~~~~~~~~~~~~~~~~^~
/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/subsys/bluetooth/host/conn.c:547:12: note: 'pending_no_cb' was declared here
  547 |  uint32_t *pending_no_cb;
      |            ^~~~~~~~~~~~~
[639/774] Building C object zephyr/drivers/ieee802154/CMakeFiles/drivers__ieee802154.dir/ieee802154_nrf5.c.obj
FAILED: zephyr/drivers/ieee802154/CMakeFiles/drivers__ieee802154.dir/ieee802154_nrf5.c.obj 
ccache /Users/priyankahonnakasturi/chip-nordic-tools/gnuarmemb/bin/arm-none-eabi-gcc -DKERNEL -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DMBEDTLS_USER_CONFIG_FILE=\"nrf-config-user.h\" -DNRF52840_XXAA -DNRF_802154_ACK_TIMEOUT_ENABLED=1 -DNRF_802154_CARRIER_FUNCTIONS_ENABLED=0 -DNRF_802154_CCA_CORR_LIMIT_DEFAULT=2 -DNRF_802154_CCA_CORR_THRESHOLD_DEFAULT=45 -DNRF_802154_CCA_ED_THRESHOLD_DEFAULT=45 -DNRF_802154_CCA_MODE_DEFAULT=NRF_RADIO_CCA_MODE_ED -DNRF_802154_ECB_PRIORITY=-1 -DNRF_802154_ENCRYPTION_ENABLED=1 -DNRF_802154_IE_WRITER_ENABLED=1 -DNRF_802154_INTERNAL_RADIO_IRQ_HANDLING=0 -DNRF_802154_PENDING_EXTENDED_ADDRESSES=16 -DNRF_802154_PENDING_SHORT_ADDRESSES=16 -DNRF_802154_RX_BUFFERS=16 -DNRF_802154_SECURITY_WRITER_ENABLED=1 -DNRF_802154_SWI_PRIORITY=1 -DNRF_802154_TX_STARTED_NOTIFY_ENABLED=1 -DNRF_802154_USE_RAW_API=1 -DUSE_PARTITION_MANAGER=1 -DZCBOR_ASSERTS -D_ANSI_SOURCE -D_FORTIFY_SOURCE=1 -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR_SUPERVISOR__ -D__ZEPHYR__=1 -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrf/drivers/mpsl/clock_control -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/include -I/Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/zephyr/include/generated -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/soc/arm/nordic_nrf/nrf52 -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/lib/libc/newlib/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/soc/arm/nordic_nrf/common/. -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/subsys/bluetooth -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/subsys/net/lib/sockets/. -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/subsys/settings/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrf/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrf/lib/multithreading_lock/. -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrf/subsys/bluetooth/controller/. -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/drivers/flash -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrf/tests/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/modules/openthread/platform/. -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/hal/cmsis/CMSIS/Core/Include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/hal/nordic/nrfx -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/hal/nordic/nrfx/drivers/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/hal/nordic/nrfx/mdk -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/modules/hal_nordic/nrfx/. -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/crypto/tinycrypt/lib/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/lib/zcbor/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nfc/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/mpsl/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/mpsl/include/protocol -I/Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/modules/nrfxlib/nrfxlib/nrf_security/src/include/generated -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_security/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_security/../crypto/nrf_oberon/core/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_security/../crypto/nrf_oberon/core/library -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/crypto/mbedtls/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/crypto/mbedtls/library -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_security/../crypto/nrf_oberon/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_security/../crypto/nrf_oberon/include/mbedtls -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_security/../crypto/nrf_oberon/core/oberon/drivers -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/crypto/nrf_oberon/include/mbedtls -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/crypto/nrf_oberon/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_802154/driver/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/nrf_802154/sl/include -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/softdevice_controller/include -I/Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/modules/openthread/build/etc/cmake -I/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/lib/openthread/etc/cmake -isystem /Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/lib/openthread/include -isystem /Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/modules/lib/openthread/examples/platforms -isystem /Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/nrfxlib/crypto/nrf_cc310_platform/include -fno-strict-aliasing -Os -imacros /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/zephyr/include/generated/autoconf.h -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfpu=fpv4-sp-d16 -mfloat-abi=hard --sysroot=/Users/priyankahonnakasturi/chip-nordic-tools/gnuarmemb/arm-none-eabi -imacros /Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-pic -fno-pie -fno-asynchronous-unwind-tables -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=/Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect=CMAKE_SOURCE_DIR -fmacro-prefix-map=/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf=WEST_TOPDIR -ffunction-sections -fdata-sections -specs=nano.specs -D_POSIX_THREADS -std=c99 -MD -MT zephyr/drivers/ieee802154/CMakeFiles/drivers__ieee802154.dir/ieee802154_nrf5.c.obj -MF zephyr/drivers/ieee802154/CMakeFiles/drivers__ieee802154.dir/ieee802154_nrf5.c.obj.d -o zephyr/drivers/ieee802154/CMakeFiles/drivers__ieee802154.dir/ieee802154_nrf5.c.obj -c /Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/drivers/ieee802154/ieee802154_nrf5.c
/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/drivers/ieee802154/ieee802154_nrf5.c: In function 'nrf5_configure':
/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/drivers/ieee802154/ieee802154_nrf5.c:947:3: error: a label can only be part of a statement and a declaration is not a statement
  947 |   uint64_t csl_rx_time = target_time_convert_to_64_bits(config->csl_rx_time);
      |   ^~~~~~~~
/Users/priyankahonnakasturi/chip-nordic-tools/nrfconnect/sdk-nrf/zephyr/drivers/ieee802154/ieee802154_nrf5.c:964:3: error: a label can only be part of a statement and a declaration is not a statement
  964 |   uint64_t start = target_time_convert_to_64_bits(config->rx_slot.start);
      |   ^~~~~~~~
[649/774] Generating gen/app-zapgen/zapgen/app-templates/zap-generated/access.h, gen/app-zapgen/zapgen/app-templates/zap-generated/CHIPClusters.h, gen/app-zapgen/zapgen/app-templates/zap-generated/endpoint_config.h, gen/app-zapgen/zapgen/app-templates/zap-generated/gen_config.h, gen/app-zapgen/zapgen/app-templates/zap-generated/IMClusterCommandHandler.cpp
šŸ”§ Using temporary state directory: /var/folders/5r/lz9b5qwj5lx3plsf70vdtdnm0000gn/T/zap.PRQexV
šŸ¤– ZAP generation started: 
    šŸ” input files: /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/../lock-common/lock-app.zap
    šŸ” output pattern: /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated
    šŸ” using templates: /Users/priyankahonnakasturi/connectedhomeip/src/app/zap-templates/app-templates.json
    šŸ” using zcl data: /Users/priyankahonnakasturi/connectedhomeip/src/app/zap-templates/zcl/zcl.json
    šŸ” zap version: ver. 2023.5.22, featureLevel 96, commit: 070854a25493c597e6bec93259e45a3c04b5b438 from 2023-05-22T14:13:38.000Z, mode: binary, exe: zap-cli
šŸ• Setup time: 874ms 
šŸ‘‰ using input file: /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/../lock-common/lock-app.zap
šŸ‘‰ using output destination: /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated
šŸ• File loading time: 129ms
šŸ¤– Generating files:
    āœ  /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated/CHIPClusters.h
    āœ  /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated/gen_config.h
    āœ  /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated/IMClusterCommandHandler.cpp
    āœ  /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated/access.h
    āœ  /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated/endpoint_config.h
šŸ• Generation time: 659ms 
Searching for zcl file from /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/../lock-common/lock-app.zap
Files generated in: /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build/gen/app-zapgen/zapgen/app-templates/zap-generated
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: /opt/homebrew/bin/cmake --build /Users/priyankahonnakasturi/connectedhomeip/examples/lock-app/nrfconnect/build

Bug prevalence

always

GitHub hash of the SDK that was being used

da148bcc007d3546a7f6f0f82eb0c9108c254602

Platform

darwin

Platform Version(s)

No response

Anything else?

It works with lighting-app

Damian-Nordic commented 1 year ago

Looks like the code is lacking {} around the case blocks, but the reason it wasn't caught by us is that we use a newer GCC. Starting from NCS 2.3.0, the recommended toolchain is Zephyr SDK toolchain the newest version of which contains GCC 12 (BTW, this toolchain is installed automatically if you install NCS using Toolchain Manager.

I checked on godbolt that code that declares variables in the case blocks without curly brackets fails on GCC 10, but compiles without an error on GCC 11+. Thus, until we fix the code I would recommend you to update the compiler.