变量使用volatile修饰,即告诉编译器,该变量随机会发生变化,每次使用该变量直接到内存中去取而不是采用暂存在寄存器中的值。
1、中断服务程序中修改的供其他的程序控制的变量;
例如:在进行串口通信的中断服务程序中的状态标志;
2、多任务环境下各任务间共享的标志,应该加上volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明。
变量使用volatile修饰,即告诉编译器,该变量随机会发生变化,每次使用该变量直接到内存中去取而不是采用暂存在寄存器中的值。
1、中断服务程序中修改的供其他的程序控制的变量;
例如:在进行串口通信的中断服务程序中的状态标志;
2、多任务环境下各任务间共享的标志,应该加上volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明。