【HPM6750EVKMINI开发板】+通讯管理系统项目测试(一)
本测试为评测项目——通讯管理系统项目的第一部分,主要完成基本系统构建,包括无线通讯环境、文件系统、web管理界面等。
本次测试基于RT-ThreadStudio开发环境,使用rt-thread实时操作系统。
1、基本硬件描述
HPM6750EVKMINI开发板,如下图所示,采用先楫半导体设计的HPM6750控制器,集成了双32位RISC-V处理器,主频高达816MHz,同时集成了丰富的资源,包括大量的存储器,丰富的通讯接口,电机相关外设,加密引擎等。

开发板同时集成了按键,Flash存储器,SDRAM存储器,按键,小灯,两个USBTypeC接口,wifi模块,蜂鸣器等丰富的设备和资源。
2、软件实现
a) 构建rt-thread的基本工程
官方文档《HPM6750EVKMINIUSER GUIDE》中提供了基于RT-Thread Studio进行开发的环境搭建,这里不再重复。根据手册中的描述,我们建立了基本工程。
下面重点描述本次试用内容的开发过程。
b) 无线网络连接支持
双击工程下“RT-ThreadSettings”标签,打开工程配置。选择硬件标签,使能SPI1外设。

选中软件包标签,选中IoT-物联网->Wi-Fi->rw007:SPI WIFI rw007 driver软件驱动。配置SPIMax Hz = 20MHz。

选中组件标签,并在设备驱动程序条目、网络条目中配置基于wifi和lwip协议栈的相关支持。
配置完成后,保存RT-ThreadSettings,同时完成软件包更新。因为模板中已经提供了rw007的接口驱动,所以正常情况下程序可以编译通过,并且具备了wifi的支持能力。
为了更好的验证网络的支持情况,我们在安装一些网络工具支持软件包。同样是在RT-Thread Settings中,选中软件包->IOT-物联网->netutils:RT-Thread的网络工具集中我们需要的工具,保存RT-Thread Settings,更新软件包。

这样网络的支持和基本工具完成配置。
c) 文件系统支持
开发板上有TF卡接口,我们可以通过TF卡扩展开发板的存储,为了应用方便,我们通过增加文件系统,来管理外扩的TF卡。
同样是双击工程下“RT-ThreadSettings”标签,打开工程配置。选择硬件标签,使能SDXC0外设。

选中组件标签,使能elm chanFatfs,同时保证挂载文件系统的最大数据和文件系统类型的最大数目不要太小,默认4还是可以的。

配置完成后,保存RT-ThreadSettings,同时完成软件包更新。
在主函数中增加如下代码,完成TF卡挂载到根目录“/” 。
if (dfs_mount("sd0", "/", "elm", 0,NULL) == 0)
{
rt_kprintf("sd0mounted to /\n");
}
else
{
rt_kprintf("sd0mount to / failed\n");
}
d) ftp服务器搭建
ftp服务器是为了后续文件管理方便建立的,只需要简单的文件上传下载,目录管理,所以不需要布设过于复杂的服务器软件。这两选择将为简单的嵌入式ftp服务器agile_ftp,一个轻型的ftp服务器软件。
同样是双击工程下“RT-ThreadSettings”标签,打开工程配置。选择软件包标签,选中IOT-物联网->agile_ftp:Lightweight ftp server。

配置完成后,保存RT-ThreadSettings,同时完成软件包更新。
在主程序中增加如下代码,需要在完成SD卡挂载后,在启动ftp服务器。
ftp_init(2048,27, 100);
e) web 服务器搭建
web服务器是本测试项目中提供完成设备管理配置的人机接口部分。可以采用RT-Thread提供的小型轻量化的web服务器来实现。
同样是双击工程下“RT-ThreadSettings”标签,打开工程配置。选择软件包标签,选中IOT-物联网->网络:用于RT-Thread的轻量级、可定制、可嵌入的web服务器。

配置完成后,保存RT-ThreadSettings,同时完成软件包更新。
根据例程的形式,采用一个shell终端命令的形式启动web服务器。接口函数为:
void webnet_app(void)
{
#ifdef WEBNET_USING_CGI
webnet_cgi_register("login.cgi", cgi_login_handler);
webnet_cgi_register("calc", cgi_calc_handler);
#endif
#ifdef WEBNET_USING_ASP
webnet_asp_add_var("version", asp_var_version);
#endif
#ifdefWEBNET_USING_ALIAS
webnet_alias_set("/test", "/admin");
#endif
#ifdefWEBNET_USING_AUTH
webnet_auth_set("/www", "admin:admin");
#endif
webnet_init();
}
#ifdef FINSH_USING_MSH
MSH_CMD_EXPORT(webnet_app, wenbetapplication);
#endif
3、实测效果
连接usb typeC到开发板Debug口,编译程序下载到开发板。

打开串口终端软件,连接好串口,按下复位键,让程序重新运行。我们可以看到RT-Thread已经正确的运行起来,打印出了欢迎信息。

同时还打印出了rw007-wifi的相关信息,sd0容量及挂载信息,ftp的启动信息,似乎还缺少web server的信息。因为我们前面设计为shell终端命令了,所以web服务并没有启动。
此时按下tab按键后,我们可以看到终端支持的所有命令信息列表:

我们首先连接wifi做一下测试:
在终端输入命令:wifi scan

列出了很多的wifi信号,我们连接一个。
在终端输入命令:wifi join jiyong 12345678,连接成功后,在输入ifconfig来查看一下ip地址的获取情况。

可以看到,w0已经成功的获取了ip地址,wifi连接成功了,我们ping一下主机的ip
在终端执行:ping 192.168.95.1

ping命令返回了正确的信息。
我们连接ftp测试一下是否可以正确的列出文件系统的目录和文件。
打开fileZilla软件,输入刚才连接的地址192.168.95.8

可以看到,目录已经列出来了,包含一个文件和一个文件夹www,说明ftp服务器的运行也是正常了。
接下来我们运行webnet,看看web服务器是否可以正常运行。我事先在www下面放了一个网页文件,一个登录画面。
在终端执行:webnet_app
打开一个浏览器,输入刚才获取的地址192.168.95.8。

成功的打开了index.html画面,显示出登录界面。