请教怎么用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)

}

stlink发现不了芯片是由于禁止了swd调试。

1、按复位按键,点击keil中魔法棒工具,渣亩顷点击setting。

2、看到可以检测到芯片,点击耐野确定退出。

3、中途不要松手,点击下载,立刻松开复位键,将程序刷进去如陆就可以了。

1、首先确认stlinkv2目标板上电,长按住目标板子的复位键,再点击Settings。

2、其次KEIL打开Settings的设手仿置对话框,请确认毕闹纤有SWD的内容后,再进行下一步。

3、最后将目标板断电,重新上电,先长按目标板的复位键,再点击仿真弯缓或者下载按钮,再松开复位键即可读取内存。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存