X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=performance_test.c;h=44b5b7be26b4db9183ea5f0962d0a8e81c74184d;hb=f58eb2f22289048ea43fd8124b912d653d3c646e;hp=91d4f1cdb5c7164e1ca01ce5a697acd3d152aacc;hpb=2c2d732098455b6ef9e5908ebd75238df0b2bd4c;p=avr-crypto-lib.git diff --git a/performance_test.c b/performance_test.c index 91d4f1c..44b5b7b 100644 --- a/performance_test.c +++ b/performance_test.c @@ -1,15 +1,28 @@ /* + * author: Daniel Otte + * email: daniel.otte@rub.de + * license: GPLv3 * * - * - */ - + **/ + +#include "config.h" +#include #include #include #include #include +#include +#include "uart.h" #include "performance_test.h" + +#ifdef ATMEGA644 + #define TIMSK TIMSK1 +#endif + + + uint32_t ovfcounter; uint16_t const_overhead=0; @@ -37,7 +50,7 @@ void startTimer(uint8_t granularity){ ovfcounter = 0; TCCR1A = 0x00; TIMSK &= 0xC3; - TIMSK |= _BV(2); /* enable TOIE1 */ + TIMSK |= _BV(TOIE1); /* enable TOIE1 */ TCCR1B = granularity & 0x7; /* start timer */ } @@ -55,6 +68,27 @@ void getOverhead(uint16_t* constoh, uint16_t* intoh){ *intoh = int_overhead; } +void print_time_P(PGM_P s, uint64_t t){ + char sv[16]; + uint8_t c; + uart_putstr_P(PSTR("\r\n")); + uart_putstr_P(s); + ultoa((unsigned long)t, sv, 10); + for(c=strlen(sv); c<11; ++c){ + uart_putc(' '); + } + uart_putstr(sv); +} +void print_overhead(void){ + char str[16]; + uart_putstr_P(PSTR("\r\n\r\n=== benchmark ===")); + utoa(const_overhead, str, 10); + uart_putstr_P(PSTR("\r\n\tconst overhead: ")); + uart_putstr(str); + utoa(int_overhead, str, 10); + uart_putstr_P(PSTR("\r\n\tinterrupt overhead: ")); + uart_putstr(str); +}