同一块板子使用WM IoT SDK2.X和W80X_SDK_v1.00.10读取flash uid存在差异

发布于 2025-11-17 14:40:44

测试flash unique_id时发现,同一块板子分别使用两版sdk获取到的 id完全不同
W80X_SDK_v1.00.10使用如下代码

void UserMain(void *arg)
{
    u8 unique_id[18];
    tls_fls_read_unique_id(unique_id);

    for (int i = 0; i < 18; i++)
        printf("%02x ", unique_id[i]);
}

获得如下结果:
97a92312948211c7cd7724e2d848f787.png

WM IoT SDK2.X使用如下代码(来源[https://doc.winnermicro.net/w800/zh_CN/latest/component_guides/driver/drv_flash.html#get-info] 获取flash信息部分例程):

int printf_flash_info()
{
    wm_drv_flash_info_t info = { 0 };
    int ret                  = WM_ERR_SUCCESS;
    wm_device_t *flash_dev   = NULL;

    flash_dev = wm_dt_get_device_by_name("iflash");
    if (!flash_dev) {
        printf("get iflash device fail\n");
        return -1;
    }

    if (flash_dev->state != WM_DEV_ST_INITED) {
        flash_dev = wm_drv_flash_init("iflash");
        if (!flash_dev) {
            printf("init fail\n");
            return -1;
        }
    }

    ret = wm_drv_flash_get_device_info(flash_dev, &info);
    if (ret == WM_ERR_SUCCESS) {
        printf("flash info as below\n");
        printf("flash_size: %dMB\n", info.flash_size / (1024 * 1024));
        printf("page_size: %d byte\n", info.page_size);
        printf("sector_size: %d byte\n", info.sector_size);
        printf("vendor_id: 0x%x\n", info.vendor_id);
        printf("unique_id:%x%x%x%x\n", info.unique_id[0], info.unique_id[1], info.unique_id[2], info.unique_id[3]);
    } else {
        printf("get flash info fail\n");
    }

    return 0;
}

获得如下结果495f6a4af534e940d0adfb313dc26cd6.png

如图所示,完全不同。
两个版本的sdk读取的不是一个id吗?

查看更多

关注者
0
被浏览
22
0 个回答
暂无答案,快来添加答案吧

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览