原创 IAR 5.30的极端优化 -- 优化到六亲不认

2009-2-17 04:36 6206 8 8 分类: MCU/ 嵌入式

使用最新的STM32的FWLib 2.0.3。

代码很简单,见图中灰色的代码:
while((SPI2->SR & SPI_I2S_FLAG_TXE) == (u16)RESET);
SPI2->DR = data;
while((SPI2->SR & SPI_I2S_FLAG_RXNE) == (u16)RESET);
ret = SPI2->DR;


6155dc9b-8006-4501-8b20-7f349178f030.jpg
虽然,SPI2->DR类型为vu16(volatile uint16),但仍旧逃不过被优化掉的命运。

总结:IAR的最高优化级别,优化没商量,还是少碰为好(在某些情况下容易出问题,并不是所有情况都会出错,正在研究出错的情况,有结果了发布)。
优化选项:最高空间优化+Multi-file Compilation+Discard Unused Publics。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条