logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

AVR studio +WinAVR. Wyłączanie wysyłania rejestrów na stos.

rafmos 21 Lut 2007 15:31 1328 2
REKLAMA
  • #1 3599578
    rafmos
    Poziom 13  
    Posty: 137
    Pomógł: 2
    Ocena: 13
    Mam pytanie odnoście AVR Studio, programuje w gcc z kompilatorem WinAVR i muszę wykonać przerwanie i zależy mi na czasie wykonania przerwania. Tutaj moje pytanie, czy są jakieś opcje kompilatora, które wyłaczają wysyłanie rejestrów na stos przy przerwaniu? Bo wysyłanie i odbieranie rejestrów nawet tych których nie używam w przerwaniu trwa dłużej niż instrukcje wywoływane przerwaniu. Może jest jakieś inne rozwiązanie?
  • REKLAMA
  • Pomocny post
    #2 3600671
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    rafmos napisał:
    Mam pytanie odnoście AVR Studio, programuje w gcc z kompilatorem WinAVR i muszę wykonać przerwanie i zależy mi na czasie wykonania przerwania. Tutaj moje pytanie, czy są jakieś opcje kompilatora, które wyłaczają wysyłanie rejestrów na stos przy przerwaniu? Bo wysyłanie i odbieranie rejestrów nawet tych których nie używam w przerwaniu trwa dłużej niż instrukcje wywoływane przerwaniu. Może jest jakieś inne rozwiązanie?

    
    
    register char xx asm("r5") ;
    
    SIGNAL (SIG_OVERFLOW1)  __attribute__ ((naked));    
    SIGNAL (SIG_OVERFLOW1)
       {
        xx++;
        asm ("reti");
       }

    Kompilator wygeneruje
    
       INC R5
       RETI
    

    To i duuuuużo więcej znajdziesz w dokumentacji kompilatora ;)

    Piotrek
  • #3 3602070
    rafmos
    Poziom 13  
    Posty: 137
    Pomógł: 2
    Ocena: 13
    Dzięki. No nie pomyślałem o tym:)
REKLAMA