同一块板子使用 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
被浏览
24
0 个回答
暂无答案, 快来添加答案吧

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览