外观
CPUID 读取示例
2026-05-18
概述
本文介绍如何在 睿擎工业开发平台 中创建并运行 CPUID 读取示例工程,通过 cpuinfo 设备驱动接口读取芯片唯一识别码,帮助读者快速掌握 RT-Thread 设备驱动框架的基本使用方法。
CPUID 简介
CPUID(Chip Unique Identifier)是芯片出厂时固化的唯一识别码,类似于芯片的"身份证"。通常存储在芯片内部的非易失性存储区(如 OTP 或内部寄存器)中,可用于设备标识、加密认证、防复制等场景。
构建与烧录
创建工程点击展开
依次点击 “文件” -> “新建” -> "RT-Thread RuiChing App 项目"。

在弹出新建向导中选择 开发版 、BSP: 、示例 、 调试器/下载器。选择好之后点击 “完成”。

点击 “完成” 后,等待工程创建完成。

创建完成。

构建工程点击展开
单击工程使工程进入 Active-Debug 模式。

点击工具栏上的构建按钮进行工程编译。

构建成功后,会显示构建成功的信息。

固件下载点击展开
固化驱动

固化 APP

核心示例代码
CPUID 示例相关代码说明
rt_device_find:通过设备名称 cpuinfo 查找到对应的设备句柄rt_device_open:以只读模式(RT_DEVICE_OFLAG_RDONLY)打开设备rt_device_read:从设备中读取指定长度(本例为 16 字节)的原始 ID 数据
cpuid_read.c
int cpuid_read_example(void)
{
rt_device_t dev = RT_NULL;
rt_uint8_t cpuid[16] = {0};
rt_size_t len = 0;
int i = 0;
dev = rt_device_find(CPUID_DEVICE_NAME);
if (dev == RT_NULL)
{
rt_kprintf("CPUINFO device not found");
rt_kprintf("\n");
return -RT_ERROR;
}
if (rt_device_open(dev, RT_DEVICE_OFLAG_RDONLY) != RT_EOK)
{
rt_kprintf("Failed to open CPUINFO device");
rt_kprintf("\n");
return -RT_ERROR;
}
len = rt_device_read(dev, 0, &cpuid, sizeof(cpuid));
if (len != sizeof(cpuid))
{
rt_kprintf("Failed to read CPUINFO data");
rt_kprintf("\n");
return -RT_ERROR;
}
rt_kprintf("CPUID read success!");
rt_kprintf("\n");
rt_kprintf("CPUID: ");
rt_kprintf("\n");
for (i = 0; i < sizeof(cpuid); i++)
{
rt_kprintf("%02X", cpuid[i]);
}
rt_kprintf("\n");
return RT_EOK;
}运行示例
操作步骤
- 将程序下载到开发板
- 打开串口终端连接开发板
- 系统在启动后
main函数会自动调用其内容函数 - 也可在终端输入
cpuid_read_example命令
预期结果
验证结果如下(具体数值因芯片而异):
- 终端输出 CPUID 读取成功日志
- 以十六进制格式显示芯片唯一序列号
RT-Thread 终端
Hello, RuiChing
CPUID read success!
CPUID: 413350545A0000000000000000111901
msh />cpuid_read_example
CPUID read success!
CPUID: 413350545A0000000000000000111901