mbedtls+lwip+freertos调试总结

借助stm32官方提供的例程,以单片机作为mbedtls客户端,在PC机上运行mbedtls服务器,最终的目的是单片机能够通过网络连接到pc上的mbedtls服务器。

测试环境:stm32769-discover单片机开发板,PC机上运行centos7系统,单片机与PC机通过网线直连。

客户端代码修改:

客户端代码使用stm32官方提供的mbetls例程,需要修改main.h中的内容,需要修改的部分有两点:一是屏蔽#define USE_DHCP宏,目的是给单片机指定一个IP地址。

mbedtls+lwip+freertos调试总结_第1张图片

 

二是修改服务器端的IP地址,改成运行mbedtls服务程序电脑的IP地址。
mbedtls+lwip+freertos调试总结_第2张图片
服务器端代码修改:
服务器端程序从https://tls.mbed.org/download/start/mbedtls-2.4.0-apache.tgz下载。服务器端程序需要修改一个地方,指定服务器端的IP地址,在mbedtls-2.4.0/programs/ssl/ssl_server.c文件中,将mbedtls_net_bind函数的第二个参数改成与单片机中相同的server IP地址,这里的server IP地址也是运行服务器所在电脑的IP地址。第二个参数默认是NULL.
mbedtls+lwip+freertos调试总结_第3张图片

代码修改完之后,执行make指令,编译程序, 运行programs/ssl/ssl_server,服务器程序开始监听客户端连接。

执行这个步骤之前,需要关闭centos操作系统的防火墙,否则客户端与服务器无法正常连接,centos7关闭服务器的命令如下:

//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld

如果安装了iptables-service,也可以使用下面的命令:

yum install -y iptables-services

//关闭防火墙

service iptables stop 

//检查防火墙状态

service iptables status

 防火墙关闭之后,单片机便可以成功连接上PC端服务器。

 

 

 

 

 

 

 

 

你可能感兴趣的:(STM32,Linux)