init: Air780EPM 官方 LuatOS 项目代码基线

- 来源: 合宙 LuatOS 官方仓库 air780epm 模块完整代码
- 路径: luatos/air780epm/module/Air780EPM/demo 含官方 demo(含 mqtt/mqtts/socket/uart 等)
- 后续: 基于 demo 开发 UART<->MQTT 数据上报功能
This commit is contained in:
wangfq
2026-08-31 08:53:49 +08:00
commit 173dd6874f
813 changed files with 125484 additions and 0 deletions
@@ -0,0 +1,118 @@
-- air153x_wdt.lua
--[[
@summary Air153C/Air153D外部看门狗演示模块
@version 1.0
@date 2026.08.21
@author 陈媛媛
@usage
硬件介绍:
Air153C/Air153D是合宙推出的SOT23-6封装看门狗芯片,用于保障系统稳定性。
- Air153C:超时时间固定约240秒(3.3V供电时实测283秒)
- Air153D:通过STRAP引脚可配置超时时间(10分钟/60分钟/12小时/24小时)
核心信号:
- WTDOG(PIN3):喂狗输入,常态低电平,高脉冲喂狗(>200ms)
- PWR_OFF(PIN4):复位输出,喂狗异常时输出高电平触发主控复位
复位触发条件:
1. 超时复位:超过T_timeout未收到喂狗信号,PWR_OFF输出500ms高电平
2. 强制复位:1秒内连续收到3个喂狗信号,PWR_OFF立即输出500ms高电平
本示例演示三种使用场景:
1、auto_feed模式:配置看门狗,内部自动喂狗,系统持续运行
2、force_reset模式:配置看门狗,10秒后手动触发强制复位(3次快速脉冲)
3、no_feed模式:不配置看门狗,等待超时后自动复位模组
通过修改 DEMO_MODE 变量来选择演示模式
注意:
- force_reset模式下,设备会在10秒后触发硬件复位
- no_feed模式下,设备会在看门狗超时后自动复位(Air153C约240秒,Air153D取决于STRAP配置)
]]
local exair153x_wdt = require("exair153x_wdt")
-- 演示模式选择: "auto_feed"、 "force_reset" 或 "no_feed"
local DEMO_MODE = "auto_feed" -- 修改这个变量来切换演示模式
local wdt_pin = 24 -- 看门狗喂狗引脚
-- 模式1:配置看门狗,内部自动喂狗
local function auto_feed_mode()
log.info("wdt_demo", "模式1:自动喂狗模式启动")
-- 初始化看门狗,启动自动喂狗任务
-- 默认180秒自动喂狗一次
exair153x_wdt.init({ wdt_pin = wdt_pin })
log.info("wdt_demo", "看门狗已初始化,自动喂狗任务已启动")
log.info("wdt_demo", "系统将自动维持看门狗,设备持续运行")
-- 模拟业务逻辑运行
local count = 0
while true do
count = count + 1
log.info("wdt_demo", "业务逻辑运行中... 第" .. count .. "次循环")
-- 可选:手动喂狗(有防误触发机制)
-- exair153x_wdt.feed()
sys.wait(30000) -- 每30秒打印一次状态
end
end
-- 模式210秒后手动执行强制复位
local function force_reset_mode()
log.info("wdt_demo", "模式2:强制复位模式启动")
-- 初始化看门狗
exair153x_wdt.init({ wdt_pin = wdt_pin })
log.info("wdt_demo", "看门狗已初始化")
log.info("wdt_demo", "等待10秒后触发强制复位...")
-- 等待10秒
sys.wait(10000)
-- 触发强制复位(3次快速脉冲触发芯片硬件复位)
log.info("wdt_demo", "触发强制复位!")
exair153x_wdt.trigger_reset()
-- 芯片检测到3次快速脉冲后会触发硬件复位
-- 以下代码不会执行(设备将复位)
sys.wait(5000)
log.info("wdt_demo", "如果看到这条日志,说明复位未成功")
end
-- 模式3:不配置看门狗,等待超时后自动复位
local function no_feed_mode()
log.info("wdt_demo", "模式3:无喂狗模式启动")
log.info("wdt_demo", "不初始化看门狗,等待看门狗超时自动复位")
log.info("wdt_demo", "超时时间取决于Air153C/Air153D芯片的硬件配置")
-- 不调用exair153x_wdt.init(),不喂狗
-- 看门狗芯片会在超时后触发复位
local count = 0
while true do
count = count + 1
log.info("wdt_demo", "运行中... 第" .. count .. "次循环(无喂狗)")
sys.wait(10000) -- 每10秒打印一次
end
end
-- 根据选择的模式执行对应函数
sys.taskInit(function()
log.info("wdt_demo", "Air153C/Air153D外部看门狗演示 v" .. exair153x_wdt.version())
log.info("wdt_demo", "当前模式: " .. DEMO_MODE)
if DEMO_MODE == "auto_feed" then
auto_feed_mode()
elseif DEMO_MODE == "force_reset" then
force_reset_mode()
elseif DEMO_MODE == "no_feed" then
no_feed_mode()
else
log.error("wdt_demo", "未知模式: " .. DEMO_MODE .. ",请选择 auto_feed、force_reset 或 no_feed")
end
end)
@@ -0,0 +1,71 @@
-- internal_wdt.lua
--[[
@summary 内部看门狗演示模块
@version 1.0
@date 2025.10.25
@author 陈媛媛
@usage
本模块演示内部看门狗的正常和异常场景:
1、正常场景:定期喂狗,系统正常运行
2、异常场景:模拟故障导致无法喂狗,触发看门狗复位
3、通过修改 DEMO_MODE 变量来选择演示模式:
- "normal": 正常喂狗模式
- "fault": 异常故障模式
注意:在异常模式下,设备会在运行一段时间后重启
]]
-- 演示模式选择: "normal" 或 "fault"
local DEMO_MODE = "normal" -- 修改这个变量来切换演示模式
-- 喂狗函数
function feed_watchdog()
wdt.feed()
log.info("wdt", "喂狗完成")
end
-- 故障模拟函数
function simulate_fault()
sys.wait(5000) -- 等待5秒,让系统先正常运行一会
-- 在进入死循环前尝试喂狗一次,并检查返回值
local success = wdt.feed()
log.info("wdt", "故障前最后一次喂狗,成功 =", success)
log.info("fault_task", "进入死循环模拟故障")
log.info("fault_task", "看门狗喂狗任务被阻塞,系统将在约20秒后重启")
while true do
-- 模拟故障场景,真的进入死循环
-- 这将导致无法喂狗,最终触发系统重启
end
end
-- 内部看门狗演示函数
function internal_wdt_demo()
-- 检查wdt库是否存在
if wdt == nil then
log.error("wdt", "wdt库不存在")
return
end
log.info("wdt", "硬件看门狗已由底层固件启用")
-- 检查开机原因
local reason1, reason2, reason3 = pm.lastReson()
log.info("reset_reason", "重启原因1:", reason1, "原因2:", reason2, "原因3:", reason3)
-- 定期喂狗,防止系统重启
-- 设置喂狗间隔为3秒,确保在20秒超时前完成喂狗
sys.timerLoopStart(feed_watchdog, 3000) -- 每3秒喂一次狗
end
if DEMO_MODE == "fault" then
-- 创建一个新的任务来模拟故障场景
sys.taskInit(simulate_fault)
end
-- 启动演示
sys.taskInit(internal_wdt_demo)
return internal_wdt_demo
@@ -0,0 +1,62 @@
--[[
@module main
@summary 看门狗(WDT)功能演示主入口
@version 1.0
@date 2025.10.25
@author 陈媛媛
@usage
本demo演示的核心功能为:
1、内部看门狗正常和异常场景演示
2、外部硬件看门狗Air153C/Air153D三种模式演示(自动喂狗/强制复位/超时复位)
更多说明参考本目录下的readme.md文件
]]
--[[
必须定义PROJECT和VERSION变量,Luatools工具会用到这两个变量,远程升级功能也会用到这两个变量
PROJECT:项目名,ascii string类型
可以随便定义,只要不使用,就行
VERSION:项目版本号,ascii string类型
如果使用合宙iot.openluat.com进行远程升级,必须按照"XXX.YYY.ZZZ"三段格式定义:
X、Y、Z各表示1位数字,三个X表示的数字可以相同,也可以不同,同理三个Y和三个Z表示的数字也是可以相同,可以不同
因为历史原因,YYY这三位数字必须存在,但是没有任何用处,可以一直写为999
如果不使用合宙iot.openluat.com进行远程升级,根据自己项目的需求,自定义格式即可
]]
PROJECT = "wdt_DEMO"
VERSION = "001.999.000"
-- 在日志中打印项目名和项目版本号
log.info("main", PROJECT, VERSION)
-- 如果内核固件支持errDump功能,此处进行配置,【强烈建议打开此处的注释】
-- 因为此功能模块可以记录并且上传脚本在运行过程中出现的语法错误或者其他自定义的错误信息,可以初步分析一些设备运行异常的问题
-- 以下代码是最基本的用法,更复杂的用法可以详细阅读API说明文档
-- 启动errDump日志存储并且上传功能,600秒上传一次
-- if errDump then
-- errDump.config(true, 600)
-- end
-- 使用LuatOS开发的任何一个项目,都强烈建议使用远程升级FOTA功能
-- 可以使用合宙的iot.openluat.com平台进行远程升级
-- 也可以使用客户自己搭建的平台进行远程升级
-- 远程升级的详细用法,可以参考fota的demo进行使用
-- 启动一个循环定时器
-- 每隔3秒钟打印一次总内存,实时的已使用内存,历史最高的已使用内存情况
-- 方便分析内存使用是否有异常
-- sys.timerLoopStart(function()
-- log.info("mem.lua", rtos.meminfo())
-- log.info("mem.sys", rtos.meminfo("sys"))
-- end, 3000)
-- 仅加载必要的功能模块
require "internal_wdt" -- 内部看门狗演示模块
-- require "air153x_wdt" -- 外部硬件看门狗演示模块
-- 用户代码已结束---------------------------------------------
sys.run()
-- sys.run()之后不要加任何语句!!!!!
@@ -0,0 +1,305 @@
# wdt_DEMO 项目说明
## 项目概述
本项目是基于 Air780EPM 开发板与 Air8781P1 工业模组,演示了两种看门狗(WDT)功能的使用。
- 内部看门狗 - 使用芯片内置的硬件看门狗
- 外部看门狗 - 使用 Air153C/Air153D 外置看门狗芯片
## 功能说明
### 内部看门狗演示
- 自动启用:硬件看门狗由底层固件自动启用,超时时间20秒
- 定期喂狗:每3秒执行一次喂狗操作,确保系统正常运行
- 故障模拟:可模拟系统死锁导致无法喂狗的场景
- 自动恢复:看门狗超时后自动重启系统
### 外部看门狗演示 (Air153C/Air153D)
Air153C/Air153D是合宙推出的SOT23-6封装看门狗芯片,用于保障系统稳定性。
- Air153C:超时时间固定约240秒(3.3V供电时实测283秒)
- Air153D:通过STRAP引脚可配置超时时间(10分钟/60分钟/12小时/24小时)
三种演示模式:
- auto_feed模式:配置看门狗,内部自动喂狗,系统持续运行
- force_reset模式:配置看门狗,10秒后手动触发强制复位(3次快速脉冲)
- no_feed模式:不配置看门狗,等待超时后自动复位模组
## 演示硬件环境
1、Air780EPM开发板
![alt text]( https://docs.openLuat.com/cdn/image/Air780EPM开发板.jpg)
2、Air8781 P1 工业模组(外挂 Air153C 看门狗芯片)
> Air8781 P系列模组资料请看:[Air8781P系列工业模组](https://docs.openluat.com/air8781p/luatos/hardware/module/)
![]( https://docs.openLuat.com/cdn/image/Air8781P/air8781p_v000.jpg)
3、TYPE-C USB数据线一根
- Air780EPM开发板通过 TYPE-C USB 口供电;
- TYPE-C USB 数据线直接插到核心板的 TYPE-C USB 座子,另外一端连接电脑 USB 口;
## 演示软件环境
1、Luatools下载调试工具 [https://docs.openluat.com/air780epm/common/Luatools/]
2、固件版本LuatOS-SoC_V2016_Air780EPM 版本固件。不同版本区别请见 https://docs.openluat.com/air780epm/luatos/firmware/780epm_version/
3、lib 脚本文件:使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件;
4、准备好软件环境之后,接下来查看[如何烧录项目文件到 Air780EPM开发板中](https://docs.openluat.com/air780epm/luatos/common/download/)将本篇文章中演示使用的项目文件烧录到相应的核心板中。
## 相关软件资料
wdt 核心库文档:https://docs.openluat.com/osapi/core/wdt/
exair153x_wdt 扩展库文档:https://docs.openluat.com/osapi/ext/exair153x_wdt/
Air153C/Air153D 芯片文档:https://docs.openluat.com/accessory/Air153D/
## 演示核心步骤
1、搭建好硬件环境
2、加载演示脚本文件:
- 在main.lua中有选择的选择以下两个lua文件中的一个
- require "internal_wdt" -- 内部看门狗演示模块
- require "air153x_wdt" -- 外部看门狗演示模块
- 在internal_wdt.lua演示脚本中,通过修改 DEMO_MODE 变量选择演示模式
- local DEMO_MODE = "normal" -- 正常喂狗模式
- local DEMO_MODE = "fault" -- 异常故障模式
- 在air153x_wdt.lua演示脚本中,通过修改 DEMO_MODE 变量选择演示模式
- local DEMO_MODE = "auto_feed" -- 自动喂狗模式
- local DEMO_MODE = "force_reset" -- 强制复位模式
- local DEMO_MODE = "no_feed" -- 超时复位模式
3、Luatools烧录内核固件和修改后的demo脚本代码
4、烧录成功后,自动开机运行
5、内部看门狗演示
- 正常模式演示
设置 DEMO_MODE = "normal"
烧录并运行脚本
程序运行后会显示以下典型日志:
```lua
I/user.wdt 硬件看门狗已由底层固件启用
I/user.wdt 喂狗完成
I/user.wdt 喂狗完成
```
- 故障模式演示
设置 DEMO_MODE = "fault"
烧录并运行脚本
程序运行后会显示以下典型日志:
```lua
[2025-11-04 15:31:38.907][000000000.263] I/user.main wdt_DEMO 001.000.000
[2025-11-04 15:31:38.913][000000000.271] I/user.wdt 硬件看门狗已由底层固件启用
[2025-11-04 15:31:41.459][000000003.272] I/user.wdt 喂狗完成
[2025-11-04 15:31:43.457][000000005.271] I/user.wdt 故障前最后一次喂狗,成功 = true
[2025-11-04 15:31:43.464][000000005.272] I/user.fault_task 进入死循环模拟故障
[2025-11-04 15:31:43.472][000000005.272] I/user.fault_task 看门狗喂狗任务被阻塞,系统将在约20秒后重启
[2025-11-04 15:32:08.710] 工具提示: 模组已经死机,请不要关闭程序,正在接收必要的信息用于分析
[2025-11-04 15:32:32.943] 工具提示: diag com USB 断开连接 COM4 CommError,[WinError 22] 设备不识别此命令。
[2025-11-04 15:32:32.985] 工具提示: 死机信息接收成功,如有需要请将死机信息文件交给FAE分析,文件保存在log\ramdump\2025-11-04_153209_LuatOS-SoC_V2016_Air780EGH_867920073503634_COM4_ramdump.bin
[2025-11-04 15:32:33.006] 工具提示: 同时把使用的soc固件包或者编译生成的.elf文件交给FAE
[2025-11-04 15:32:33.022] 工具提示: print com USB 断开连接 COM3 CommError,[WinError 22] 设备不识别此命令。
[2025-11-04 15:32:33.664] 工具提示: soc log port COM3打开成功
[2025-11-04 15:32:33.738] 工具提示: ap log port COM4打开成功
[2025-11-04 15:32:33.751] 工具提示: 用户虚拟串口 COM5
[2025-11-04 15:32:34.049][000000000.272] I/user.wdt 硬件看门狗已由底层固件启用
[2025-11-04 15:32:34.054][000000000.272] I/user.reset_reason 重启原因1: 0 原因2: 0 原因3: 8
```
6、关于重启时间的说明:
实际重启时间不是精确的20秒,主要原因包括:
硬件处理时间:从看门狗超时到实际硬件复位需要一定的处理时间
系统状态保存:在复位前系统需要保存必要的状态信息和日志便于分析
7、关于重启原因值的验证:
根据[pm.lastReson()函数的返回值说明](https://docs.openluat.com/osapi/core/pm/#45-pmlastreson)确认重启的原因3: 8 是内部看门狗触发的重启。
8、外部看门狗演示
- auto_feed模式演示
设置 DEMO_MODE = "auto_feed"
烧录并运行脚本
程序运行后会显示以下典型日志:
```
[2026-08-21 15:52:13.160][000000000.319] I/user.main wdt_DEMO 001.999.000
[2026-08-21 15:52:13.161][000000000.332] D/user.exair153x_wdt version -> 202608030000
[2026-08-21 15:52:13.162][000000000.334] I/user.wdt_demo Air153C/Air153D外部看门狗演示 v202608030000
[2026-08-21 15:52:13.163][000000000.334] I/user.wdt_demo 当前模式: auto_feed
[2026-08-21 15:52:13.164][000000000.334] I/user.wdt_demo 模式1:自动喂狗模式启动
[2026-08-21 15:52:13.164][000000000.334] I/user.exair153x_wdt GPIO24 初始化为空闲态 1
[2026-08-21 15:52:13.165][000000000.335] I/user.exair153x_wdt 首次喂狗
[2026-08-21 15:52:13.166][000000000.335] I/user.exair153x_wdt 初始化成功: GPIO24, 脉冲=250ms, 周期=180s
[2026-08-21 15:52:13.167][000000000.336] I/user.wdt_demo 看门狗已初始化,自动喂狗任务已启动
[2026-08-21 15:52:13.167][000000000.336] I/user.wdt_demo 系统将自动维持看门狗,设备持续运行
[2026-08-21 15:52:13.168][000000000.336] I/user.wdt_demo 业务逻辑运行中... 第1次循环
[2026-08-21 15:52:42.820][000000030.336] I/user.wdt_demo 业务逻辑运行中... 第2次循环
[2026-08-21 15:53:12.823][000000060.336] I/user.wdt_demo 业务逻辑运行中... 第3次循环
[2026-08-21 15:53:42.829][000000090.336] I/user.wdt_demo 业务逻辑运行中... 第4次循环
[2026-08-21 15:54:12.823][000000120.336] I/user.wdt_demo 业务逻辑运行中... 第5次循环
[2026-08-21 15:54:42.820][000000150.336] I/user.wdt_demo 业务逻辑运行中... 第6次循环
[2026-08-21 15:55:12.828][000000180.336] I/user.wdt_demo 业务逻辑运行中... 第7次循环
[2026-08-21 15:55:13.315][000000180.835] D/user.exair153x_wdt 喂狗完成
[2026-08-21 15:55:42.826][000000210.336] I/user.wdt_demo 业务逻辑运行中... 第8次循环
[2026-08-21 15:56:12.819][000000240.336] I/user.wdt_demo 业务逻辑运行中... 第9次循环
```
- force_reset模式演示
设置 DEMO_MODE = "force_reset" 烧录并运行脚本
程序运行后会显示以下典型日志:
```
[2026-08-21 15:58:59.551][000000000.316] I/user.main wdt_DEMO 001.999.000
[2026-08-21 15:58:59.560][000000000.329] D/user.exair153x_wdt version -> 202608030000
[2026-08-21 15:58:59.569][000000000.330] I/user.wdt_demo Air153C/Air153D外部看门狗演示 v202608030000
[2026-08-21 15:58:59.577][000000000.331] I/user.wdt_demo 当前模式: force_reset
[2026-08-21 15:58:59.584][000000000.331] I/user.wdt_demo 模式2:强制复位模式启动
[2026-08-21 15:58:59.592][000000000.331] I/user.exair153x_wdt GPIO24 初始化为空闲态 1
[2026-08-21 15:58:59.600][000000000.332] I/user.exair153x_wdt 首次喂狗
[2026-08-21 15:58:59.608][000000000.332] I/user.exair153x_wdt 初始化成功: GPIO24, 脉冲=250ms, 周期=180s
[2026-08-21 15:58:59.618][000000000.332] I/user.wdt_demo 看门狗已初始化
[2026-08-21 15:58:59.626][000000000.332] I/user.wdt_demo 等待10秒后触发强制复位...
[2026-08-21 15:59:08.911][000000010.333] I/user.wdt_demo 触发强制复位!
[2026-08-21 15:59:08.914][000000010.334] W/user.exair153x_wdt 开始 3 次快速脉冲,触发芯片强制硬件复位
[2026-08-21 15:59:09.697] 工具提示: diag com USB 断开连接 COM6 CommError,[WinError 22] 设备不识别此命令。
[2026-08-21 15:59:10.980] 工具提示: soc log port COM4打开成功
[2026-08-21 15:59:11.075] 工具提示: ap log port COM6打开成功
[2026-08-21 15:59:11.078] 工具提示: 用户虚拟串口 COM5
[2026-08-21 15:59:12.022][000000000.000] main_entry 708:SDK base line V017_p001.026
[2026-08-21 15:59:12.026][000000000.007] am_service_init 1374:Air780EPM_A11
[2026-08-21 15:59:12.032][000000000.007] am_get_chip_type 870:6bef6,8,4,11,8,EC718PM
[2026-08-21 15:59:12.036][000000000.007] am_service_init 1382:APB MP 102400000
[2026-08-21 15:59:12.044][000000000.048] bsp_user_init_io 400:io volt 3.3v
[2026-08-21 15:59:12.074][000000000.049] BSP_CustomInit 558:hardfault mode init 4
[2026-08-21 15:59:12.088][000000000.049] Uart_ChangeBR 1461:uart0, 6000000 6028985 26000000 69
[2026-08-21 15:59:12.101][000000000.070] I/pm poweron: Power/Reset
[2026-08-21 15:59:12.110][000000000.070] luat_pm_get_poweron_reason 332:ap 2, cp 2
[2026-08-21 15:59:12.114][000000000.070] I/pm poweron reason: 0 0 5
[2026-08-21 15:59:12.121][000000000.186] self_info 125:model Air780EPM_A11 imei 864317085627837 dbversion 0x74e6478d
[2026-08-21 15:59:12.128][000000000.186] self_info 127:firmware[1] BASIC fs 168kbyte script 256kbyte
[2026-08-21 15:59:12.135][000000000.186] I/main LuatOS@Air780EPM base 26.04 bsp V2048 64bit
[2026-08-21 15:59:12.144][000000000.186] I/main ROM Build: Aug 3 2026 20:26:39
[2026-08-21 15:59:12.151][000000000.188] W/pins /luadb/pins_air780epm.json not exist!!
[2026-08-21 15:59:12.156][000000000.190] D/main loadlibs luavm 1048568 15712 16776
[2026-08-21 15:59:12.167][000000000.191] D/main loadlibs sys 2369808 82836 89356
[2026-08-21 15:59:12.176][000000000.191] D/main loadlibs psram 2369808 82836 89356
[2026-08-21 15:59:12.184][000000000.208] I/user.main wdt_DEMO 001.999.000
[2026-08-21 15:59:12.191][000000000.220] D/user.exair153x_wdt version -> 202608030000
[2026-08-21 15:59:12.199][000000000.221] I/user.wdt_demo Air153C/Air153D外部看门狗演示 v202608030000
[2026-08-21 15:59:12.218][000000000.222] I/user.wdt_demo 当前模式: force_reset
[2026-08-21 15:59:12.235][000000000.222] I/user.wdt_demo 模式2:强制复位模式启动
[2026-08-21 15:59:12.245][000000000.222] I/user.exair153x_wdt GPIO24 初始化为空闲态 1
[2026-08-21 15:59:12.256][000000000.223] I/user.exair153x_wdt 首次喂狗
[2026-08-21 15:59:12.265][000000000.223] I/user.exair153x_wdt 初始化成功: GPIO24, 脉冲=250ms, 周期=180s
[2026-08-21 15:59:12.283][000000000.223] I/user.wdt_demo 看门狗已初始化
[2026-08-21 15:59:12.294][000000000.224] I/user.wdt_demo 等待10秒后触发强制复位...
```
- no_feed模式演示
设置 DEMO_MODE = "no_feed" 烧录并运行脚本
程序运行后会显示以下典型日志:
```
[2026-08-21 16:08:35.041][000000000.209] I/user.main wdt_DEMO 001.999.000
[2026-08-21 16:08:35.046][000000000.222] D/user.exair153x_wdt version -> 202608030000
[2026-08-21 16:08:35.052][000000000.223] I/user.wdt_demo Air153C/Air153D外部看门狗演示 v202608030000
[2026-08-21 16:08:35.059][000000000.223] I/user.wdt_demo 当前模式: no_feed
[2026-08-21 16:08:35.064][000000000.223] I/user.wdt_demo 模式3:无喂狗模式启动
[2026-08-21 16:08:35.071][000000000.224] I/user.wdt_demo 不初始化看门狗,等待看门狗超时自动复位
[2026-08-21 16:08:35.080][000000000.224] I/user.wdt_demo 超时时间取决于Air153C/Air153D芯片的硬件配置
[2026-08-21 16:08:35.087][000000000.224] I/user.wdt_demo 运行中... 第1次循环(无喂狗)
[2026-08-21 16:08:43.635][000000010.225] I/user.wdt_demo 运行中... 第2次循环(无喂狗)
[2026-08-21 16:08:53.634][000000020.226] I/user.wdt_demo 运行中... 第3次循环(无喂狗)
[2026-08-21 16:09:03.627][000000030.226] I/user.wdt_demo 运行中... 第4次循环(无喂狗)
[2026-08-21 16:09:13.629][000000040.226] I/user.wdt_demo 运行中... 第5次循环(无喂狗)
[2026-08-21 16:09:23.628][000000050.226] I/user.wdt_demo 运行中... 第6次循环(无喂狗)
[2026-08-21 16:09:33.630][000000060.226] I/user.wdt_demo 运行中... 第7次循环(无喂狗)
[2026-08-21 16:09:43.626][000000070.226] I/user.wdt_demo 运行中... 第8次循环(无喂狗)
[2026-08-21 16:09:53.633][000000080.226] I/user.wdt_demo 运行中... 第9次循环(无喂狗)
[2026-08-21 16:10:03.632][000000090.226] I/user.wdt_demo 运行中... 第10次循环(无喂狗)
[2026-08-21 16:10:13.638][000000100.226] I/user.wdt_demo 运行中... 第11次循环(无喂狗)
[2026-08-21 16:10:23.628][000000110.226] I/user.wdt_demo 运行中... 第12次循环(无喂狗)
[2026-08-21 16:10:33.629][000000120.226] I/user.wdt_demo 运行中... 第13次循环(无喂狗)
[2026-08-21 16:10:43.630][000000130.226] I/user.wdt_demo 运行中... 第14次循环(无喂狗)
[2026-08-21 16:10:53.633][000000140.226] I/user.wdt_demo 运行中... 第15次循环(无喂狗)
[2026-08-21 16:11:03.631][000000150.226] I/user.wdt_demo 运行中... 第16次循环(无喂狗)
[2026-08-21 16:11:13.627][000000160.226] I/user.wdt_demo 运行中... 第17次循环(无喂狗)
[2026-08-21 16:11:23.630][000000170.226] I/user.wdt_demo 运行中... 第18次循环(无喂狗)
[2026-08-21 16:11:33.633][000000180.226] I/user.wdt_demo 运行中... 第19次循环(无喂狗)
[2026-08-21 16:11:43.637][000000190.226] I/user.wdt_demo 运行中... 第20次循环(无喂狗)
[2026-08-21 16:11:53.635][000000200.226] I/user.wdt_demo 运行中... 第21次循环(无喂狗)
[2026-08-21 16:12:03.634][000000210.226] I/user.wdt_demo 运行中... 第22次循环(无喂狗)
[2026-08-21 16:12:10.737] 工具提示: print com USB 断开连接 COM4 CommError,[WinError 22] 设备不识别此命令。
[2026-08-21 16:12:11.988] 工具提示: soc log port COM4打开成功
[2026-08-21 16:12:12.087] 工具提示: ap log port COM6打开成功
[2026-08-21 16:12:12.099] 工具提示: 用户虚拟串口 COM5
[2026-08-21 16:12:13.039][000000000.000] main_entry 708:SDK base line V017_p001.026
[2026-08-21 16:12:13.054][000000000.007] am_service_init 1374:Air780EPM_A11
[2026-08-21 16:12:13.069][000000000.007] am_get_chip_type 870:6bef6,8,4,11,8,EC718PM
[2026-08-21 16:12:13.080][000000000.007] am_service_init 1382:APB MP 102400000
[2026-08-21 16:12:13.088][000000000.048] bsp_user_init_io 400:io volt 3.3v
[2026-08-21 16:12:13.097][000000000.049] BSP_CustomInit 558:hardfault mode init 4
[2026-08-21 16:12:13.101][000000000.049] Uart_ChangeBR 1461:uart0, 6000000 6028985 26000000 69
[2026-08-21 16:12:13.106][000000000.070] I/pm poweron: Power/Reset
[2026-08-21 16:12:13.111][000000000.070] luat_pm_get_poweron_reason 332:ap 2, cp 2
[2026-08-21 16:12:13.114][000000000.070] I/pm poweron reason: 0 0 5
[2026-08-21 16:12:13.117][000000000.186] self_info 125:model Air780EPM_A11 imei 864317085627837 dbversion 0x74e6478d
[2026-08-21 16:12:13.119][000000000.186] self_info 127:firmware[1] BASIC fs 168kbyte script 256kbyte
[2026-08-21 16:12:13.122][000000000.186] I/main LuatOS@Air780EPM base 26.04 bsp V2048 64bit
[2026-08-21 16:12:13.124][000000000.186] I/main ROM Build: Aug 3 2026 20:26:39
[2026-08-21 16:12:13.126][000000000.188] W/pins /luadb/pins_air780epm.json not exist!!
[2026-08-21 16:12:13.128][000000000.190] D/main loadlibs luavm 1048568 15712 16776
[2026-08-21 16:12:13.131][000000000.190] D/main loadlibs sys 2369808 82836 89356
[2026-08-21 16:12:13.134][000000000.191] D/main loadlibs psram 2369808 82836 89356
[2026-08-21 16:12:13.139][000000000.208] I/user.main wdt_DEMO 001.999.000
[2026-08-21 16:12:13.142][000000000.220] D/user.exair153x_wdt version -> 202608030000
[2026-08-21 16:12:13.145][000000000.221] I/user.wdt_demo Air153C/Air153D外部看门狗演示 v202608030000
[2026-08-21 16:12:13.148][000000000.222] I/user.wdt_demo 当前模式: no_feed
[2026-08-21 16:12:13.152][000000000.222] I/user.wdt_demo 模式3:无喂狗模式启动
[2026-08-21 16:12:13.156][000000000.222] I/user.wdt_demo 不初始化看门狗,等待看门狗超时自动复位
[2026-08-21 16:12:13.160][000000000.222] I/user.wdt_demo 超时时间取决于Air153C/Air153D芯片的硬件配置
[2026-08-21 16:12:13.163][000000000.222] I/user.wdt_demo 运行中... 第1次循环(无喂狗)
```