# CLI 调试命令
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 (opens new window),
#PC端查看端口号
安装成功后,打开PC设备管理器,查看串口信息,如下图所示:
#SecureCRT连接串口
发现端口号COM11,表示驱动成功安装,打开SecureCRT(或其他串口调试软件),连接COM11串口,设置如下:
连接成功后,即可向串口输入命令行进行调试。
#CLI命令列表
在调试串口输入以下“串口命令”,即可获取想要的信息。 命令行种类及对应的功能,如下表:
序号 | 命令 | 功能 |
1 | 查询全部串口命令及其功能 | |
2 | 查询设备固件版本信息 | |
3 | 查询或设置命令回传功能 | |
4 | 退出串口命令行状态 | |
5 | 扫描周围的WiFi接入点AP | |
6 | 查询wifi当前状态 | |
7 | 查看或设置WiFi调试功能 | |
8 | 查询设备IP地址 | |
9 | 查询或清除arp列表 | |
10 | 测试本机与某IP地址能否连通 | |
11 | 查询或清除DNS域名解析IP地址 | |
12 | 查询所有socket套接字状态 | |
13 | 查询所有线程的名字和状态 | |
14 | 查询内存使用信息 | |
15 | 从指定内存地址中复制数据 | |
16 | 向指定内存地址中设置数据 | |
17 | 查询内存空间分配列表 | |
18 | 查询WiFi驱动信息 | |
19 | 重启mxos系统 | |
20 | 向设备指定Flash地址写入文件 | |
21 | 查询设备系统运行时间 | |
22 | 系统自动OTA升级 | |
23 | 查询flash空间分配列表 | |
24 | 关闭或开启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输出功能。