"); //-->
为何远程errDump调试总耗时过长?本文聚焦调试过程中的典型陷阱,逐一拆解成因并提供实战解决方案,助您构建清晰的调试路径,缩短问题定位时间。
本文特别分享errDump功能及Air8101开发板实操验证。
一、errDump功能介绍
1.1 errDump有什么用?
errDump是LuatOS系统中的错误日志上报模块,主要用于远程调试与故障诊断。
其原理是将模块运行过程中产生的错误信息或者应用日志,通过TCP/UDP上报到互联网上的指定服务器,技术人员可以在服务器上查阅日志,协助远程了解设备运行情况或者故障诊断。
核心价值体现在:
1)实时监控设备状态将设备运行时的错误信息(如系统崩溃、协程异常、网络故障等)通过TCP/UDP/HTTP协议上报到指定服务器。
2)支持量产设备维护对于已投放市场的设备,无需现场调试即可远程定位问题,显著降低维护成本。
3)灵活配置用户可自定义上报周期、服务器地址及日志类型,适应不同场景需求。
1.2 错误信息及日志类型
目前errDump支持2类错误日志的储存与上报:
1)系统任务报错
脚本报错属于系统异常日志,程序报错时会自动写入。
如果使用自动上报到iot平台,则在下次重启会自动读取并上报;如果是自行读取上报,可通过errDump.dump(buff,errDump.TYPE_SYS, ture) 来读取系统异常日志,并根据自己需求自定义传输。
2)用户自行写入
用户自行写入异常日志,是通过 errDump.record() 接口来保存的异常日志。
如果设置了定时上报周期的话,则会定期上报到服务器中;如果自行读取上报的话,可以通过 errDump.dump(nil, errDump.TYPE_SYS, true) 来读取用户异常日志,并根据自己需求自定义传输。
1.3 存储区域与空间管理
日志文件都是储存在文件系统中。系统异常日志文件和用户异常日志文件最大都是4KB。
当存储空间不足时,新日志会覆盖最旧的数据。用户可通过errDump.dump() 手动读取并清理日志,避免自动覆盖。
1.4 日志上报与读取方式
1)自动上报
通过errDump.config(enable, period, user_flag, custom_id, host, port) 配置服务器地址和周期(默认600 秒)。上报成功后,本地日志自动清空。

2)手动读取
使用errDump.dump(zbuff, type, isDelete) 读取日志,支持指定类型(如系统日志、用户日志)并选择是否删除。

3)自定义传输
禁用自动上报后,用户可通过errDump.dump() 获取日志内容,再通过MQTT、HTTP API等方式发送到自有服务器。
1.5 日志清除机制
1)自动清除:设置自动模式的话,上报到服务器成功后,本地日志自动删除。
2)手动清除:设置手动读取模组,调用errDump.dump(nil, type, true) 指定日志类型并删除。
3)覆盖策略:系统/用户日志达到4KB时,新写入内容覆盖旧数据。
二、 Air8101开发板errDump示例

下文以Air8101开发板为例,演示errdump日志上报功能实操要点。
最新源码及实操教程详见:https://docs.openluat.com/air8101/luatos/app/base/errdump/
主要示例代码如下:
1)main.lua


2)errdump_test.lua
本功能模块为:使用自动上报异常日志到iot平台。


3)errdump_uart.lua
本功能模块为:使用手动读取异常日志并通过串口传出。


4)errdump_tcp.lua
本功能模块为:手动读取异常日志上传到自己平台。




三、errDump实操验证
3.1 自动上传IoT平台
云平台:iot.openluat.com
1)登录IoT平台
手机号为账号,默认密码888888,创建一个IoT账号。
用这个账号即可登录IoT平台,将Air8101的sta mac归属到此账号名下。

2)新建一个项目

3)将你自己建的项目key复制到demo中

4)打开设备DEBUG开关
特别注意:使用IoT云服务器时,迫于服务器压力,只有手动打开debug开关,才会有日志上报。

5)LuaTools日志打印

6)云平台查看错误上报

3.2 手动读取通过串口上传功能验证
手动读取系统异常日志和用户自定义消息,并通过串口输出。
1)LuaTools日志打印

2)串口打印异常日志

3.3 手动读取通过TCP上传功能验证
手动读取系统异常日志和用户自定义消息,并通过TCP协议上报到服务器中。
本文使用TCP服务器来演示: https://netlab.luatos.com/
1)启动TCP服务器
启动TCP服务器并修改demo中的IP和端口号:

2)LuaTools日志打印

3)服务器日志打印

今天的内容就分享到这里了~
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
Kwikset:超低功耗Wi-Fi解锁无缝体验
用AT89C2051单片机实验合弦乐
超低功率高性能新一代产品MSP430F5xx
用单片机制作的纯正弦波逆变电源电路
[转帖]从Cygnal C8051F看8位单片机发展之路
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
物联网与RFID芯片
《AVR单片机C语言库》
被收购后的芯科实验室:物联网与人工智能的未来走向
创维数码5000系列彩电开关电源(AN单片机)电路
倾情奉献:MSP430汇编指令集(中文),详解带实例!
MSP430 电表解决方案
长虹R2118A型彩电开关电源(LA单片机)电路
MSP430单片机TIMER_A在产品设计中的应用
GD32E230F6V6实用指南:为下一个项目选择合适单片机
单片机语言C51应用实战集锦
5V 单片机与5V 耐压单片机有何区别,为什么至关重要
AVR 单片机专栏,资料下载!
MSP430x2xx4xx系列
语音合成芯片T6668和单片机8031的接口电路图
SmartDV展示完整的边缘与连接IP解决方案,以高速和低功耗特性赋能移动、物联网和媒体处理设备创新
16位语言函数工具库
嵌入式系统与物联网
基于物联网的电池组均衡充电与监控系统
TDK 发布 SensorStage 传感器评估平台,大幅加速 IMU 开发进程
芯科科技驱动和重塑智能门锁行业格局
低代码利器!MIT 可视化编程赋能 AI + 物联网移动端开发
AVR 单片机专栏,资料下载!之二
《ATmega8原理及应用手册》
利用PIC12C508单片机来实现加密狗技术[转帖]