STM32 F103C8T6 flash锁死的解决方法

 

STM32 F103C8T6 flash锁死的解决方法。

先让最小板的boot启动方式改为SRAM,默认是Flash方式。再使用STM32 ST-LINK Utility,连接清除flash信息。再改回Flash方式,系统恢复正常,操作步骤如下:

 

软件开发环境

STM32 Cube IDE

开发板为STM32F103C8T6  最小系统板。

 

由于开发中不小心,没有使用SYS的Debug Serial Wire,导致锁死Flash

部署程序到stm32最小系统板的时候STM32CubeIDE报下面的错误信息。

 

Error in final launch sequence:

 

Failed to start GDB server

Failed to start GDB server

ST-Link设备进行初始化时出错。

原因:(4) 没有找到目标设备。

 

 

使用STM官网工具软件STM32 ST-LINK Utility

查询后提示Target  Detection Fail,无法正确连接STM32目标

 

解决方法:

将boot0和boot1跳线接到1

下面是默认的Flash boot跳线方式

需要改为SRAM的跳线方式,全部跳到右边靠近1这个位置,如下图。

STM32F103C8T6核心板BOOT启动方式列表。

BOOT0

BOOT1

MODE

0

X

FLASH

1

1

SRAM

1

0

ISP

 

插入ST-LINK  USB,当我们再使用STM官网工具软件STM32 ST-LINK Utility查询时信息如下,说明连接成功:

接到将Flash数据全部清空。

点1连接

点2清除Flash内容。

点3步里面弹出框,点击ok将数据清空。

Target STM32F10xx Medium-density

Target Voltage 3.2V

 

然后取出ST-Link后,将跳线帽返回0。

接上系统ST-Link后,使用STM32CubeIDE发送程序。系统提示下面。

Memory Programming ...

Opening and parsing file: ST-LINK_GDB_server_a07524.srec

  File          : ST-LINK_GDB_server_a07524.srec

  Size          : 11484 Bytes

  Address       : 0x08000000

Erasing memory corresponding to segment 0:

Erasing internal memory sectors [0 11]

Download in Progress:

File download complete

Time elapsed during download operation: 00:00:01.059

Verifying ...

Download verified successfully

到此为止一切正常!系统恢复工作。

  • 18
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 这个错误是CUDA运行时错误,表示在执行CUDA内核函数时发生了未指定的错误。这可能是由于许多原因引起的,例如内存不足、线程块大小错误、设备故障等。要解决此错误,您可以尝试以下几个步骤: 1. 检查您的CUDA代码是否正确,确保没有语法错误或逻辑错误。 2. 检查您的设备是否正常工作,例如检查设备是否正确连接、驱动程序是否正确安装等。 3. 检查您的内存使用情况,确保您的内存使用不超过设备的限制。 4. 尝试调整线程块大小和网格大小,以确保它们适合您的设备。 5. 如果以上步骤都无法解决问题,请尝试使用CUDA的调试工具来诊断问题。 ### 回答2: "Unspecified launch failure"通常是由于代码或输入错误导致的。以下是可能导致此错误的几个常见原因: 1. 内核参数设置错误-内核参数是在CUDA编程中设置的,它们控制了CUDA在GPU上启动内核的方式。如果参数设置不正确,可以导致"unspecified launch failure"错误。 2. 内存错误-如果代码中内存分配不正确或者访问了未分配的内存,也可能导致此错误。在CUDA编程中,应该仔细检查每个内存分配,以确保分配的大小和类型正确,并且在使用时能够访问该内存。 3. 数据类型错误-如果代码中的数据类型不匹配,也可能导致此错误。例如,如果尝试将浮点数数据类型与整数数据类型相加,则会出现不匹配的情况。 4. GPU硬件问题-在极少数情况下,"unspecified launch failure"错误可能由于GPU硬件问题引起。在这种情况下,可能需要检查GPU硬件的状态,并确保其正常工作。 无论是哪种情况,检查代码并调试将是解决问题的关键。可以通过使用CUDA调试器或其他工具以及逐步检查代码来确定问题所在。最好的方法是遵循CUDA编程的最佳实践,并在编写代码时始终注意代码的质量和内存安全性。 ### 回答3: 当我们在运行CUDA程序时,经常会遇到各种错误。其中,常见的一个错误是“unspecified launch failure”(未指明的启动失败)。这个错误通常发生在GPU的执行器(launching)中,也就是当我们在启动GPU核函数时。 这个错误的原因有很多种,下面列出了一些可能的原因和解决方法: 1. 代码目标设备与当前设备不一致<br> 这个错误可能会发生在代码编译时,编译器默认使用当前设备。如果代码在其他设备上运行,就会导致此错误。解决方法是:在编译器中使用目标设备的指令,如果您正在使用命令行进行编译,则您可以使用“-arch=sm_XX”来指定目标设备的指令。 2. 数组维度错误<br> 当我们传递数组时,数组的尺寸必须要符合GPU核函数的要求,否则会发生“unspecified launch failure”错误。一种解决方法是调试核函数代码,查找问题所在,并修改代码。 3. 核心函数发生死锁<br> 死锁指的是程序因为资源瓶颈被堵死,无法向下运行。当核心函数过于复杂,程序中越多的线程就会被占用,容易发生此错误。解决方案是,尝试减小核心函数,优化程序,减少线程占用。 4. 内存限制<br> “unspecified launch failure”错误可能是因为程序使用了太多的内存空间。您可以尝试关闭其他程序,或通过在代码中调整内存分配来解决这个错误。 总之,当遇到“unspecified launch failure”这个错误时,我们应该及时分析错误的原因,并尝试排除问题。最好的解决方法就是优化代码,减少程序的资源占用,避免此类错误的发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值