|
本帖最后由 wwwwwbbbbb 于 2023-2-15 15:10 编辑
项目开发时需要读取芯片UID,读取时遇到一些问题。
读取方式参考论坛帖子:【新提醒】FM33A0/G0/L0/LC0/A0EV/LG0 系列单片机唯一码 UID 存放地址 - FM33A0xx讨论区 - 低功耗嵌入式软件开发者论坛 - Powered by Discuz! (fmdevelopers.com.cn)
读取到的结果为全0。
INFO: APP Version: V0.1.0.230202.
INFO: Compile Time: Feb 15 2023 14:42:03.
DEBUG: uid - (16 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
相关的代码如下:
#define DEV_UID_LEN 16
#define LE0_UID_LEN DEV_UID_LEN
#define LE0_UID_ADDR ( ( ( uint8_t* ) ( 0x1FFFFA10 ) ) )
/**
* @brief 获取芯片UID
*/
void get_dev_uid( uint8_t* uid )
{
memcpy( uid, LE0_UID_ADDR, LE0_UID_LEN );
HL_TRACE_ARRAY( "DEBUG: uid", uid, LE0_UID_LEN );
}
麻烦官方的同事帮忙排查下问题,谢啦。
另外对于手册上UID的相关描述也有存在疑惑的地方。
说明书版本为V1.7最新版
具体问题如下:
1. 手册中描述UID为128bits,但访问地址范围只有12字节(96bits)。两者矛盾。
36.2 器件 UID
FM33LE0系列每颗MCU的器件UID都是全球唯一的,由原厂写入,出厂后不可改写。
UID共128 bits,保存在Flash特殊扇区,软件运行时可以读取此UID,用于实现代码保护或安全启动
类应用。
UID访问地址是0x1FFFFA10~0x1FFFFA1B
2. 麻烦确认说明书版本是否正确。
说明书版本为V1.7,但版本列表中的版本号为1.8
|
|