1. 仿真器XDS无法连接电脑,设备管理器中有显示图标,但左边有一感叹号。 打开CCS3.3软件显示:Error initializing emulator 解决方法:卸载驱动,再更新,设置不在阻止此软件安装。如果感叹号消失,即安装成功。 2. 代码: #define EMAC_BASE 0x01C80000 #define EMAC_RX0HDP *( volatile Uint32* )( EMAC_BASE + 0x620 ) volatile Uint32 *pReg; pReg = &EMAC_RX0HDP; for ( i = 0 ; i < 8 ; i++ ) *pReg++ = 0; 解释: #define EMAC_BASE 0x01C80000这是申明的一个数,虽然代表一个起始地址,但还是一个数。EMAC_BASE + 0x620 就是一个数。( volatile Uint32* )( EMAC_BASE + 0x620 )这就是把这个数强制转换成一个32位地址,之所以用volatile,是因为这个地址里的数据会被外部改变,一般寄存器就是这样定义的,因为会有外围模块来改变它里面的值。 #define EMAC_RX0HDP *( volatile Uint32* )( EMAC_BASE + 0x620 ) 这就是取这个地址里的数了吧。 volatile Uint32 *pReg;定义的这个指针同样也是因为这个指针指向的数据会外部改变。那么pReg应当存放一个地址,EMAC_RX0HDP是取的一个内存里的数,所以要加取地址符号{相当于( volatile Uint32* )( EMAC_BASE + 0x620 )}。 for ( i = 0 ; i < 8 ; i++ ) { *pReg = 0;pReg++; } //就是将pReg以后的连续8个内存单元的数据清零了。
下载次数 25次 资源类型 应用文档 上传时间 2014-12-03
已有2人来访过
现在还没有留言