目前,我在stm32f7核板上测试了mbedTLS的sha256性能。我用cycle counter register
测量stm32板的运行周期。测量公式如下所示:
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;
我已经在微芯片atecc508a的a上测试了sha
命令,该芯片执行硬件哈希处理,并且需要约18ms
来哈希32字节的数据。
使用mbedTLS只需大约0.05ms
即可哈希软件中的32字节数据。
我知道我必须牢记,通过i2c进行通信需要花费更多的时间进行操作,但是这些结果是否合法?这两个操作之间可能会有这样的差异吗?
这两个操作都将相应的哈希返回给32字节的某个输入。
如果有人可以回答我的问题,我将非常感谢。
答案 0 :(得分:4)
您可以以标准I2C速度(100kbit / s)进行传输
0.018 * 100000 = 1800位= 225字节
在18毫秒内(包括开销)。这不是很多,所以,是的,大部分时间都被i2c通信用尽了。