測試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]);
}
獲得如下結果:
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;
}
獲得如下結果
如圖所示,完全不同。
兩個版本的sdk讀取的不是一個id嗎?