volatile变量:操作CPU内memory mapping register的方法就是使用C语言的指针,为避免相关程序被最佳化,(例如连续三行程序“*a=1;”,就会被C compiler的最佳化功能变成一行),必须将形态设为“volatile”。如下
volatile unsigned int*xxx_register=0x_300024;
//0x300021、0经300020、0x300024是CPUR的memory mapping Register
//以下的运算是将第4位设为1
//
*(volatile unsygned char*)0x300021|=0x10;
*(volatile unsygned char*)0x300020|=0x10;
//对缓存器0x300024连续设值,因为变量形态设定为volatile
//所以对xxx_register的操作不会被最佳化
//
*xxx_register=0x00ABCDEF;
*xxx_regiser=0x12345678[/code] |