|
вопрос по IARy, IAR спасовал? |
|
|
|
Jun 16 2005, 09:30
|

Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-03-05
Пользователь №: 3 082

|
Компилю текст: #pragma vector = TIMER2_OVF_vect __interrupt void system_timer() { blink_timer++; }
и выдает:
#pragma vector = TIMER2_OVF_vect __interrupt void system_timer() ST -Y, R31 ST -Y, R30 ST -Y, R17 ST -Y, R16 IN R17, 0x3F } blink_timer++; LDI R30, LOW(blink_timer) LDI R31, (blink_timer) >> 8 LD R16, Z INC R16 ST Z, R16 } OUT 0x3F, R17 LD R16, Y+ LD R17, Y+ LD R30, Y+ LD R31, Y+ RETI
при максимальной оптимизации. Не пойму почему бы ему не использовать STS? или я что-то не так пишу или хваленый иар не спосбен на подвиги? ЧТО Я НЕ ТАК ДЕЛАЮ?
|
|
|
|
|
 |
Ответов
|
Jun 16 2005, 09:54
|
Знающий
   
Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32

|
Цитата(LeoLabs @ Jun 16 2005, 13:30) Не пойму почему бы ему не использовать STS? или я что-то не так пишу или хваленый иар не спосбен на подвиги? Похоже, всё-таки не способен... Вот как это скомпилировал CodeVision, для сравнения:Код 26 char blink_timer; ;27 ;28 // Timer 0 output compare A interrupt service routine ;29 interrupt [TIM0_COMPA] void timer0_compa_isr(void) ;30 {
.CSEG _timer0_compa_isr: ST -Y,R30 IN R30,SREG ;31 blink_timer++; INC R2 ;32 } OUT SREG,R30 LD R30,Y+ RETI
вариант с переменной в памяти:
Код ;26 volatile char blink_timer; _blink_timer: .BYTE 0x1 ;27 ;28 // Timer 0 output compare A interrupt service routine ;29 interrupt [TIM0_COMPA] void timer0_compa_isr(void) ;30 {
.CSEG _timer0_compa_isr: ST -Y,R30 IN R30,SREG ST -Y,R30 ;31 blink_timer++; LDS R30,_blink_timer SUBI R30,-LOW(1) STS _blink_timer,R30 ;32 } LD R30,Y+ OUT SREG,R30 LD R30,Y+ RETI
--------------------
Главная линия этого опуса ясна мне насквозь!
|
|
|
|
Сообщений в этой теме
LeoLabs вопрос по IARy Jun 16 2005, 09:30 vet Ещё немного сравнительных результатов от ICC v6.30... Jun 17 2005, 06:28 AlexOr Нет слов.
Только маты. Jun 20 2005, 13:28 AlexOr Кстати,
LDI R30, LOW(blink_timer)
LDI R31, (blink_... Jun 20 2005, 13:41 vet Цитата(AlexOr @ Jun 20 2005, 17:41)Кстати,
LD... Jun 20 2005, 15:23  LeoLabs Задал этот вопрос (почему через указатели а не чер... Jun 21 2005, 01:12 dxp Цитата(AlexOr @ Jun 20 2005, 19:41)Кстати,
LD... Jun 21 2005, 06:35  LeoLabs [/quote]
Не стОит так переживать из-за этой мелоч... Jun 21 2005, 07:08   dxp Цитата(LeoLabs @ Jun 21 2005, 13:08)Но прерыв... Jun 21 2005, 07:36    LeoLabs Цитата(dxp @ Jun 21 2005, 14:36)Цитата(LeoLab... Jun 21 2005, 07:57     dxp Цитата(LeoLabs @ Jun 21 2005, 13:57)ну что ж:... Jun 21 2005, 09:05      LeoLabs Цитата(dxp @ Jun 21 2005, 16:05)Непонятно, ка... Jun 22 2005, 01:24       dxp Цитата(LeoLabs @ Jun 22 2005, 07:24)Цитата(dx... Jun 22 2005, 04:30  vet Цитата(dxp @ Jun 21 2005, 10:35)Это до тех по... Jun 21 2005, 09:04   dxp Цитата(vet @ Jun 21 2005, 15:04)Прямо сейчас ... Jun 21 2005, 09:25    vet Цитата(dxp @ Jun 21 2005, 13:25)Цитата(vet ... Jun 21 2005, 10:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|