【笔记】对volatile关键字在DSP中的理解

DSP将寄存器变量都映射到相应的寄存器地址,因此经常会见到这样声明的语句:

 

volatile struct EPWM_REGS *ePWM[PWM_CH] =
             {  
&EPwm1Regs, &EPwm1Regs, &EPwm2Regs, &EPwm3Regs, &EPwm4Regs};

 

 

那么,为什么需要volatile 这个关键字呢?

 

该单词的意思是可变的,易变的。在DSP中,一些寄存器的值的变化有两种情况:(1)硬件上导致的变化,例如中断、ADC等;(2)软件上的变化,例如对某个变量赋值等。

当加入了关键字volatile,则表示该变量的值可因上述两种情况而发生变化;即,对软件来说,硬件上变化的值是不可预知的,加入了该关键字,提示编译器每次读取该变量时,都要直接读取该变量地址中的寄存器!

posted on 2010-03-21 22:28  OneSeven  阅读(3152)  评论(0编辑  收藏  举报