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

Upgrading to SDK 5.2.0 breaks build

I've just tried upgrading to 5.2.0 from 5.1.0. I simply downloaded the new SDK's zip file, extracted it next to the old one, and adjusted my makefile to reflect the new path.

I get a bunch of warnings and errors in S110/*.h because of asm operand constraints or something. Of note, I am using my own custom Makefile. It has been working perfectly fine. I don't suspect it to be the problem unless the build system expectations have changed since 5.1.0.

What I find really weird is the that S110 files have not changed at all (expected) but the errors seem to be happening there.


"C:/Program Files (x86)/GNU Tools ARM Embedded/4.8 2014q1/bin/arm-none-eabi-g++" -c -I. -I"C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/" -I"C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/app_common" -I"C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/sd_common" -I"C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110" -I"C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/ble" -I"C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/ble/ble_services" -I"C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/gcc" -Os -mcpu=cortex-m0 -mthumb -mabi=aapcs -mfloat-abi=soft -MMD -MP -MF build/.dep/main.cpp.o.d -std=c++0x -DBLE_STACK_SUPPORT_REQD -D__HEAP_SIZE=512 -DNRF51 main.cpp -o build/main.cpp.o
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/ble_gap.h: In function 'uint32_t sd_ble_gap_sec_info_reply(uint16_t, const ble_gap_enc_info_t*, const ble_gap_sign_info_t*)':
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/nrf_svc.h:20:6: warning: asm operand 0 probably doesn't match constraints [enabled by default]
     ); \
      ^
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/ble_gap.h:850:1: note: in expansion of macro 'SVCALL'
 SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const * const p_enc_info, ble_gap_sign_info_t const * const p_sign_info));
 ^
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/nrf_svc.h:20:6: error: impossible constraint in 'asm'
     ); \
      ^
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/ble_gap.h:850:1: note: in expansion of macro 'SVCALL'
 SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const * const p_enc_info, ble_gap_sign_info_t const * const p_sign_info));
 ^
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/ble_gatts.h: In function 'uint32_t sd_ble_gatts_sys_attr_set(uint16_t, const uint8_t*, uint16_t)':
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/nrf_svc.h:20:6: warning: asm operand 0 probably doesn't match constraints [enabled by default]
     ); \
      ^
C:/Nordic~1/nRF51S~1.393/Nordic/nrf51822/Include/S110/ble_gatts.h:519:1: note: in expansion of macro 'SVCALL'
 SVCALL(SD_BLE_GATTS_SYS_ATTR_SET, uint32_t, sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const*const p_sys_attr_data, uint16_t len)); 
 ^

Anyone have any clue what could have changed?

Note: C:/Nordic~1/nRF51S~1.393 > C:\Nordic Semiconductor\nRF51 SDK_v5.2.0.39364

Parents Reply
  • I just added a macro definition with your fix and as the SDK header checks whether the macro is already defined or not, this works nice, without the need to change the SDK sources. I'm using CMake too (first project) and currently, the cmake script is looking for a SDK file(GLOB NRF51_SDK_PATH ../nrf51_sdk_${NRF51_SDK_VERSION}*). NRF51_SDK_VERSION is defined as v6_0_0 and I could use this to check for the existens of the bug. `

Children
No Data
Related