【背景】
这个骚操作,骚就骚在SWD接口引脚复用其他功能了,板子还没有把硬件复位引脚接出来,硬件复位引脚是专治这种场景的。
虽然客户的程序搞了个上电后延迟100ms才复用,但JLINK,ULINK,STLINK,DAPLINK在MDK下都已经无法控制这个芯片下载,但使用第3方的烧录可以下载,且客户近期不方便提供他的测试程序让我们测试。
【解决办法】
1、测试代码, 使用芯片LKS32MC034DF6Q8B
swd.7z
(311.11 KB)
2、配置SWD 转 GPIO
// src file: main.c #include "basic.h" #include "hardware_init.h" #include "hardware_config.h" #include "lks32mc03x.h" #include "rtt_debug.h" #include "delay.h" /* USER CODE BEGIN Includes */ void SWD_to_GPIO(void) { // 等待芯片上电复位后的100ms delay_ms(200); // 向SYS_IO_CFG寄存器的第6位写入0,开启复用功能 SYS_WR_PROTECT = 0x7a83; SYS_IO_CFG &= ~BIT6; /*SWD复用普通GPIO*/ SYS_WR_PROTECT = 0; // 配置P1.8和P1.9为GPIO /* USER CODE END Main */ Common_GPIOInit(); } /* USER CODE END Includes */ /* USER CODE BEGIN Defines */ /* USER CODE END Defines */ int main() { __disable_irq(); Clock_Init(); delay_init(MAIN_CLOCK); __enable_irq(); SWD_to_GPIO(); while(1) { /* USER CODE BEGIN MainWhile */ /* USER CODE END MainWhile */ PRINTF("run main.while()...\r\n"); delay_ms(1000); } } /*************** (C) COPYRIGHT LINKO SEMICONDUCTOR *****END OF FILE**************/
3、配置后,确实如官方文件所说,任何LINK都无法使用MDK和IAR下载了,即使接上硬件复位并且配置使用硬件复位引脚也无法解决,比如jlink下载,效果如下:
4、使用我们H7-TOOL测试
复用后,TOOL的默认配置会提示芯片不存在
(1)解决办法1:接硬件复位,并且这里选择硬件复位,可以反复烧录,烧录的程序是100ms复位的固件
动态效果
(2)解决办法2:不接硬件复位,这里选择断上电复位,也可以解决
动态效果
硬件接线实物图:
标签:CODE,100ms,引脚,复位,SWD,硬件,USER,测试 From: https://www.cnblogs.com/armfly/p/18510819