Баг IAR AVR EC++ 3.20C

Oct 14, 2004 3 Replies

Hi All,



По оптимизации кода на размер IAR 3.20 получается где-то на 5...10% лучше, чем 2.28. Однако в нем есть баги.



void RTC::I2C_Stop() { _WDR(); TWCR = 0x94; while(TWCR&0x10); // Wait until TWSTOP is cleared }


25 void RTC::I2C_Stop() \ ??I2C_Stop: 26 { 27 _WDR(); \ 00000000 95A8 WDR 28 TWCR = 0x94; \ 00000002 E904 LDI R16,148 \ 00000004 93000074 STS 116,R16 29 while(TWCR&0x10); // Wait until TWSTOP is cleared \ ??I2C_Stop_1: \ 00000008 CFFF RJMP ??I2C_Stop_1 30 }

Такие дела :( VLV



"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт


Привет Vladimir!

14 Oct 04 17:49, Vladimir Vassilevsky писал All:

VV> TWCR = 0x94; VV> while(TWCR&0x10); // Wait until TWSTOP is cleared

VV> \ 00000002 E904 LDI R16,148 VV> \ 00000004 93000074 STS 116,R16 VV> 29 while(TWCR&0x10); // Wait until TWSTOP is cleared VV> \ ??I2C_Stop_1: VV> \ 00000008 CFFF RJMP ??I2C_Stop_1

Объявление TWCR можно увидеть?

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Пирожок вареный с вареньем.

Thu Oct 14 2004 23:34, Alex Mogilnikov wrote to Vladimir Vassilevsky:

VV>> TWCR = 0x94; VV>> while(TWCR&0x10); // Wait until TWSTOP is cleared

VV>> \ 00000002 E904 LDI R16,148 VV>> \ 00000004 93000074 STS 116,R16 VV>> 29 while(TWCR&0x10); // Wait until TWSTOP is cleared VV>> \ ??I2C_Stop_1: VV>> \ 00000008 CFFF RJMP ??I2C_Stop_1

AM> Объявление TWCR можно увидеть?

См. штатные файлы iom128.h и iomacro.h из комплекта. Увы, там все правильно описано.

Примечание: если писать так, как рекомендуют в мануале: while(TWCR_TWSTO), то получается точно такой же неправильный результат.

Лечение: локально отключить оптимизацию c помощью прагмы.

VLV

P.S. Это давно отлаженный код, который успешно собирался всеми предыдущими версиями.

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Привет Vladimir!

15 Oct 04 00:57, Vladimir Vassilevsky писал Alex Mogilnikov:

AM>> Объявление TWCR можно увидеть?

VV> См. штатные файлы iom128.h и iomacro.h из комплекта. Увы, там все VV> правильно описано.

Право же, не хочется покупать сабж ради того чтобы посмотреть декларацию символа... :)

Всего наилучшего, [Team PCAD 2000] Алексей М. ... О сколько нам открытий чудных готовит открывашки крюк!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required