virtualabs / btlejack-firmware

Btlejack firmware for BBC Micro:Bit
MIT License
46 stars 28 forks source link

build error: 'id' was not declared in this scope #12

Closed shuber1 closed 3 years ago

shuber1 commented 4 years ago

Hi i tried to compile the firmware from the repo by myself. I get the following error message:

...
ninja: build stopped: subcommand failed.
error: command ['ninja'] failed
Makefile:6: the rule forl „ble400“ failed
make: *** [ble400] error 1

I Assume, that there is a problem in the code, when you look at the whole error report, there es a message:

...
/home/tester/btlejack-firmware/source/timer.cpp:223:20: error: 'id' was not declared in this scope
  get_clr_set_masks(id, &clr_mask, &set_mask);
                    ^
...

I am not sure if this is really the problem, the whole build excerpt is below. I hope this helps. I don't think ii is a library problem:


tester@debian:~/btlejack-firmware$ dpkg -l | grep newlib
ii  libnewlib-arm-none-eabi               2.4.0.20160527-2                            all          C library and math library compiled for bare metal using Cortex A/R/M
ii  libnewlib-dev                         2.4.0.20160527-2                            all          C library and math library intended for use on embedded systems
ii  libstdc++-arm-none-eabi-newlib        15:5.4.1+svn241155-1+9                      all          GNU Standard C++ Library v3 for ARM Cortex-A/R/M processors (newlib)

I use a standard debian stretch. Do you have any furthe idea why it is not building ? I am not realy aware of the problem to fix the code, if it is a code problem. If it is a problem of the build chain, can you give an advice ?

[129/167] Building CXX object ym/micro...obit-dal.dir/drivers/MicroBitPin.cpp.o
/home/tester/btlejack-firmware/yotta_modules/microbit-dal/source/drivers/MicroBitPin.cpp:198:37: warning: unused parameter 'value' [-Wunused-parameter]
 int MicroBitPin::setAnalogValue(int value)
                                     ^
/home/tester/btlejack-firmware/yotta_modules/microbit-dal/source/drivers/MicroBitPin.cpp:381:40: warning: unused parameter 'period' [-Wunused-parameter]
 int MicroBitPin::setAnalogPeriodUs(int period)
                                        ^
[161/167] Building CXX object source/C...r/btlejack-firmware/source/timer.cpp.o
FAILED: source/CMakeFiles/ubit-ble-sniffer.dir/home/tester/btlejack-firmware/source/timer.cpp.o 
/usr/bin/arm-none-eabi-g++  -DYOTTA_MODULE_NAME=ubit-ble-sniffer -Dubit_ble_sniffer_EXPORTS -Igenerated/include -I/home/tester/btlejack-firmware -I/home/tester/btlejack-firmware/yotta_modules/microbit -I/home/tester/btlejack-firmware/yotta_modules/microbit-dal -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic -I/home/tester/btlejack-firmware/yotta_modules/ble -I/home/tester/btlejack-firmware/yotta_modules/ble-nrf51822 -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk -I/home/tester/btlejack-firmware/yotta_modules/microbit/inc -I/home/tester/btlejack-firmware/yotta_modules/microbit-dal/inc/core -I/home/tester/btlejack-firmware/yotta_modules/microbit-dal/inc/types -I/home/tester/btlejack-firmware/yotta_modules/microbit-dal/inc/drivers -I/home/tester/btlejack-firmware/yotta_modules/microbit-dal/inc/bluetooth -I/home/tester/btlejack-firmware/yotta_modules/microbit-dal/inc/platform -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/api -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/hal -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/cmsis -I/home/tester/btlejack-firmware/yotta_modules/ble-nrf51822/source/btle -I/home/tester/btlejack-firmware/yotta_modules/ble-nrf51822/source/btle/custom -I/home/tester/btlejack-firmware/yotta_modules/ble-nrf51822/source/common -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/ble/ble_radio_notification -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/ble/ble_services/ble_dfu -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/ble/common -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/ble/device_manager -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/ble/device_manager/config -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/ble/peer_manager -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/device -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/drivers_nrf/ble_flash -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/drivers_nrf/delay -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/drivers_nrf/hal -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/drivers_nrf/pstorage -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/drivers_nrf/pstorage/config -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/bootloader_dfu -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/bootloader_dfu/hci_transport -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/crc16 -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/hci -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/scheduler -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/timer -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/util -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/fds -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/fstorage -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/libraries/experimental_section_vars -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/softdevice/common/softdevice_handler -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/softdevice/s130/headers -I/home/tester/btlejack-firmware/yotta_modules/nrf51-sdk/source/nordic_sdk/components/toolchain -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/cmsis/TARGET_NORDIC -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/cmsis/TARGET_NORDIC/TARGET_MCU_NRF51822 -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/cmsis/TARGET_NORDIC/TARGET_MCU_NRF51822/TOOLCHAIN_GCC_ARM -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/cmsis/TARGET_NORDIC/TARGET_MCU_NRF51822/TOOLCHAIN_GCC_ARM/TARGET_MCU_NRF51_16K_S110 -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822 -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nordic_sdk -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nordic_sdk/components -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nordic_sdk/components/libraries -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nordic_sdk/components/libraries/crc16 -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nordic_sdk/components/libraries/scheduler -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nordic_sdk/components/libraries/util -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s110_nrf51822_8_0_0 -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s130_nrf51822_1_0_0 -I/home/tester/btlejack-firmware/yotta_modules/mbed-classic/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/TARGET_NRF51_MICROBIT -I/home/tester/btlejack-firmware/source -fno-exceptions -fno-unwind-tables -ffunction-sections -fdata-sections -Wall -Wextra -fno-rtti -fno-threadsafe-statics -mcpu=cortex-m0 -mthumb -D__thumb2__ -std=c++11 -fwrapv -Os -g -gdwarf-3 -DNDEBUG   -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_OPERATORS -DNRF51 -DTARGET_NORDIC -DTARGET_M0 -D__MBED__=1 -DMCU_NORDIC_16K -DTARGET_NRF51_MICROBIT -DTARGET_MCU_NORDIC_16K -DTARGET_MCU_NRF51_16K_S110  -DTARGET_NRF_LFCLK_RC -DTARGET_MCU_NORDIC_16K -D__CORTEX_M0 -DARM_MATH_CM0 -include "/home/tester/btlejack-firmware/build/bbc-microbit-classic-gcc/yotta_config.h" -MMD -MT source/CMakeFiles/ubit-ble-sniffer.dir/home/tester/btlejack-firmware/source/timer.cpp.o -MF source/CMakeFiles/ubit-ble-sniffer.dir/home/tester/btlejack-firmware/source/timer.cpp.o.d -o source/CMakeFiles/ubit-ble-sniffer.dir/home/tester/btlejack-firmware/source/timer.cpp.o -c /home/tester/btlejack-firmware/source/timer.cpp
/home/tester/btlejack-firmware/source/timer.cpp: In function 'void timer_stop_no_cb()':
/home/tester/btlejack-firmware/source/timer.cpp:223:20: error: 'id' was not declared in this scope
  get_clr_set_masks(id, &clr_mask, &set_mask);
                    ^
