Volatile Variable



// volatile 

int flag; // global memory is part of "BSS" section, guaranteed to be zero (unless a bug in startup code)

void flag_setter_task(void *p) {

 while (1) {

 ++flag;

 vTaskDelay(1000);

 }

}

void flag_checker_task(void *p) {

 puts("Task entry");

 while (1) {

 flag = 0;

 while (0 == flag) {

 ;

 }

 puts("flag has incremented away from value of 0");

 vTaskDelay(1000);

 }

}

Interview Questions

What is a volatile keyword?

Given a code snippet, why you cannot set a breakpoint?

Is const opposite of volatile?

What is the point of "const volatile *variable" ?

You as a programmer, cannot write a line of code to modify, but maybe DMA or a peripheral behind you can modify it

