-
- Так надо в листинг заглянуть. __low_power_mode_off_on_exit(); должен поправить сохраненное на стеке при входе в прерывание значение SR. Ну на крайний случай в симуляторе убедиться, что она "попадает" в нужную точку на стеке. - Сергей Борщ(09.02.2009 12:46)
- Золотые слова. Бутлодырь писал в IAR v 1.25А, потом через какое-то время наткнулся, когда целевую программу компильнул в v 1.26. Именно из-за разницы в реализациях low_power_mode. Так что смотреть листинг обязательно... - Гудвин(09.02.2009 13:14)
- Смотреть-то посмотрю. Но не радует, что в таких вкусных местах неопределенность таки может быть - Vit(09.02.2009 13:42)
- Можно инлайн-ассемблерную команду запихать, она там всего одна. Тогда определенность будет. - she(09.02.2009 13:46)
- И как узнать смещение, по которому оказалось на стеке нужное число? Компилятор-то знает, сколько он сверху контекста навалил. Подозреваю, что Гудвин попал как раз на "устаканивание" этой функции, в современных версиях она скорее всего должна быть Сергей Борщ(15 знак., 09.02.2009 14:24)
- Можно инлайн-ассемблерную команду запихать, она там всего одна. Тогда определенность будет. - she(09.02.2009 13:46)
- Смотреть-то посмотрю. Но не радует, что в таких вкусных местах неопределенность таки может быть - Vit(09.02.2009 13:42)
- Золотые слова. Бутлодырь писал в IAR v 1.25А, потом через какое-то время наткнулся, когда целевую программу компильнул в v 1.26. Именно из-за разницы в реализациях low_power_mode. Так что смотреть листинг обязательно... - Гудвин(09.02.2009 13:14)
- ИМХО вполне штатно - she(09.02.2009 12:22)
- Так надо в листинг заглянуть. __low_power_mode_off_on_exit(); должен поправить сохраненное на стеке при входе в прерывание значение SR. Ну на крайний случай в симуляторе убедиться, что она "попадает" в нужную точку на стеке. - Сергей Борщ(09.02.2009 12:46)