В данный момент я тестирую производительность m25TLS на ядре stm32f7 для sha256.Я измеряю прошедшие циклы платы stm32 с помощью cycle counter register
.Формула измерения выглядит примерно так:
DWT->CYCCNT = 0;
uint32_t dwtStart = DWT->CYCCNT;
//uncomment for mbed calculation mbedtls_sha256();
//uncomment for atecc508a calculation atecc508a_sha256();
uint32_t dwtStop = DWT->CYCCNT;
double dStart = (double) dwtStart;
double dStop = (double) dwtStop;
// SystemCoreClock is a constant = 216000000
double result_in_milliseconds = (dStop-Start)/SystemCoreClock * 1000;
Я тестировал команду sha
на микрочипе atecc508a, которая выполняет аппаратное хеширование, и для хэширования 32 байт данных требуется около 18ms
..
При использовании mbedTLS требуется всего 0.05ms
для хеширования 32 байт данных в программном обеспечении.
Я знаю, что должен помнить, что обмен данными через i2c требует дополнительного временидля операции, но законны ли эти результаты?Может ли быть такое расхождение между этими двумя операциями?
Обе операции возвращают соответствующий хэш для определенного ввода в 32 байта.
Был бы очень благодарен, если бы кто-то мог ответить на мой вопрос.