导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:关于keilc51优化设置的bug[e_gay]

 *第2612篇: C51编程:关于keilc51优化设置的bug

  
楼 主:e_gay 2002年3月15日08:49
 C51编程:关于keilc51优化设置的bug
我发现用keil51高级优化选项后,有些代码不能正确执行,请看下面代码:
所有变量均为idata变量。
使用的编译器为keilc6.12,4级优化以前,程序正常运行,5级以后,校验和便不能正确累加。
keilc51的代码优化性能究竟怎样,其生成的代码可靠性如何,使用有何技巧,请各路大侠不吝
赐教。
case change_customer:  //change_customer=0xa5,常量。
{
    com_buf_tx[0]=0;    //包长度低字节
    com_buf_tx[1]=5;    //包长度高字节
    com_buf_tx[2]=change_customer;
    //高字节转换成16进制
    com_buf_tx[3]=(key[4]>>4)*10+(key[4]&0x0f);
    //低字节转换成16进制
    com_buf_tx[4]=(key[5]>>4)*10+(key[5]&0x0f);
    //把两个16进制数组合成一个整数
    wp=(WORD idata *)&com_buf_tx[3];
    *wp=com_buf_tx[3]*100+com_buf_tx[4];
    tx_length=7;
    //累加校验和
    wp=(WORD idata *)(&com_buf_tx[0]+5);
    *wp=0xaa+com_buf_tx[3]+com_buf_tx[4];
    SBUF=0xc0;
    uart_busy=1;            //正在发送数据,
    txorder=255;
}break;

>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:硬件:Need for help!!!汇编对网卡进行编程

[下一篇主题]:老古:你的仿真器在XP下能否和KEIL仿真通讯