通用 AT命令集
备注
通用 AT命令集默认启用,且无法关闭。
AT+TEST
功能说明
测试 AT 命令是否已就绪
测试 AT 底层外设接口的吞吐量
命令格式
AT+TEST=[<mode>, <length>/<string>]
响应格式
成功响应:
OK
错误响应:
ERROR: <error_no>
参数
- <mode>:
测试模式
0: 回显测试
1: 上行速率测试
2: 下行速率测试
- <length>:
速率测试时交互的数据量
- <string>:
回显测试时的输入字符串
错误代码
1: 参数错误
2: 内存分配错误
备注
当 <mode> 设置为上行速率测试时,将进入 透传(TT)模式 模式。
示例
测试 AT 命令是否就绪:
AT+TEST OK
测试回显功能:
AT+TEST=0,echo_test arg len = 9 arg = echo_test OK
测试上行速率:
AT+TEST=1,102400 >>> upstream test(tt mode): Send 100 KBytes in <时间> ms, <吞吐量> Kbits/sec OK
测试下行速率:
AT+TEST=2,102400 OK
AT+GMR
功能说明
输出版本等相关信息
命令格式
AT+GMR
响应格式
成功响应:
AMEBA-RTOS SDK VERSION: <SDK版本号>
ATCMD VERSION: <AT命令版本号>
IMAGE VERSION: <当前固件版本号>
<芯片昵称>: <芯片信息>
COMPILE TIME: <编译时间>
COMPILE USER: <编译用户>
COMPILE ENV : <编译环境>
OK
参数
无
示例
获取版本信息:
AT+GMR
AMEBA-RTOS SDK VERSION: 1.1.0
ATCMD VERSION: 2.4.1
IMAGE VERSION: 1.1
amebasmart: e1ffe0ff2504cc5383c030d6ffffff28
COMPILE TIME: 2025-03-26 14:06:55
COMPILE USER: user@linux
COMPILE ENV : arm-none-eabi-gcc
OK
AT+LIST
功能说明
列出当前支持的所有 AT 命令
命令格式
AT+LIST
响应格式
成功响应:
Common AT Command:
AT+TEST
// … followed by other common command list.
Wi-Fi AT Command:
AT+WLSOFTAP
// … followed by other Wi-Fi command list.
NETWORK AT command:
AT+SKTGETERR
// … followed by other TCP/IP command list.
BT AT command:
AT+BLECMODE
// … followed by other BT command list.
MQTT AT command:
AT+MQTTOPEN
// … followed by other MQTT command list.
OK
参数
无
AT+RST
功能说明
立即重启模块
命令格式
AT+RST
响应格式
成功响应:
OK
参数
无
AT+STATE
功能说明
获取任务的状态和当前堆信息
命令格式
AT+STATE
响应格式
成功响应:
Task List:
<线程名> <状态> <优先级> <可用栈水线> <任务序号>
...
HeapStats:
Total Heap: <堆总大小>
Heap Free Now: <当前可用堆大小>
Heap Used Now: <当前已用堆大小>
Heap Used Max: <历史已用堆最大值>
OK
备注
在 <状态> 字段中:
X 表示运行中
R 表示就绪状态
B 表示阻塞
S 表示挂起
D 表示已删除
参数
无
AT+OTACLEAR
功能说明
清除当前应用固件的签名
用户批量生产时用于切换固件。
备注
该命令仅支持在 手动测试模式 下使用。
命令格式
AT+OTACLEAR
响应格式
成功响应:
OK
参数
无
AT+OTARECOVER
功能说明
恢复被 AT+OTACLEAR 清除的应用固件的签名
用户批量生产时用于切换固件。
备注
该命令仅支持在 手动测试模式 下使用。
命令格式
AT+OTARECOVER
响应格式
成功响应:
OK
参数
无
AT+CPULOAD
功能说明
获取 CPU 负载的统计信息
备注
该命令仅支持在 手动测试模式 下使用。
命令格式
AT+CPULOAD=<mode>[,<interval>,<count>]
响应格式
成功响应:
当
mode == 0
:+CPULOAD:OK current mode: <mode> time: <interval>(s) count: <count>(-1 for infinite) task name state prio CPU% <cpu_stat_thread> R 10 99.87 <task_1> r 0 0.01 <task_2> b 9 0.01 // Other task lists if exist. // Wait for <interval> second, the next output, at most <count> times totally.
当
mode == 1
:+CPULOAD:OK current mode: <mode> time: <interval>(s) count: <count>(-1 for infinite) // Stop here if there is an infinite statistic.
当
mode == 2
或mode == 3
:+CPULOAD:OK current mode: <mode> time: <interval>(s) count: <count>(-1 for infinite) task name state prio CPU% <cpu_stat_thread> R 10 99.87 ...
错误响应:
ERROR:<error_no>
参数
- <mode>:
读取 CPU 负载的模式
0:创建 CPU 负载统计任务
1:如果任务正在运行,则立即输出信息,并减少计数;如果是无限次统计,则立即停止
2:更新统计时间
3:从上次统计时间开始输出信息
- <interval>:
间隔时间(秒)
[1, INT_MAX]
- <count>:
统计次数,0 或 -1 表示无限次
[-1, INT_MAX]
错误代码
1: 参数数量错误
2: 内存分配错误
3: 输入模式错误
4: 任务数量超过限制
示例
使用命令 AT+CPULOAD:
AT+CPULOAD=0
// Output...
AT+CPULOAD=1
+CPULOAD:OK
// Additional examples...
AT+LOG
功能说明
获取、设置或清除日志级别
命令格式
AT+LOG=<op>[,<module>,<log_level>]
响应格式
成功响应:
OK
或
<module> level = <log_level>
OK
错误响应:
ERROR:<error_no>
参数
- <op>:
操作类型
0:获取日志级别
1:设置日志级别
2:输出所有日志级别
3:清除所有日志级别
- <module>:
特定模块名称
字符串,
*
表示所有模块长度不应超过 9 字节
- <log_level>:
日志级别
[0,5]
错误代码
1: 参数错误
2: 设置失败
示例
日志级别操作:
AT+LOG=1,module1,3
AT+LOG=0,module1
AT+LOG=2
AT+LOG=3
AT+RREG
功能说明
读取通用寄存器的值
备注
该命令仅支持在 手动测试模式 下使用。
命令格式
AT+RREG=<address>[,<length>,<in_byte>]
响应格式
成功响应:
[address] <address的值> <address+4的值> <address+8的值> <address+12的值>
OK
错误响应:
ERROR:<error_no>
参数
- <address>:
寄存器起始地址
地址 4 字节对齐;如果未对齐,会自动进行对齐
- <length>:
读取的长度,单位由 <in_byte> 决定
- <in_byte>:
以字(word)或字节为单位
B
或b
,表示以字节为单位非
B
或b
,表示以字为单位
小心
输入的地址必须有效,否则可能导致系统崩溃。
错误代码
1: 参数错误
示例
以字为单位,读取 0x420080E0 地址开始的 40 个字的数据:
AT+RREG=0x420080E0,40 [420080e0] 00000000 00000000 00000000 00000000 bdc00512 00000000 ffffffff 00000000 [42008100] 0135110d 80010904 48380b77 00000061 e083f565 0000004e 00000000 00000000 [42008120] 0000001c 00000000 00000000 00000000 0040557f 00000000 00000000 00000000 [42008140] f62f98db 927956a0 00004910 00000000 4275fbb9 000000c5 00000000 00000000 [42008160] 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 OK
以字节为单位,读取 0x420080E0 地址开始的 40 个字节的数据:
AT+RREG=0x420080E0,40,b [420080e0] 00 00 00 00 00 00 00 00 [420080e8] 00 00 00 00 00 00 00 00 [420080f0] 12 05 c0 bd 00 00 00 00 [420080f8] ff ff ff ff 00 00 00 00 [42008100] 0d 11 35 01 04 09 01 80 OK
AT+WREG
功能说明
将一个字(word)的数据写入对应的通用寄存器
备注
该命令仅支持在 手动测试模式 下使用。
命令格式
AT+WREG=<address>,<data>
响应格式
成功响应:
OK
错误响应:
ERROR:<error_no>
参数
- <address>:
寄存器地址
地址 4 字节对齐;如果未对齐,会自动进行对齐
- <data>:
待写入的字(word)的数据
小心
输入的地址必须有效,否则可能导致系统崩溃。
错误代码
1: 参数错误
示例
在 0x420080E0 地址写入 0x12345678 的数据:
AT+WREG=0x420080E0,0x12345678
[420080e0] 12345678
OK
AT+TICKPS
功能说明
系统低功耗测试
备注
该命令仅支持在 手动测试模式 下使用。
命令格式
AT+TICKPS=<op>[,<type>]
参数
- <op>:
低功耗操作
R
: 释放低功耗锁,允许进入低功耗A
: 拿住低功耗锁,不允许进入低功耗TYPE
: 设置低功耗的类型GET
: 获取低功耗信息
- <type>:
仅当 <op> 为
TYPE
时需要PG
:Power-gating 模式CG
:Clock-gating 模式
示例
设置低功耗模式为 CG 模式:
AT+TICKPS=TYPE,CG
进入低功耗:
AT+TICKPS=R
获取低功耗信息:
AT+TICKPS=GET lockbit:1 dslp_lockbit:1