H7-TOOL测试凌欧LKS32MC03x的骚操作玩法支持情况,不接硬件复位引脚,SWD上电100ms复用其他功能调试下载测试(已测试没问题)

【背景】

这个骚操作,骚就骚在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:不接硬件复位,这里选择断上电复位,也可以解决

动态效果


硬件接线实物图:

 

posted @ 2024-10-28 15:55  硬汉嵌入式  阅读(17)  评论(0编辑  收藏  举报