今天遇到一个奇怪的问题,IAR在编译的时候竟然出问题。(IAR版本为V5.40,优化等级为Medium)
C代码为
#define UART_ENABLE {UCA1CTL1 |= UCSWRST;P4SEL |= (BIT4|BIT5);UCA1CTL1 &= ~UCSWRST;UCA1IE |= UCRXIE;}
结果汇编代码为:
正常情况下,OOBFC6 应该是
mov.w #0x30,R10
bis.b R10,&PBSEL_H
汇编少了一句“mov.w #0x30,R10”,导致R10不确定,结果就是串口一直没工作。
是不是高优化就存在误编译的风险?求大神帮忙
此帖出自
小平头技术问答
一周热门 更多>