mxos 为用户提供串口 CLI 命令行调试功能,用来查看当前设备状态,以协助调试分析。
简介
mxos 的 CLI 命令是通过系统调试串口进行输入输出的。如:调试串口(波特率通常为:115200bps)输入:help,可以看到帮助命令列表:

CLI串口连接
确认UART口
在mxos SDK中,调试串口和调试命令串口通常共用一个UART口,具体的需根据Wi-Fi模块型号在mxos/board/mxos_board.h中确认。以3165为例,CLI串口定义如下:

安装驱动程序
开发板电源线,即调试串口线连接至PC端后,需安装USB转UART驱动程序,下载地址:http://www.ftdichip.com/Drivers/VCP.html,
PC端查看端口号
安装成功后,打开PC设备管理器,查看串口信息,如下图所示:

SecureCRT连接串口
发现端口号COM11,表示驱动成功安装,打开SecureCRT(或其他串口调试软件),连接COM11串口,设置如下:

连接成功后,即可向串口输入命令行进行调试。
CLI命令列表
在调试串口输入以下“串口命令”,即可获取想要的信息。 命令行种类及对应的功能,如下表:
| 序号 | 命令 | 功能 |
|---|---|---|
| 1 | help | 查询全部串口命令及其功能 |
| 2 | version | 查询设备固件版本信息 |
| 3 | echo | 查询或设置命令回传功能 |
| 4 | exit | 退出串口命令行状态 |
| 5 | scan | 扫描周围的WiFi接入点AP |
| 6 | wifistate | 查询wifi当前状态 |
| 7 | wifidebug | 查看或设置WiFi调试功能 |
| 8 | ifconfig | 查询设备IP地址 |
| 9 | arp | 查询或清除arp列表 |
| 10 | ping | 测试本机与某IP地址能否连通 |
| 11 | dns | 查询或清除DNS域名解析IP地址 |
| 12 | sockshow | 查询所有socket套接字状态 |
| 13 | tasklist | 查询所有线程的名字和状态 |
| 14 | memshow | 查询内存使用信息 |
| 15 | memdum | 从指定内存地址中复制数据 |
| 16 | memset | 向指定内存地址中设置数据 |
| 17 | memp | 查询内存空间分配列表 |
| 18 | wifidriver | 查询WiFi驱动信息 |
| 19 | reboot | 重启mxos系统 |
| 20 | tftp | 向设备指定Flash地址写入文件 |
| 21 | time | 查询设备系统运行时间 |
| 22 | ota | 系统自动OTA升级 |
| 23 | flash | 查询flash空间分配列表 |
| 24 | mxosdebug | 关闭或开启mxos运行log输出功能 |
下面就对列表中的CLI命令进行一一介绍。
CLI命令使用示例
help
功能:查询全部串口命令及功能。
在Command Window命令窗口中输入命令“help”,回车,串口返回内容,如下图:

version
功能:查询设备固件版本信息。
在Command Window命令窗口中输入命令“version”,回车,串口返回内容,如下图:

echo
功能:查询或设置命令回传功能
(1)在Command Window命令窗口中输入命令“echo”,回车,串口返回内容,如下图:
命令回传功能关闭。输入命令“version”回车,看到返回中无“# version”
(2)在Command Window命令窗口中输入命令“echo off”,回车,串口返回内容,如下图:

命令回传功能开启。输入命令“version”回车,看到返回中出现“# version”。
通常建议开启echo功能,便于同步观察命令功能
exit
功能:退出串口命令行状态
在Command Window命令窗口中输入命令“exit”,回车,串口返回内容,如下图:

此后输入命令无效,必须上电重启设备后才能生效。
scan
功能:扫描周围的WiFi接入点AP。
void wifiscan_Command(CLI_ARGS);
在Command Window命令窗口中输入命令“scan”,回车,串口返回内容,如下图:

获取到mxos设备附近的AP热点名称,通道,加密方式,及信号强度。
wifistate
功能:查询wifi当前状态。
void wifistate_Command(CLI_ARGS)
在Command Window命令窗口中输入命令“wifistate”,回车,串口返回内容,如下图:

首先输出需要连接的AP的信息,包括SSID,密码,BSSID和重试间隔(单位ms)。
然后输出连接的状态,如果已经连接成功,会输出连接AP的详细信息,包括SSID,通道,信号强度和BSSID。
wifidebug
功能:查看或设置WiFi调试功能。
void wifidebug_Command(CLI_ARGS);
其中:argc必须是2,argv[1]可以是”on”和”off”,分别用于打开和关闭wifi debug输出。
(1)当设备进入配网状态,等待配网时,在Command Window命令窗口中输入命令“wifidebug on”,回车,然后再进行配网,串口返回内容,如下图:

