/* performance_test.c */
/*
This file is part of the AVR-Crypto-Lib.
- Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de)
+ Copyright (C) 2006-2015 Daniel Otte (bg@nerilex.org)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
/*
* author: Daniel Otte
- * email: daniel.otte@rub.de
+ * email: bg@nerilex.org
* license: GPLv3
*
*
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
-#include "cli.h"
+#include <stdio.h>
#include "performance_test.h"
static volatile uint32_t ovfcounter;
-static uint16_t const_overhead=0;
-static uint16_t int_overhead=0;
+static uint16_t const_overhead = 0;
+static uint16_t int_overhead = 0;
ISR(TIMER1_OVF_vect){
- ovfcounter++;
+ ++ovfcounter;
}
void calibrateTimer(void){
- volatile uint8_t i=0;
startTimer(1);
stopTimer();
const_overhead = TCNT1;
startTimer(1);
- TCNT1=0xFFFE;
- i++;
+ TCNT1 = 0xFFFE;
+ asm("nop");
stopTimer();
int_overhead = TCNT1;
}
TCNT1 = 0;
ovfcounter = 0;
TCCR1A = 0x00;
- TIMSK &= 0xC3;
- TIMSK |= _BV(TOIE1); /* enable TOIE1 */
+ TIMSK = _BV(TOIE1); /* enable TOIE1 */
TCCR1B = granularity & 0x7; /* start timer */
}
return ret;
}
-void getOverhead(uint16_t* constoh, uint16_t* intoh){
+void getOverhead(uint16_t *constoh, uint16_t *intoh){
*constoh = const_overhead;
*intoh = int_overhead;
}
-void print_time_P(PGM_P s, uint64_t t){
- char sv[16];
- uint8_t c;
- cli_putstr_P(PSTR("\r\n"));
- cli_putstr_P(s);
- ultoa((unsigned long)t, sv, 10);
- for(c=strlen(sv); c<11; ++c){
- cli_putc(' ');
- }
- cli_putstr(sv);
+void print_time_P(PGM_P s, uint32_t t){
+ printf_P(PSTR("%S%11"PRIu32), t);
}
void print_overhead(void){
- char str[16];
- cli_putstr_P(PSTR("\r\n\r\n=== benchmark ==="));
- utoa(const_overhead, str, 10);
- cli_putstr_P(PSTR("\r\n\tconst overhead: "));
- cli_putstr(str);
- utoa(int_overhead, str, 10);
- cli_putstr_P(PSTR("\r\n\tinterrupt overhead: "));
- cli_putstr(str);
+ printf_P(PSTR("\n=== benchmark ===\n\tconst overhead: %7"PRIu16"\n\tinterrupt overhead: %7"PRIu16"\n"), const_overhead, int_overhead);
}