使用最新的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;
虽然,SPI2->DR类型为vu16(volatile uint16),但仍旧逃不过被优化掉的命运。
总结:IAR的最高优化级别,优化没商量,还是少碰为好(在某些情况下容易出问题,并不是所有情况都会出错,正在研究出错的情况,有结果了发布)。
优化选项:最高空间优化+Multi-file Compilation+Discard Unused Publics。
文章评论(0条评论)
登录后参与讨论