【记录贴】Not a genuine ST Device! Abort connection

Not a genuine ST Device! Abort connection
Connection refused due to device mismatch!
 

最近入手了创芯工坊的PowerWriter烧录器,采用的是SW模式烧录程序,让我想起了以前购置的一块STM32F407的开发板,一直采用的是一起买的配套的st-link烧录,但是那个需要烧录的同时还需要上电,需要用到两个USB口,于是决定用PowerWriter尝试烧录。


结果出现弹窗提升如下  Not a genuine ST Device! Abort connection。提示不是正版的ST芯片

按照网上搜索到的解决方法
我屏蔽了如下两行代码,也将第二张图所示Enable禁用了,但是并没有什么用

变为继续提示    Connection refused due to device mismatch!

继续寻找解决方法,找到一篇文章STM32单片机?假货or国产芯片?_0x1ba01477-优快云博客
这时候才意识到可能开发板上用的假芯片
文中提到一个鉴别方法是,Options for Target...-> Debug ->Sitting可以看到
如下图IDCODE,正版ST芯片为0x1BA01417,而国产芯片为0x2BA01417

接下来要找到可能用了那种芯片替代,我打开半岛小芯,搜索STM32F407ZET6,查看可替代芯片

这里我怀疑可能是GD32,于是重新下载了GD32的packGD32芯片包下载和安装教程_gd32pack包-优快云博客


修改好即可顺利烧录。

希望能够帮助到看到这里的你,有错误欢迎指出,有更好的解决办法欢迎分享!

在IT系统中,识别和处理非可信设备(Not a Genuine Device)错误是确保系统安全性和稳定性的重要环节。这类问题通常出现在硬件或外设连接过程中,例如USB设备、存储介质或其他外围设备的接入。以下是一些常见的错误处理机制和技术实现方式: ### 设备验证与认证 为了防止非可信设备接入系统,操作系统或固件通常会实施设备验证机制。这包括检查设备的数字签名、制造商ID、设备ID以及其他唯一标识符。例如,在Windows系统中,驱动程序必须经过WHQL(Windows Hardware Quality Labs)认证,以确保其来源可信[^1]。 ```c // 示例:检查设备是否为可信设备(伪代码) bool is_genuine_device(const char *device_id, const char *manufacturer_id) { // 查询可信设备数据库 if (trusted_devices.contains(device_id, manufacturer_id)) { return true; } else { log_event("Non-genuine device detected: %s:%s", device_id, manufacturer_id); trigger_security_alert(); return false; } } ``` ### 安全启动(Secure Boot) 现代计算机系统通常支持安全启动功能,该功能通过UEFI(统一可扩展固件接口)来确保只有经过签名验证的操作系统和驱动程序可以加载。如果检测到未签名或被篡改的组件,系统将阻止其加载并提示错误[^1]。 ### 用户空间调试配置(user_debug) 在某些嵌入式系统中,如ARM架构的Linux内核,`user_debug`参数用于控制用户空间调试信息的输出级别。这些设置可以帮助开发者诊断设备连接时出现的问题。例如,启用`SIGSEGV`和`SIGBUS`故障的调试信息有助于发现内存访问异常,可能是由不可信设备引发的[^2]。 ```bash # 启用用户空间调试(示例) echo "user_debug=24" > /proc/sys/kernel/printk ``` ### 加密与消息认证码(MAC) 为了确保设备间通信的安全性,系统可能会使用消息认证码(Message Authentication Code, MAC)来验证数据完整性和身份真实性。这种机制广泛应用于物联网(IoT)设备之间的安全通信中[^3]。 ```python import hmac from hashlib import sha256 def generate_mac(key, message): return hmac.new(key, message, sha256).hexdigest() # 示例:生成设备认证MAC key = b'secret_key' message = b'device_serial_number_12345' mac = generate_mac(key, message) print(f"Generated MAC: {mac}") ``` ### 安全策略与隔离机制 操作系统通常提供安全策略模块(如SELinux或AppArmor),它们可以根据预定义规则限制设备的访问权限。此外,虚拟化技术也可以用来隔离可疑设备的影响范围,确保即使某个设备被攻击也不会影响整个系统的运行。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值