freertos: Make xPortGetCoreID() volatile

When xPortGetCoreID() is called twice within a function,
it might only be called once after compilation. This
commit makes the inline assembly of the function volatile.

Closes #3093
This commit is contained in:
Darian Leung 2019-02-26 20:58:02 +08:00
parent 59b4091fe5
commit 5bbb991c90

View file

@ -199,7 +199,7 @@ BaseType_t xPortInIsrContext();
/* Multi-core: get current core ID */ /* Multi-core: get current core ID */
static inline uint32_t IRAM_ATTR xPortGetCoreID() { static inline uint32_t IRAM_ATTR xPortGetCoreID() {
int id; int id;
asm ( __asm__ __volatile__ (
"rsr.prid %0\n" "rsr.prid %0\n"
" extui %0,%0,13,1" " extui %0,%0,13,1"
:"=r"(id)); :"=r"(id));