注意:该命令为动态指令,一次带电过程中有效,重新上电即关闭,需再次开启才生效。
(2)在Command Window命令窗口中输入命令“wifidebug off”,回车,串口返回内容,如下图:
!
此时,WiFi库中的调试信息log将停止输出。
ifconfig
功能:查询设备IP地址。
void ifconfig_Command(CLI_ARGS)
在Command Window命令窗口中输入命令“ifconfig”,回车,串口返回内容,如下图:

arp
功能:查询或清除arp列表。
void arp_Command(CLI_ARGS)
arp命令支持一个参数,分别是show和clean。 Clean用于清除ARP缓存。show用于输出arp缓存,使用如下:
(1)在Command Window命令窗口中输入命令“arp”,回车,串口返回内容,如下图:
返回arp命令格式分别为show和clean。

(2)在Command Window命令窗口中输入命令“arp show”,回车,
然后,通过ping命令与局域网内其他IP地址进行通信尝试,
再次通过“arp show”返回结果如下图

(3)在Command Window命令窗口中输入命令“arp clean”,清楚arp缓存,回车,
然后,通过指令“arp show”查看,串口返回内容如下图:

ping
功能:测试本机与某IP地址能否连通。
void ping_Command(CLI_ARGS);
ping命令用于ping某个IP地址,仅支持IP地址,不支持域名。
会连续ping 5次,每次延时1秒钟,ping完成以后输出结果
在Command Window命令窗口中输入命令“ping 192.168.1.1”,回车,串口返回内容,如下图:

说明设备与该IP地址连通。
dns
功能:查询或清除DNS域名解析IP地址。
void dns_Command(CLI_ARGS)
(1)在Command Window命令窗口中输入命令“dns”,回车,串口返回内容如下图:

可显示dns的命令格式。(此时设备运行demo: wifi_uart透传工程,已配网)
(2)在Command Window命令窗口中输入命令“dns show”,回车,串口返回内容如下图:

此时,Command Window命令窗口中输入命令“dns www.baidu.com”等,返回内容如下:

此时,在Command Window命令窗口中输入命令“dns show”,回车,返回如下图:

(3)在Command Window命令窗口中输入命令“dns clean”,回车,串口返回内容如下图:

sockshow
功能:查询所有socket套接字状态。
void socket_show_Command(CLI_ARGS);
显示当前系统socket的状态,分别显示BSD socket的状态,TCP的状态和UDP的状态。
在Command Window命令窗口中输入命令“sockshow”,回车,串口返回内容,如下图:显示设备当前的所有socket连接状态信息。

tasklist
功能:查询所有线程名字及状态 。
void task_Command(CLI_ARGS);
用于显示当前系统的Thread线程的状态。
在Command Window命令窗口中输入命令“tasklist”,回车,串口返回内容,如下图:显示设备当前的所有线程状态信息。

其中:
- Status(状态)——R代表线程运行,S代表线程停止,B代表线程阻塞;
- Prio(优先级)——线程优先级等级;
- Stack(栈)——线程占用栈空间大小;
- TCB(任务快)——线程任务块大小。
memshow
功能:查询内存使用信息。
void memory_show_Command(CLI_ARGS);
显示当前系统的内存情况
在Command Window命令窗口中输入命令“memshow”,回车,串口返回内容,如下图:显示设备当前的内存使用信息。

memdump
功能:从指定内存地址中复制数据。
void memory_dump_Command(CLI_ARGS);
以HEX格式DUMP出一段内存地址的内容。
在Command Window命令窗口中输入命令“memdump 0x0001000 100”,回车,串口返回内容,如下图:读取到 设备指定内存地址的数据。

其中0x200003c0是需要dump的内存地址的起始地址,10是需要dump的长度。
memset
功能:设置某段内存地址的数据内容。
void memory_set_Command(CLI_ARGS);
(1)在Command Window命令窗口中输入命令“memset 0x0001000 100”,回车,串口返回内容,如下图:写入到 设备指定内存地址数据,并通过 memdump 命令读出,验证写入的数据内容。

其中,0x200003c0是起始地址,后面可跟多个参数,每个参数对应一个地址的内容。
但是注意:有时 有些内存地址是不允许写入的。
memp
功能:查询内存空间分配列表。
void memp_dump_Command(CLI_ARGS);
显示当前协议栈各个缓存地址池的使用情况。
在Command Window命令窗口中输入命令“memp”,回车,串口返回内容,如下图:显示设备当前的内存分配情况。

wifidriver
功能:查询wifi驱动状态。
void driver_state_Command(CLI_ARGS);
用于打印出当前系统中wifi驱动的运行状态,
在Command Window命令窗口中输入命令“wifidriver”,回车,串口返回内容,如下图。

reboot
功能:重启mxos系统。
time
功能:查询设备系统运行时间。
在Command Window命令窗口中输入命令“time”回车,串口返回内容如图.

ota
功能:系统自动OTA升级 。
暂不支持。
flash
功能:查询flash空间分配列表。
在Command Window命令窗口中输入命令“flash”回车,串口返回内容如图.

mxosdebug
功能:关闭或开启mxos运行log输出功能。
