STM32CbueIDE 与 J-Link

无论是 STM32CbueIDE 还是 Keil, 在使用 JLink 的时候都不过是先启 JLink 的 GDB 服务,然后再“远程”连接到 GDB 透过 J-Link 支持的命令操作 MCU 的。(在软件的安装目录中一定能找到 "JLinkGDBServer.exe".) 相比于 Keil 的封闭来说 STM32CbueIDE 要好一些,在调试和运行时可以通过控制台输出找到其在启动 JLinkGDBServer 时的参数。


关于在 STM32CbueIDE 中 J-Link 的配置

具体配置项跟 Keil 差不多,实际可参照下图。


存在的问题(在Windows中)

问题描述

在 Windows 中使用 STM32CbueIDE 与 JLink 的组合存在一个无伤大雅但是却令人十分难受的问题,那就是每次执行 "运行" 后都会在任务栏托盘区域创建一个JLink图标(因为启动了JLinkGDBServer.exe),但是运行成功后这个图标并不会自己消失(进程已经结束了,但是图标不消失),久而久之调程序的次数多了就会在任务栏形成一大堆僵尸图标。

网上说这种情况是进程异常结束造成的,也就是说进程虽然结束了,但是在结束之前没来得及注销任务栏托盘的图标,CbueIDE 果然还是问题多多啊。这种情况只要把鼠标挪到相应的图标上图标就会消失了,但是每次下完程序都特意把鼠标往任务栏上扫一遍的行为也太傻了吧。

System Tray Refresh

System Tray Refresh 是我费劲千辛万苦找到的一个小工具,仅有18.5k. 它的作用就是刷新系统托盘图标,可以令死图标消失。

官网地址:http://visualfantasy.tk/

52破解论坛介绍:https://www.52pojie.cn/thread-659012-1-1.html

Windows 计划任务

原因了解,工具也有了,接下来只需发挥一下聪明才智,交给电脑自己该怎么做就行了——当使用 STM32CbueIDE 给单片机下载完程序后自动清理托盘残留的图标。

任务:运行 SystemTrayRefresh.exe ;

触发条件:检测到启动了 JLinkGDBServer.exe .

关于这种类型计划任务的配置,摘抄了网上的一段内容:请问如何使用任务计划程序中的触发器——“发生事件时”?

实现启动程序A的时候执行相应的计划任务这样的效果,您首先需要开启相关的日志记录:

右键点击开始按钮>运行>secpol.msc

在打开的本地安全策略中依次展开本地策略>审核策略>双击打开右侧的"审核进程跟踪",勾选"审核这些操作"下方的"成功">确定

设置完成后可以随便打开一个应用程序再关闭,然后右键点击开始按钮>事件查看器>Windows日志>安全>可以看到最新一条的事件记录(4688)可以成功记录到刚才启动的程序的事件.

接下来回到任务计划程序中,修改计划任务的触发器,使用"发生事件时"触发>自定义>新建事件筛选器,切换至"XML"标签页,勾选"手动编辑查询",粘贴下面内容:

<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[band(Keywords,9007199254740992) and
(EventID=4688)]] and
*[EventData[Data[@Name='NewProcessName'] and
(Data='C:\Windows\System32\notepad.exe')]]
</Select>
</Query>
</QueryList> 注:请将上面代码中倒数第四行Data=''中的内容替换为程序A的完整路径. 然后再继续配置"创建任务"窗口中的"操作"内容.
  1. 首先按照教程开启“审核进程跟踪”;然后打开"事件查看器>Windows日志>安全",按日期和时间排序、在筛选器中筛选"4688".

  2. 点击一次 STM32CbueIDE 中的 "运行" 按钮,等程序下载完成后返回并刷新一次事件查看器窗口,找到最新的事件查看详情,发现果然是运行 JLink 相关的进程,进程名是 "JLinkGUIServer.exe".

  3. 创建计划任务。





  4. 运行再打开 STM32CbueIDE 点击 "运行" 下载一次程序,JLink图标终于干净了,完美!

