最近在尝试使用S32DS烧录S32K314,在烧录过程中频繁出现烧录报错:Error in services launch sequence,Starting J-Link GDB Server timed out.
最初为了解决这个问题,我尝试了:
1.关闭程序进程:
打开任务管理器,关闭相关进程:
gdbserver_console、JLinkGDBServerCL.exe、arm-none-eabi-gdb.exe:
```shell
taskkill /f /im JLinkGDBServerCL.exe
taskkill /f /im JLink.exe
taskkill /f /im JLinkARM.exe
```
此操作清除僵死的JLink进程;
但是我不管是在任务管理器搜索进程关键字,还是直接指令清除,都没发现有僵死进程,所以大概率不是这个问题导致的;
2.S32K314开发板断电重启:
重启后重新尝试烧录,还是一样的报错;
3.ARM仿真器和电脑的USB接口拔插:
拔掉重新插上,重新尝试烧录,还是一样的报错;
4.重启电脑:
重启电脑后,可能是清除了所有的配置,所以重新尝试烧录,发现可以执行了;
(重启大法可以拯救一切,但是重启很麻烦,我所有的程序和应用都得重新打开,还得等待电脑重启时间,所以我想知道为什么会出现这个问题,以及怎么可以不重启电脑就能解决......)
探索过程:
首先我查询到在JLink烧录的过程中会生成日志,可以查看到烧录过程信息,所以我在S32DS中设置保存了log文件:

重启电脑后,再次执行,然后保存新的log文件,进行对比:

发现日志中的这个标志位数据不同,上网搜了一下这个标志位的含义
(最开始我还以为是多次启动程序导致的失败,以为这个标志位是数量的含义)
(虽然后续发现即使是00000000也会出现这个问题,但是下述的解决方法确实是可以不重启电脑解决这个问题的!)

得知这个原因后,我就想知道:
1.对于00000002是反应设备连接状态或驱动通信的异常标识,怎么解决?
2.怎么可以在不重启电脑的情况下,释放被占用的USB控制器资源?
问题解决:
1.重置USD设备栈:(有作用,记得要刷新设备列表)




刷新设备列表
2.修复注册表项(针对00000002错误码)
(该方法我没有尝试过不确定是否可以)
```shell
定位路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_1366&PID_0101
```


3.清除设备缓存:(需要安装软件)
(该方法我没有尝试过不确定是否可以)
```shell
devcon.exe remove @"USB\VID_1366&PID_*" # 需安装Windows Driver Kit
```

4104






