Role of syscalls.c
What is the role of syscalls.c file in GNU ARM(STM32 for instance) based projects? I found 2 ways of successfully building the project
1. Delete syscalls.c and include -specs=nosys.specs in the linker flags
2. Simply include syscalls.c
What is the fundamental difference between these two methods? What is the importance of system calls in a non-os environment like microcontroller? If it is used for implementing system level functions used by printf, scanf etc. then who is calling these function(because I am not using any of these functions in my code)?
P.S - I am using System Workbench for STM32 & STM32F4Nucleo board for this particular example