关于volatile
在单片机中,普通代码里和中断共享全局变量,用volatile可以解决他们之间的竞争导致的错误吗?
[解决办法]
“用volatile可以解决他们之间的竞争”? 不能 !
volatile只是告诉编译器这个变量会变化,不要优化。
对单片机如果变量在一个机器指令内存取完(如BYTE变量)就不会有竞争,但对要几个机器指令内存取完的变量如int(4bytes)就会有竞争问题。
发布时间: 2012-03-09 21:42:55 作者: rapoo
关于volatile
在单片机中,普通代码里和中断共享全局变量,用volatile可以解决他们之间的竞争导致的错误吗?
[解决办法]
“用volatile可以解决他们之间的竞争”? 不能 !
volatile只是告诉编译器这个变量会变化,不要优化。
对单片机如果变量在一个机器指令内存取完(如BYTE变量)就不会有竞争,但对要几个机器指令内存取完的变量如int(4bytes)就会有竞争问题。