INE5349 - Bugs Part 1 avr8.h 1) Mesmo não sendo utilizados no programa, o comentário das linhas causa erro no mapeamento de endereços, por isso essas devem ser descomentadas 2) Os endereços dos regs estavam apontando para endereços de memória (somados de 0x20), quando deveriam estar apontado para endereços de E/S. context.h 3) Há um espaço depois das últimas instruções em SAVE_CONTEXT e REST_CONTEXT handler.h 4) Faltava colocar extern "C" para o correto funcionamento em C++ main.cc 5) Faltava colocar ";" após o laço (for) makefile 6) Faltando a diretiva "-fomit-frame-pointer" para handler.cc, vector.cc e my_handler.cc my_handler.cc 7) Nos dois métodos deve-se utilizar asm("reti\n") para retorno de interrupção, e não asm("ret\n") system.cc 8) O enderço correto de SREG é 0x80, e não 0x08: asm("out %0, %1;" : : "i"(SREG), "r"(0x80)); 9) O contador é zerado quando entra no método handle_timer0 e deveria ser apenas quando entrar no "if(count==60)" timer.h 10) A ordem dos parâmetros, nos métodos start() e stop() está invertida: deve ser asm("out %0, %1... e não asm("out %1, %0...