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:不接硬件复位,这里选择断上电复位,也可以解决
动态效果
硬件接线实物图:
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Simon223/article/details/143304810
|