yield() is defined in Arduino.h in the extern "C" {} block (C:\Users\adumont\AppData\Local\Arduino15\packages\AZ3166\hardware\stm32f4\1.2.1\cores\arduino\Arduino.h), but it fails to link:
Linking everything together...
"C:\Users\adumont\AppData\Local\Arduino15\packages\AZ3166\tools\arm-none-eabi-gcc\5_4-2016q3/bin/arm-none-eabi-gcc" -mcpu=cortex-m4 -mthumb -O0 -g -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align "-TC:\Users\adumont\AppData\Local\Arduino15\packages\AZ3166\hardware\stm32f4\1.2.1\variants\MXChip_AZ3166/linker_scripts/gcc/AZ3166.ld" "-Wl,-Map,C:\Users\adumont\AppData\Local\Temp\arduino_build_357927/sketch_dec13a.ino.map" "-Wl,--gc-sections" -o "C:\Users\adumont\AppData\Local\Temp\arduino_build_357927/sketch_dec13a.ino.elf" "-LC:\Users\adumont\AppData\Local\Temp\arduino_build_357927" "-LC:\Users\adumont\AppData\Local\Arduino15\packages\AZ3166\hardware\stm32f4\1.2.1\system/sdk/lib" "-LC:\Users\adumont\AppData\Local\Arduino15\packages\AZ3166\hardware\stm32f4\1.2.1\system/emw10xx-driver/libwlan/TARGET_EMW1062" -Wl,--wrap,_malloc_r -Wl,--wrap,_free_r -Wl,--wrap,_realloc_r -Wl,--wrap,_calloc_r -Wl,--start-group "C:\Users\adumont\AppData\Local\Temp\arduino_build_357927\sketch\sketch_dec13a.ino.cpp.o" "C:\Users\adumont\AppData\Local\Temp\arduino_build_357927\core\variant.cpp.o" "C:\Users\adumont\AppData\Local\Temp\arduino_build_357927/core\core.a" -Wl,--end-group -lm -lwlan -lwifi -lmbed-os -lstdc++ -gcc --specs=nano.specs --specs=nosys.specs -u _printf_float
c:/users/adumont/appdata/local/arduino15/packages/az3166/tools/arm-none-eabi-gcc/5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 4 bytes
c:/users/adumont/appdata/local/arduino15/packages/az3166/tools/arm-none-eabi-gcc/5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 4 bytes
c:/users/adumont/appdata/local/arduino15/packages/az3166/tools/arm-none-eabi-gcc/5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 4 bytes
C:\Users\adumont\AppData\Local\Temp\arduino_build_357927\sketch\sketch_dec13a.ino.cpp.o: In function `setup':
C:\Users\adumont\Documents\Arduino\generated_examples\alex1\sketch_dec13a/sketch_dec13a.ino:5: undefined reference to `yield'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board MXCHIP AZ3166.
#include <Arduino.h>
void setup() { yield(); }
void loop() {}
I suspect it's not implemented. yield() doesn't appear anywhere in the stm32f4 sources. In that case why is it in Arduino.h?