I'm studying the source code of FreeRTOS and I see that after the declaration of most functions, there is "PRIVILEGED_FUNCTION". What does this mean and what is the difference between a privileged and a non-privileged function ?
The macros are used by FreeRTOS MPU (which is not that well maintained, it has to be said, as so few people use it) to place the functions in specific memory sections. The memory sections are then marked as privileged execution only. There is a similar macro for privileged data. http://www.freertos.org/FreeRTOS-MPU-memory-protection-unit.html
The macro can be used to add any qualifier to the functions and/or data though.