首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

伟福仿真器keil c编译器,程序某些行不被编译跟执行(急)

2014-01-12 
伟福仿真器keil c编译器,程序某些行不被编译和执行(急)ucharCH376SecWrite(uchar *buf,uchar ReqCount)/*

伟福仿真器keil c编译器,程序某些行不被编译和执行(急)
伟福仿真器keil c编译器,程序某些行不被编译跟执行(急)
uchar  CH376SecWrite(uchar *buf,uchar ReqCount)  /* 以扇区为单位在当前位置写入数据块,不支持SD卡 */
{
   uchar s,cnt;
   uchar temp;
   unsigned long StaSec;
   do
   {
xWriteCH376Cmd( CMD1H_SEC_WRITE );
xWriteCH376Data( ReqCount );
        s = Wait376Interrupt( );      
        if (s!=USB_INT_SUCCESS) return s;
        
        xWriteCH376Cmd(CMD01_RD_USB_DATA0);
        temp=xReadCH376Data( );
        cnt=xReadCH376Data( );  /* 长度 */
        temp=xReadCH376Data( );
        temp=xReadCH376Data( );
        temp=xReadCH376Data( );
        StaSec=CH376Read32bitDat( );  
        
        if (cnt== 0) break;
        s = CH376DiskWriteSec(buf,StaSec,cnt);  /* 将缓冲区中的多个扇区的数据块写入U盘 */
        if (s!=USB_INT_SUCCESS ) return(s);
        buf+=cnt*DEF_SECTOR_SIZE;
        ReqCount -= cnt;
   }while(ReqCount);
   return s;
}
这个函数中xWriteCH376Cmd(CMD01_RD_USB_DATA0)为什么不被编译呢,执行时也不执行这一行。
[解决办法]
你单步跟踪看到的不被执行?我遇到过这样的情况,某些IDE会有类似的问题(比如AVR studio和IAR),实际上语句可能已经执行了,但是执行的光标没有指示到正确的行,而是指到了别的行,所以不要看光标,要看具体的实际变量是不是变了。还有,发生这样的情况,通常是
1、用了中文的字符,比如中文输入法的情况下打了换行或空格这类不易发现的字符。注意要用ascii字符输入。
2、调试时,优化选项不要选优化。否则优化情况下,单步执行的指针你会觉得跳来跳去,根本看不懂。

热点排行