Zahada C atmel studio

Jan Waclawek konfera na efton.sk
Neděle Květen 4 17:29:37 CEST 2014


>A to volani procedur tam musi byt, nebo se to spatne
>prelozi i bez nich?

Vytvaraju tlak na registre tak, ze premenna c vyjde do registra pod r16
(tie maju obmedzenejsie pouzitie). Inak sa chyba nevyskytne.

Ten tlak viem vyvolat aj inak, napr. vlozenim prazdneho inline asm s
clobberom na vsetky registre od r16 vyssie


#include <stdint.h>
int main(void) {
		
  uint8_t c = 0x20;

  do {
   __asm("":::"r16","r17","r18","r19","r20","r21","r22","r23", "r24",
"r25", "r26", "r27", "r28", "r29", "r30", "r31");

    c++;
    if (c >= 0x80) c = 0x20;

  } while(1); 

}

 ale to je take umele, ze to zbytocne vyvola pochybnosti o legitimnosti
vyskytu chyby v normalnom kode.



>To by podle me stalo zato do popisu chyby doplnit.

Mozete to tam pokojne doplnit... ;-)

Nebojte sa, ktokolvek, kto by sa tomu chcel venovat (a poznam len jedneho
takeho, je v Cc) bude presne vediet, preco tam tie volania funkcii su.

wek




Další informace o konferenci Hw-list