通过 SSL 的 STM32F411 W5500 Coremark 测试

这个项目是一个测试来比较两种情况的性能。
第一个是使用两个 stm32,第二个是使用一个 stm32 通过 SSL 发送数据。

转发: STM32F411 W5500 Coremark Test over SSL


项目介绍

概述

这个项目是一个测试来比较两种情况的性能。

第一种情况是使用两个stm32,将通过spi通信从另一个stm32接收到的数据发送到PC上的OpenSSL服务器。

第二种情况是使用一台stm32,仅向PC上的OpenSSL服务器发送数据。

在这两种情况下,在同一周期内传输相同数量的数据。

测试条件

  • CPU:stm32F411RE CPU
  • 时钟:100MHz
  • SPI:25Mbps/全双工/使用DMA
  • 发送数据大小:2048
  • 发送数据周期:10ms PC
  • 服务器:OpenSSL v.3.1.4
  • 基准测试:Coremark v1.0(迭代 10000)

硬件

<双MCU测试>

  • SPI2

STM32(PB13) <--- (CLK) ---> STM32(PB13)

STM32(PB14) <--- (MISO) ---> STM32(PB14)

STM32(PB15) <--- (MOSI) ---> STM32(PB15)

  • SPI1

STM32(PA5) <--- (CLK) ---> W5500

STM32(PA6) <--- (MISO) ---> W5500

STM32(PA7) <--- (MOSI) ---> W5500

<单片机测试>

  • SPI1

STM32(PA5) <--- (CLK) ---> W5500

STM32(PA6) <--- (MISO) ---> W5500

STM32(PA7) <--- (MOSI) ---> W5500

软件

<结构>

  • 双MCU测试

在第一种情况下,Board1 上创建了两个任务:发送任务和 coremark 任务。 send任务负责通过SPI传输数据,而coremark任务则执行Coremark工具。

Board2上,当接收到SPI数据时,触发中断,通过释放信号量来执行发送任务。

Send任务将接收到的数据通过w5500发送到openssl服务器。 为了防止发送前发生 SPI 中断,通过 GPIO 引脚向 SPI 主设备发送停止信号。 一旦到服务器的传输完成,就会发送启动信号。

  • <单片机测试>

第二种情况,创建了两个任务:传输任务和核心标记任务。 传输任务用于通过W5500传输数据,核心标记任务执行核心标记工具。

<mbedTLS 配置>

MBEDTLS_AES_C启用支持 AES 加密算法的模块的选项。
MBEDTLS_BASE64_C启用模块执行 Base64 编码和解码的选项。
MBEDTLS_BIGNUM_C启用用于大整数运算的模块的选项。
MBEDTLS_CAMELLIA_C启用支持 Camellia 加密算法的模块的选项。
MBEDTLS_CERTS_C启用模块的选项,使用预定义的证书和密钥提供身份验证功能。
MBEDTLS_CIPHER_C启用模块处理对称和非对称加密算法的选项。
MBEDTLS_DEBUG_C启用日志记录和调试功能的选项。
MBEDTLS_ENTROPY_C启用模块的选项可确保安全随机数生成。
MBEDTLS_MD_C / MBEDTLS_MD5_C启用支持哈希函数的模块的选项。
MBEDTLS_OID_C启用模块处理对象标识符 (OID) 的选项。
MBEDTLS_PLATFORM_C启用模块的选项,允许在 mbedTLS 库中替换平台相关的函数。
MBEDTLS_RSA_C启用支持 RSA 加密和数字签名算法的模块的选项。
MBEDTLS_SHA256_C启用支持 SHA-256 哈希函数的模块的选项。
MBEDTLS_SHA512_C启用支持 SHA-512 哈希函数的模块的选项。
MBEDTLS_SSL_TLS_C启用支持 TLS/SSL 协议的模块的选项。
MBEDTLS_X509_USE_C使用 X509 证书启用模块的选项。
MBEDTLS_X509_CRT_PARSE_C启用模块解析 X509 格式证书的选项。

MBEDTLS_ECP_MAX_BITS设置椭圆曲线加密中使用的最大位数的选项。
MBEDTLS_ECP_WINDOW_SIZE_ENABLE在椭圆曲线加密中启用基于窗口的优化的选项。
MBEDTLS_ECP_WINDOW_SIZE设置椭圆曲线加密中使用的窗口大小的选项。
MBEDTLS_ECP_FIXED_POINT_OPTIME_ENABLE在椭圆曲线加密中启用基于定点的优化的选项。
MBEDTLS_ECP_FIXED_POINT_OPTIM设置椭圆曲线加密中使用的定点优化的选项。
MBEDTLS_ENTROPY_MAX_SOURCES_ENABLE / MBEDTLS_ENTROPY_MAX_SOURCES用于启用和设置随机数生成的最大熵源数量的选项。
MBEDTLS_SSL_MAX_CONTENT_LEN_ENABLE / MBEDTLS_SSL_MAX_CONTENT_LEN用于启用和设置 TLS/SSL 中最大内容长度的选项。
MBEDTLS_SSL_CIPHERSUITES_ENABLE / MBEDTLS_SSL_CIPHERSUITES用于启用和设置 TLS/SSL 密码套件的选项。

MBEDTLS_HAVE_ASM启用汇编代码优化的选项。
MBEDTLS_NO_UDBL_DIVISION用于禁用大于 64 位整数的整数除法的默认实现的选项。
MBEDTLS_PLATFORM_MEMORY指定 mbedTLS 库应使用特定于平台的内存管理函数的选项。
MBEDTLS_AES_ROM_TABLES可选择将 AES 加密中使用的表存储在 ROM 中以节省 RAM。
MBEDTLS_ECP_NIST_OPTIM用于启用 NIST 曲线优化的选项。
MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES / MBEDTLS_NO_PLATFORM_ENTROPY禁用使用默认熵源或平台提供的熵源的选项。
MBEDTLS_CIPHER_MODE_OFB / MBEDTLS_CIPHER_MODE_XTS与启用对称加密模式相关的选项。
MBEDTLS_ECP_DP_SECP256R1_ENABLED / MBEDTLS_ECP_DP_SECP384R1_ENABLED / MBEDTLS_ECP_DP_CURVE448_ENABLED启用 ECC 相关参数的选项。
MBEDTLS_KEY_EXCHANGE_PSK_ENABLED / MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED / MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED / MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENAVLED / MBEDTLS_KEY_EXCHANGE_RSA_ENABLED / MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED/  MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED / MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED / MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED / MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED / MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED启用各种密钥交换方法的选项。
MBEDTLS_SSL_PROTO_TLS1_2使用 TLS 1.2 协议启用安全通信的选项。

测试结果

双MCU

单片机

双 MCU 的 CoreMark 得分高出 170.17 分。

使用双 MCU 时,发送数据的时间缩短了 89.8%。

文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值