what is NSC and when can use it ?
If you have a mulit-project that is made up of a secure project and a non-secure project. If you need to call the secure code from non-secure code, you need a non-secure callable function. There are built in security features that stop the code from switching from non-secure to secure code arbitrarily. Using a non-secure callable function gives the non-secure code an entry point into the secure code. It ensures only secure functions the programmer wants available to non-secure code are callable.
I hope this helps.
Some information about TrustZone for Armv8-M can be found here:
Hope that helps.
Thank you Stuart, it's clear now.