请教怎么用st-link API或者dll读出stm32或者8的唯一ID

请教怎么用st-link API或者dll读出stm32或者8的唯一ID,第1张

STM32 设备电子签名

电子签名存储在 Flash 区。可以使用 JTAG/SWD 或 CPU 对其进行读取。它包含出厂前编程

的标识数据,这些标识数据允许用户固件或其它外部设备将其接口与 STM32F4xx 微控制器

的特性自动匹配。

唯一设备 ID 寄存器(96 位)

唯一设备标识符最适合:

● 用作序列号(例如 USB 字符串序列号或其它终端应用程序)

● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以  

提高 Flash 中代码的安全性

● 激活安全自举过程等

96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远

不能改变这些位。

96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接

起来。

以下程序可以直接读取设备ID,但是根据你STM32芯片型号不同可能地址(0x1FFF7A10)会不同,需要查看手册最后的“设备电子签名”章节

nsigned int mcuID[] ={0,0,0}

void cpuidGetId(void)

{

    mcuID[0] = *(__IO u32*)(0x1FFF7A10)

    mcuID[1] = *(__IO u32*)(0x1FFF7A14)

    mcuID[2] = *(__IO u32*)(0x1FFF7A18)

}

如果你想得到的是单片机里别人烧写进去的程序,这是几乎不可能的,你只能根据他的功能自己编写

如果你想吧别人写好的hex文件翻译成C语言或者汇编程序,这也几乎是不可能实现的。

就和win平台的exe程序一样,一旦封装好了,解开是很困难的,绅士解开比你自己写花费的精力还要多

1、检查串口连接:请检查串口线是否连接正确,是否松动,是否被其他设备占用等。可以尝试更换串口线或插口,重新连接串口。

2、检查串口设置:请检查串口参数设置是否正确,例如波特率、数据位、校验位和停止位等,是否与目标设备设置相匹配。可以尝试重新设置串口参数。

3、检查串口驱动:请检查电脑是否安装了正确的串口驱动程序,是否存在冲突或损坏。可以尝试重新安装串口驱动程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11244122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存