*(volatile unsigned short *)0x20000000背后的意义是啥?
从8*8LED点阵灯程序中看到的。
------解决方案-------------------- volatile 表示 禁止编译器优化
------解决方案--------------------volatile 定义为一个已初始化的全局变量
unsigned short * 的意思是定义一个2个字节的地址指针
连起来就是在0x20000000地址位置上输出一个2个字节长的数据。我想你0x20000000地址应该是一个LED点阵灯的片选信号。
*(volatile unsigned short *)0x20000000 = 0x0;可能是点亮led或关闭led
------解决方案--------------------volatile 可以不去管
( unsigned short * )是声明了一个 指针,
指针本身就是数值,
unsigned short *p = ( unsigned short * )0x20000000;
*p = 0; 与 *( unsigned short * )0x2000000 = 0;是一样的。
------解决方案--------------------------解决方案--------------------------解决方案--------------------------解决方案--------------------------解决方案--------------------------解决方案--------------------volatile 是多余的,删掉它,然后应该就明白了吧
------解决方案--------------------