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

* 6324: C51编程:关于keilc51优化设置的bug

   e_gay 
e_gay发表的帖子 

 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;


发表时间:2002年3月15日8:49:00

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:硬件:Need for help!!!汇编对网卡进行编程我是一个学生,我想应汇编
[下一篇帖子]:老古:你的仿真器在XP下能否和KEIL仿真通讯