STM32CbueIDE 与 J-Link的更多相关文章

  1. 一个文件夹可以link 到另外一个文件夹

    Creates a symbolic link. MKLINK [[/D] | [/H] | [/J]] Link Target /D      Creates a directory symboli ...

  2. 牛客多校第四场 J Free 最短路

    题意: 求最短路,但是你有k次机会可以把路径中某条边的长度变为0. 题解: 跑k+1次迪杰斯特拉,设想有k+1组dis数组和优先队列,第k组就意味着删去k条边的情况,每次松弛操作,松弛的两点i,j和距 ...

  3. windows7命令帮助大全

    有关某个命令的详细信息,请键入 HELP 命令名ASSOC 显示或修改文件扩展名关联.ATTRIB 显示或更改文件属性.BREAK 设置或清除扩展式 CTRL+C 检查.BCDEDIT 设置启动数据库 ...

  4. [转]Windows7文件夹转移清理臃肿的C盘

    当你使用Windows的时候,你会发现无论哪个版本的Windows,系统都会默认将用户文件夹和程序数据文件夹(xp下是Documents and Settings文件夹,而windows7和vista ...

  5. SharePoint 快捷获取列表栏内部名称

    在列表设置页面点击浏览器书签获取列表字段内部名称,使用效果如下图: 如何使用: 修改浏览器上任意书签的url地址为以下代码,注意:代码中不能有换行符 javascript:(function(){va ...

  6. bzoj1189

    1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2321  Solved: 724[Submi ...

  7. POJ3249:Test for Job

    传送门 很简单的一道题,被卡了几次,死于答案非法统计. 题意是求图里的一条最长的路径满足起点的入度和终点的出度都是0,而且图是DAG. 既然是DAG求最长路,DP即可.搞出拓扑序,逆序DP,然后统计所 ...

  8. BZOJ平推计划

    学习VFK大神推BZOJ,记录一下学习的东西 1004: burnside:一个置换群的等价计数=(每个置换的置换后等价情况数)/置换总数,每个置换的置换后等价情况数就是置换后没变的数 模意义下的除法 ...

  9. codevs 1907 方格取数 3

    Description 在一个有m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法. Input 第 ...

  10. 玩转WIN7的MKLINK

    引言: 换了新电脑,终于再次使用上啦WIN7 ,经过一个周每天重装N次系统,终于弄好一个像样的系统啦.由于使用rt7lite对WIN7SP1官方整合包进行了适当精简,所以最终系统的稳定性还得经过一段时 ...

随机推荐

  1. React脚手架配置代理

    react脚手架配置代理 方法一 在package.json中追加如下配置 "proxy":"http://localhost:5000" 说明: 优点:配置简 ...

  2. 【XXE学习】XML外部实体注入

    一.XML外部实体注入介绍 1.1 XXE简介 XML外部实体注入(XML External Entity Injection)也就是人们(mian shi guan )常说的XXE啦,见名知意,就是 ...

  3. Sqli-Labs less11-12

    less-11 11关以后已经和前几关不同.页面由get方式变成了类似form表单的post方式的登陆界面,我们不能直接看到数据,所以要用到burp抓包. 抓包方式前面已经说过,这里直接使用,我们先输 ...

  4. [ASP.NET MVC]@Partial 和@RenderPartial的区别

    @Partial 和@RenderPartial的区别 Html.partial和RenderPartial的用法与区别 Html.partial和RenderPartial都是输出html片段,区别 ...

  5. Redis3.0.0集群一键脚本 -by古斌

    下载地址(以交由码云托管): https://gitee.com/gubin0412/Redis3.0.0 赋予脚本执行权限  chmod +x redis-gubin.sh 使用 ./redis-g ...

  6. 集合的打印、列表List、迭代器Iterators

    集合的打印 必须使用 Arrays.toString() 来生成数组的可打印形式. 但是打印集合无需任何帮助. /** * 集合的打印 * @author myf */ public class Pr ...

  7. 梯度下降做做优化(batch gd、sgd、adagrad )

    首先说明公式的写法 上标代表了一个样本,下标代表了一个维度: 然后梯度的维度是和定义域的维度是一样的大小: 1.batch gradient descent: 假设样本个数是m个,目标函数就是J(th ...

  8. 硬核! Github上 ,star超高的Java 开源项目分享给你!

    Awsome JavaGreat Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序员 ...

  9. Learning ROS: rqt_console和rqt_logger_level使用

    rqt_console:操作.查看log信息 rqt_logger_level:设置log等级 打开node: rosrun rqt_console rqt_console rosrun rqt_lo ...

  10. SQL查询数据库名、表名、列名

    1.获取所有用户名SELECT name FROM Sysusers where status='2' and islogin='1'islogin='1'表示帐户islogin='0'表示角色sta ...