stm32_018_stm32自身唯一ID读取
来源:互联网 发布:linux读取文件指定行 编辑:程序博客网 时间:2024/05/17 00:53
转载自:http://blog.csdn.net/yuan1125/article/details/7653767
产品唯一的身份标识非常适合:
● 用来作为序列号(例如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);
}
然后再用上次所用的 FLASH_ProgramWord(LOCK_ADDR,Lock_Code); 写到FLASH 的某个角落就好了,然后再在程序中验证这个值是否正确。感觉ID的调取很是方便倒是加密算法让人头痛,当然了要是把MD5移植过来应该不是太难。现在市场中这么多的廉价J-link还不是中国牛人xxx....
产品唯一的身份标识非常适合:
● 用来作为序列号(例如USB字符序列号或者其他的终端应用)
● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
● 用来激活带安全机制的自举过程
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
un=(*( u16 *)0x1FFFF7E0); //闪存容量寄存器
printf(" The Flash size: %d KB\r\n",un);
printf(" Unique device ID");
un=(*( u16 *)0x1FFFF7E8); //产品唯一身份标识寄存器(96位)
printf(" U_ID[15:0]: %d\r\n",un);
un=(*( u16 *)0x1FFFF7EA);
printf(" U_ID[31:16]: %d\r\n",un);
un=(*( u32 *)0x1FFFF7EC);
printf(" U_ID[63:32]]: %d\r\n",un);
un=(*( u32 *)0x1FFFF7EF);
printf(" U_ID[95:64]: %d\r\n",un);
- stm32_018_stm32自身唯一ID读取
- 读取芯片唯一ID号
- STM32唯一ID读取方法
- 读取Mc1000的 唯一 ID 机器号
- 读取Mc1000的 唯一 ID 机器号
- 如何读取STM32芯片的唯一ID
- 如何读取STM32的唯一ID
- 唯一id
- 唯一ID
- STM32实验连载之四:读取芯片唯一ID号
- STM32学习之:读取芯片的唯一标识ID
- 读取STM32F207/40x的CPU唯一ID(Unique Device ID)号方法
- (37)FileInputStream读取自身
- 唯一ID发生器
- 唯一id分配策略
- C# 生成唯一ID
- 生成唯一的ID
- 生成全局唯一Id
- Spring中@Transactional事务回滚(含实例详细讲解,附源码)
- Linux系统编译VLC-Android
- 求二维数组元素和的4种等价方式(利用二维数组和指针)
- 修改Linux系统主机名
- java简单的基础轮廓
- stm32_018_stm32自身唯一ID读取
- NOIP2017 D1T3 列队
- Java 五种类实例化的方法与初始化顺序
- 初学者---Android 一款好用的Dialog开源框架NiftyDialogEffects
- MSP430G2553 串口通信
- 【BZOJ】4403 序列统计 Lucas
- 筛法求素数
- AngularJS排序查询以及添加
- C++ class 总结