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