|
Ситуация такова: жила программа под IAR 2.28 и горя не знала, но тут вышел IAR 3.10С, и решил я перекомпилировать программу. Перекомпилировал. Увидел, что размер кода уменьшился на 4,5%, а проценты эти были до зарезу нужны. Но тут пришли они...Глюки.И приходили Глюки только при включенной оптимизации code motion. Вичслил что плодятся эти Глюки в вышеуказанной фуннкции. Заменил ее следующей:
void pause(unsigned int ms)
{
while(ms--){
__delay_cycles(4000);
asm("wdr");
}while(ms--);
}
Все заработало(т.е. ошибка компилятора имела место быть).Однако, остались сомнения не напакостит ли эта самая оптимизация в другом месте. Поэтому я и спросил что она собой представляет?
PS Извиняюсь за многословность.
E-mail: info@telesys.ru