模块信息(hmeta)
一、模块信息概述
模块信息是合宙每一个模块携带的信息,就像人的身份证一样,这些信息确定了模块的唯一性;
包含设备唯一 id,硬件型号,模组的硬件版本号,固件版本号等;
模块远程升级需要上传模块信息,解决和分析某些问题的时候可能也会需要确认模块信息.
二、演示功能概述
使用 Air8000 核心板烧录底层固件(LuatOS-SoC_V2003_Air8000)和 hmeta 例程脚本学习有关模块信息的 api 函数.
三、准备硬件环境
参考:硬件环境清单第二章节内容,准备以及组装好硬件环境。
四、软件环境
“凡事预则立,不预则废。”在详细阐述本功能示例之前,我们需先精心筹备好以下软件环境。
1. Luatools工具;
2. 内核固件文件(底层core固件文件):LuatOS-SoC_V2003_Air8000;参考项目使用的内核固件;
3. luatos需要的脚本和资源文件
脚本和资源文件点击此处查看与下载
lib脚本文件:使用Luatools烧录时,勾选 添加默认lib 选项,使用默认lib脚本文件;
准备好软件环境之后,接下来查看如何烧录项目文件到Air8000核心板,将本篇文章中演示使用的项目文件烧录到Air8000核心板中。
五、API 说明
本教程使用 api 接口为:
六、功能验证
6.1 例程
参考一下例程部分代码,点此链接查看 hmeta 的 demo 例子
sys.taskInit(function()
while hmeta do
-- hmeta识别底层模组类型的
-- 不同的模组可以使用相同的bsp,但根据封装的不同,根据内部数据仍可识别出具体模块
log.info("hmeta", hmeta.model(), hmeta.hwver and hmeta.hwver())
log.info("bsp", rtos.bsp())
local unique_id = mcu.unique_id()
log.info("unique_id", unique_id:toHex())
-- 实例输出:unique_id 3539333139071F1E4330 20
log.info("luatos_version ", rtos.version())
-- 实例输出:luatos_version V2003
sys.wait(3000)
end
log.info("这个bsp不支持hmeta库哦")
end)
6.2 对应 log
[2024-10-15 15:58:13.607][000000000.315] I/user.hmeta Air8000 A17
[2024-10-15 15:58:13.608][000000000.315] I/user.bsp EC718
[2024-10-15 15:58:13.608][000000000.316] I/user.unique_id 3539333139071F1E4330 20
[2024-10-15 15:58:13.609][000000000.316] I/user.luatos_version V2003
[2024-10-15 15:58:15.304][000000002.142] soc_cms_proc 1518:NAS Event 6 Reject 7 CellID 3c
七、总结
通过本章学习,你可以学习到模块唯一 ID,模块硬件型号,固件版本,硬件版本的获取方法.
八、常见问题
8.1 模块唯一 ID 文档
mobile.sn()获取 SN,出厂未必有写 SN; 一般用途的唯一 id, 可以用 mobile.imei()代替; 如需要真正的唯一 ID, 使用 mcu.unique_id()