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,106 @@
## **功能模块介绍**
本项目是LuatOS os核心库的完整功能演示,严格按照官方API文档实现,展示了OS库中所有标准接口的使用方法。通过本演示项目,开发者可以快速掌握LuatOS中os核心库功能的使用。
1、main.lua:主程序入口 <br>
2、os_core_demo.luaos核心库API演示模块,严格按照官方文档实现os.date、os.time、os.difftime、os.remove、os.rename五个标准接口的顺序演示功能。<br>
## **演示功能概述**
### 1、主程序入口模块(main.lua
- 初始化项目信息和版本号
- 初始化看门狗,并定时喂狗
- 启动一个循环定时器,每隔3秒钟打印一次总内存,实时的已使用内存,历史最高的已使用内存情况方便分析内存使用是否有异常
- 加载os_core_demo模块(通过require "os_core_demo"
- 最后运行sys.run()。
### 2、os核心库API演示模块(os_core_demo.lua
#### 时间日期处理
- **os.date()** - 格式化时间日期,支持strftime格式规范
- **os.time()** - 获取Unix时间戳,支持自定义时间表
- **os.difftime()** - 计算两个时间戳的差值
#### 文件操作功能
- **os.remove()** - 删除指定路径的文件
- **os.rename()** - 重命名文件或移动文件
## **演示硬件环境**
1、Air780EPM核心板一块
2、TYPE-C USB数据线一根
3、SIM卡一张
4、Air780EPM核心板和数据线的硬件接线方式为
- Air780EPM核心板通过TYPE-C USB口供电;(核心板USB旁边的开关拨到on一端)
- TYPE-C USB数据线直接插到核心板的TYPE-C USB座子,另外一端连接电脑USB口;
## **演示软件环境**
1、Luatools下载调试工具:https://docs.openluat.com/air780epm/common/Luatools/
2、内核固件版本:https://docs.openluat.com/air780epm/luatos/firmware/version/
## **演示核心步骤**
1、搭建好硬件环境
2、通过Luatools将demo与固件烧录到开发板中
3、烧录好后,板子开机将会在Luatools上看到如下打印
```lua
[2025-10-23 16:47:38.274][00000000.043] I/user.os_core ===== os核心库API演示 =====
[2025-10-23 16:47:38.274][00000000.043] I/user.os.date ===== os.date接口演示 =====
[2025-10-23 16:47:38.274][00000000.043] I/user.os.date : Thu Oct 23 16:47:38 2025
[2025-10-23 16:47:38.274][00000000.044] I/user.os.date : 2025-10-23 16:47:38
[2025-10-23 16:47:38.274][00000000.044] I/user.os.date UTC时间: 2025-10-23 08:47:38
[2025-10-23 16:47:38.275][00000000.044] I/user.os.date table: year=2025, month=10, day=23
[2025-10-23 16:47:38.275][00000000.044] I/user.os.date UTC时间table: year=2025, month=10, day=23
[2025-10-23 16:47:38.275][00000000.044] I/user.os.date : 20241225 10:30:00
[2025-10-23 16:47:38.275][00000000.044] I/user.os.date ===== os.date接口演示完成 =====
[2025-10-23 16:47:38.275][00000000.044] I/user.os.time ===== os.time接口演示 =====
[2025-10-23 16:47:38.275][00000000.044] I/user.os.time : 1761209258
[2025-10-23 16:47:38.275][00000000.044] I/user.os.time : 1735093800
[2025-10-23 16:47:38.275][00000000.045] I/user.os.time : year=2025, month=10, day=23
[2025-10-23 16:47:38.276][00000000.045] I/user.os.time ===== os.time接口演示完成 =====
[2025-10-23 16:47:38.276][00000000.045] I/user.os.difftime ===== os.difftime接口演示 =====
[2025-10-23 16:47:38.276][00000000.045] I/user.os.difftime A (2024-01-01): 1704038400
[2025-10-23 16:47:38.276][00000000.045] I/user.os.difftime B (2025-01-01): 1735660800
[2025-10-23 16:47:38.276][00000000.045] I/user.os.difftime (B-A): 3.162240e+07
[2025-10-23 16:47:38.276][00000000.045] I/user.os.difftime (B-A): 366.000
[2025-10-23 16:47:38.276][00000000.045] I/user.os.difftime (A-B): -3.162240e+07
[2025-10-23 16:47:38.276][00000000.045] I/user.os.difftime ===== os.difftime接口演示完成 =====
[2025-10-23 16:47:38.276][00000000.045] I/user.os.remove ===== os.remove接口演示 =====
[2025-10-23 16:47:38.276][00000000.046] D/fs fopen os_test_delete.txt wb
[2025-10-23 16:47:38.278][00000000.047] I/user.os.remove : /os_test_delete.txt
[2025-10-23 16:47:38.278][00000000.047] D/fs fopen os_test_delete.txt rb
[2025-10-23 16:47:38.279][00000000.048] I/user.os.remove
[2025-10-23 16:47:38.281][00000000.051] I/user.os.remove
[2025-10-23 16:47:38.281][00000000.051] D/fs fopen os_test_delete.txt rb
[2025-10-23 16:47:38.282][00000000.051] D/vfs fopen /os_test_delete.txt r not found
[2025-10-23 16:47:38.282][00000000.051] I/user.os.remove
[2025-10-23 16:47:38.282][00000000.051] I/user.os.remove ===== os.remove接口演示完成 =====
[2025-10-23 16:47:38.282][00000000.052] I/user.os.rename ===== os.rename接口演示 =====
[2025-10-23 16:47:38.282][00000000.052] D/fs fopen os_test_old.txt wb
[2025-10-23 16:47:38.284][00000000.054] I/user.os.rename : /os_test_old.txt
[2025-10-23 16:47:38.285][00000000.054] D/fs fopen os_test_old.txt rb
[2025-10-23 16:47:38.285][00000000.054] I/user.os.rename
[2025-10-23 16:47:38.285][00000000.054] D/fs fopen os_test_new.txt rb
[2025-10-23 16:47:38.286][00000000.055] D/vfs fopen /os_test_new.txt r not found
[2025-10-23 16:47:38.289][00000000.058] I/user.os.rename : /os_test_old.txt -> /os_test_new.txt
[2025-10-23 16:47:38.289][00000000.058] D/fs fopen os_test_old.txt rb
[2025-10-23 16:47:38.289][00000000.059] D/vfs fopen /os_test_old.txt r not found
[2025-10-23 16:47:38.290][00000000.059] I/user.os.rename
[2025-10-23 16:47:38.290][00000000.059] D/fs fopen os_test_new.txt rb
[2025-10-23 16:47:38.290][00000000.060] I/user.os.rename : /os_test_new.txt
[2025-10-23 16:47:38.294][00000000.063] I/user.os.rename
[2025-10-23 16:47:38.294][00000000.064] I/user.os.rename ===== os.rename接口演示完成 =====
[2025-10-23 16:47:38.295][00000000.064] I/user.os_core ===== os核心库API演示全部完成 =====
```