Okay, so it turns out these functions:
zbPlatCryptoAesMmoFinalUpdate
zbPlatCryptoAesHmacMmo
zbPlatCryptoAesMmoFinalUpdate
zbPlatCryptoRandom256Get
zbPlatCryptoRandomGet
are declared in:
JNS5189DK6/middleware/wireless/zigbee/platform/zb_platform.h
and defined in:
JN5189DK6/middleware/wireless/zigbee/platform/K32W0/platform/crypto.c
JN5189DK6/middleware/wireless/zigbee/platform/NCP_HOST/platform/Posix/crypto.c
As far as I can tell, the source files are not included anywhere in the build.
The makefile config_ZBPro.mk seems to be responsible for the inclusion, as it adds the platform folder as a source folder and adds timer.c to the build.
config_ZBPro.mk from AN-1243
264 ifeq ($(FRAMEWORK_SWITCH),0)
265 ZIGBEE_BASE_DIR = $(SDK2_BASE_DIR)/middleware/wireless/zigbee3.0
266 else
267 ZIGBEE_BASE_DIR = $(SDK2_BASE_DIR)/middleware/wireless/zigbee
268 endif
...
385 ifeq ($(FRAMEWORK_SWITCH),1)
...
407 APPSRC += timer.c
...
654 ZIGBEE_BASE_src=$(OSA_BASE_SRC):$(ZIGBEE_COMMON_SRC):$(OS_ABSTRACT_SRC):$(GENERIC_LIST_SRC):$(BOARD_LEVEL_SRC)\
:$(CHIP_STARTUP_SRC):$(CHIP_SYSTEM_SRC):$(FSL_EXCEPTIONS_SRC):$(DEBUG_FIFO_SRC)\
:$(FRMWK_RNG_SRC):$(FRMWK_SECLIB_SRC):$(FRMWK_FUNCLIB_SRC):$(FRMWK_MSG_SRC)\
:$(ZIGBEE_COMMON_SRC)/../SelectiveOtaApp0/Source:$(FRMWK_MEMMGR_SRC)\
:$(FRMWK_TMRMGR_SRC):$(ZIGBEE_COMMON_SRC)/../SelectiveOtaApp1/Source\
:$(FSL_EEPROM_INT):$(FSL_OTA):$(FSL_EEPROM_GEN):$(FUNCTIONLIB):$(FRMWK_PANIC_SRC)\
:$(FRMWK_HEAP_SRC):$(FRMWK_LOWPOWER_SRC):$(FRMWK_GPIO_SRC):$(DEVICE_SP_DRIVERS)\
:$(FSL_COMPONENTS)/serial_manager:$(FSL_COMPONENTS)/uart:$(DEVICE_SP_UTILITIES)\
:$(DEVICE_SP_UTILITIES)/str:$(DEVICE_SP_UTILITIES)/debug_console:$(ZIGBEE_BASE_DIR)/platform/K32W0/platform
Adding crypto.c solves the problem and the build links correctly:
408 APPSRC += crypto.c
Could someone from NXP please comment on this? It seems unlikely that this is a bug in the examples as they are not new and I can't imagine that it would have gone undiscovered since it prevents building.
So it's more likely a problem with the current SDK or my setup. Were these functions precompiled and included the libs previously? Are there some environment setup steps that are needed aside from those detailed in AN1260? Any guidance would be appreciated.
Thanks