This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf52-ble-app-lbs - main.c doesnt compile

Hi, i;m trying to build the "nrf52-ble-app-lbs" example which i downloaded from git hub github.com/NordicSemiconducto....

I followed the instructions in the README file.I'm not using any IDE. I invoked make in armgcc folder.

Compilation of main.c gives errors plenty as follows.

Kindly help.

Compiling file: main.c
../../../main.c: In function 'timers_init':
../../../main.c:124:98: error: macro "APP_TIMER_APPSH_INIT" passed 4 arguments, but takes just 3
     APP_TIMER_APPSH_INIT(APP_TIMER_PRESCALER, APP_TIMER_MAX_TIMERS, APP_TIMER_OP_QUEUE_SIZE, true);
                                                                                                  ^
../../../main.c:124:5: error: 'APP_TIMER_APPSH_INIT' undeclared (first use in this function)
     APP_TIMER_APPSH_INIT(APP_TIMER_PRESCALER, APP_TIMER_MAX_TIMERS, APP_TIMER_OP_QUEUE_SIZE, true);
     ^
../../../main.c:124:5: note: each undeclared identifier is reported only once for each function it appears in
../../../main.c: In function 'on_ble_evt':
../../../main.c:341:5: error: unknown field 'keys_periph' specified in initializer
     static ble_gap_sec_keyset_t      m_keys = {.keys_periph = {&m_enc_key, &m_id_key, &m_sign_key}};
     ^
../../../main.c:396:48: error: 'ble_gap_evt_auth_status_t {aka struct <anonymous>}' has no member named 'kdist_periph'
             p_distributed_keys = &m_auth_status.kdist_periph;
                                                ^
../../../main.c:331:38: error: variable 'm_auth_status' set but not used [-Werror=unused-but-set-variable]
     static ble_gap_evt_auth_status_t m_auth_status;
                                      ^
In file included from ../../../main.c:36:0:
../../../main.c: In function 'ble_stack_init':
../../../main.c:456:29: error: 'NRF_CLOCK_LFCLKSRC_XTAL_20_PPM' undeclared (first use in this function)
     SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);
                             ^
../../../../../../components/softdevice/common/softdevice_handler/softdevice_handler.h:97:45: note: in definition of macro 'SOFTDEVICE_
HANDLER_INIT'
         ERR_CODE = softdevice_handler_init((CLOCK_SOURCE),                                         \
                                             ^
../../../main.c:466:16: error: too few arguments to function 'sd_ble_enable'
     err_code = sd_ble_enable(&ble_enable_params);
                ^
In file included from ../../../../../../components/softdevice/s132/headers/ble_gap.h:48:0,
                 from ../../../../../../components/softdevice/s132/headers/ble.h:52,
                 from ../../../main.c:29:
../../../../../../components/softdevice/s132/headers/ble.h:401:33: note: declared here
 SVCALL(SD_BLE_ENABLE, uint32_t, sd_ble_enable(ble_enable_params_t * p_ble_enable_params, uint32_t * p_app_ram_base));
                                 ^
../../../../../../components/softdevice/s132/headers/nrf_svc.h:64:22: note: in definition of macro 'SVCALL'
   static return_type signature                          \
                      ^
cc1.exe: all warnings being treated as errors
make: *** [_build/main.o] Error 1
Parents
  • To use that particular example you must also use nRF52 SDK version 0.9.2, as is written under Requirements on the nRF52-ble-app-lbs github page.

    I suggest that you follow nAN36 first, with nRF52 SDK v0.9.2, SoftDevice s132 (the version that comes with SDK v0.9.2), and the nRF52822 DK (PCA10036 or PCA10040). This will get you familiar with BLE, the general appearance of our SDKs, and how to compile, download and run code on the nRF52 board.

    When you have done that, you can move on to start using the latest version of the SDK. Then you find and study examples that are relevant for the stuff you want to learn and do.

Reply
  • To use that particular example you must also use nRF52 SDK version 0.9.2, as is written under Requirements on the nRF52-ble-app-lbs github page.

    I suggest that you follow nAN36 first, with nRF52 SDK v0.9.2, SoftDevice s132 (the version that comes with SDK v0.9.2), and the nRF52822 DK (PCA10036 or PCA10040). This will get you familiar with BLE, the general appearance of our SDKs, and how to compile, download and run code on the nRF52 board.

    When you have done that, you can move on to start using the latest version of the SDK. Then you find and study examples that are relevant for the stuff you want to learn and do.

Children
No Data