[163/167] Building CXX object source/C...er/btlejack-firmware/source/main.cpp.o
/home/tester/btlejack-firmware/source/main.cpp: In function 'void RADIO_IRQHandler()':
/home/tester/btlejack-firmware/source/main.cpp:1092:135: warning: format '%d' expects argument of type 'int', but argument 6 has type 'uint32_t {aka long unsigned int}' [-Wformat=]
                   snprintf(msg,30, "chan: %d (%d) (%d)", g_sniffer.channel, g_sniffer.ble5_previous_counter,g_sniffer.ble5_hop_counter);
                                                                                                                                       ^
/home/tester/btlejack-firmware/source/main.cpp:1092:135: warning: format '%d' expects argument of type 'int', but argument 6 has type 'uint32_t {aka long unsigned int}' [-Wformat=]
/home/tester/btlejack-firmware/source/main.cpp:1164:25: warning: unused variable 'n' [-Wunused-variable]
                     int n = g_sniffer.sg->resolveCounter(g_sniffer.ble5_hops, g_sniffer.ble5_previous_counter-4, g_sniffer.channel);
                         ^
/home/tester/btlejack-firmware/source/main.cpp:1226:33: warning: variable 'md' set but not used [-Wunused-but-set-variable]
               uint8_t sn, nesn, md;
                                 ^
/home/tester/btlejack-firmware/source/main.cpp: In function 'void sync_lost_track()':
/home/tester/btlejack-firmware/source/main.cpp:1595:8: warning: unused variable 'msg' [-Wunused-variable]
   char msg[30];
        ^
/home/tester/btlejack-firmware/source/main.cpp: In function 'int main()':
/home/tester/btlejack-firmware/source/main.cpp:2853:68: note: #pragma message: Btlejack firmware will use custom serial pins
     #pragma message("Btlejack firmware will use custom serial pins")
                                                                    ^
/home/tester/btlejack-firmware/source/main.cpp: At global scope:
/home/tester/btlejack-firmware/source/main.cpp:2160:13: warning: 'void recover_chm()' defined but not used [-Wunused-function]
 static void recover_chm()
             ^
/home/tester/btlejack-firmware/source/main.cpp:1411:13: warning: 'void recover_connection_parameters(uint32_t)' defined but not used [-Wunused-function]
 static void recover_connection_parameters(uint32_t accessAddress)
             ^
/home/tester/btlejack-firmware/source/main.cpp:1418:13: warning: 'void recover_connection_parameters(uint32_t, uint8_t*)' defined but not used [-Wunused-function]
 static void recover_connection_parameters(uint32_t accessAddress, uint8_t *chm)
             ^
/home/tester/btlejack-firmware/source/main.cpp:1431:13: warning: 'void recover_connection_parameters(uint32_t, uint8_t*, uint16_t)' defined but not used [-Wunused-function]
 static void recover_connection_parameters(uint32_t accessAddress, uint8_t *chm, uint16_t hopInterval)
             ^
ninja: build stopped: subcommand failed.
error: command ['ninja'] failed
Makefile:6: die Regel für Ziel „ble400“ scheiterte
make: *** [ble400] Fehler 1
shuber1 commented 4 years ago

I have removed the function call of get_clr_set_masks in the functionvoid timer_stop_no_cb(void). Afterwards it compiles. As I have no deep understanding of the whole firmware I can not predict any problems. But I could not identifiy any place in the code where the timer_stop_no_cb function is used ? Any suggestion or idea ?

virtualabs commented 3 years ago

Allright, I took some time to fix this issue (see commit ae8cac0). And you were right, this code is not used (yet ?) but you cannot fix this by removing the call to get_clr_set_masks(). This function is expecting this id as an argument, so I fixed it this way.