STM32全球唯一ID读取方法
2016-05-03 22:10
281 查看
产品唯一的身份标识非常适合:
● 用来作为序列号(例如USB字符序列号或者其他的终端应用)
● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
● 用来激活带安全机制的自举过程
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
基地址:0x1FFF F7E8
每个CPU 出厂的时候都
配置的一个ID,96 位的.这个唯一码可以利用作软件加密.......
static u32 CpuID[3];
static u32 Lock_Code;
void GetLockCode(void)
{
//获取CPU唯一ID
CpuID[0]=*(vu32*)(0x1ffff7e8);
CpuID[1]=*(vu32*)(0x1ffff7ec);
CpuID[2]=*(vu32*)(0x1ffff7f0);
//加密算法,很简单的加密算法
Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}
● 用来作为序列号(例如USB字符序列号或者其他的终端应用)
● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
● 用来激活带安全机制的自举过程
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
基地址:0x1FFF F7E8
每个CPU 出厂的时候都
配置的一个ID,96 位的.这个唯一码可以利用作软件加密.......
static u32 CpuID[3];
static u32 Lock_Code;
void GetLockCode(void)
{
//获取CPU唯一ID
CpuID[0]=*(vu32*)(0x1ffff7e8);
CpuID[1]=*(vu32*)(0x1ffff7ec);
CpuID[2]=*(vu32*)(0x1ffff7f0);
//加密算法,很简单的加密算法
Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}
相关文章推荐
- Centos安装配置Mysql,以及防火墙的设置
- Android广播机制总结
- Lua从入门到放弃--程序接口
- Xcode Build Search Paths设置
- KMP算法模板及问题解决(HDU 1711)(hihocoder 1015 KMP)(HDU 1686)(POJ3461)(HDU1358)
- jquery中动画特效方法
- 时间戳转换
- 【HUSTOJ】1026: 判断素数
- RGB vs YCbCr(YUV)
- 数组和链表的区别
- Java Web 错误/异常处理页面
- iOS编译FFmpeg、kxmovie实现视频播放
- 80. Remove Duplicates from Sorted Array II
- 子数组和最接近零问题
- 移植u-boot到mini2440--用openjtag加载
- Ubuntu下使用genymotion
- C++基础实例-文件Io等(5)
- linux基本命令(12)——more命令
- awk 随机数函数
- Centos下重要日志文件及查看方式