STM32CbueIDE 与 J-Link
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的完整路径.
然后再继续配置"创建任务"窗口中的"操作"内容.
首先按照教程开启“审核进程跟踪”;然后打开"事件查看器>Windows日志>安全",按日期和时间排序、在筛选器中筛选"4688".
点击一次 STM32CbueIDE 中的 "运行" 按钮,等程序下载完成后返回并刷新一次事件查看器窗口,找到最新的事件查看详情,发现果然是运行 JLink 相关的进程,进程名是 "JLinkGUIServer.exe".

创建计划任务。



运行再打开 STM32CbueIDE 点击 "运行" 下载一次程序,JLink图标终于干净了,完美!
STM32CbueIDE 与 J-Link的更多相关文章
- 一个文件夹可以link 到另外一个文件夹
Creates a symbolic link. MKLINK [[/D] | [/H] | [/J]] Link Target /D Creates a directory symboli ...
- 牛客多校第四场 J Free 最短路
题意: 求最短路,但是你有k次机会可以把路径中某条边的长度变为0. 题解: 跑k+1次迪杰斯特拉,设想有k+1组dis数组和优先队列,第k组就意味着删去k条边的情况,每次松弛操作,松弛的两点i,j和距 ...
- windows7命令帮助大全
有关某个命令的详细信息,请键入 HELP 命令名ASSOC 显示或修改文件扩展名关联.ATTRIB 显示或更改文件属性.BREAK 设置或清除扩展式 CTRL+C 检查.BCDEDIT 设置启动数据库 ...
- [转]Windows7文件夹转移清理臃肿的C盘
当你使用Windows的时候,你会发现无论哪个版本的Windows,系统都会默认将用户文件夹和程序数据文件夹(xp下是Documents and Settings文件夹,而windows7和vista ...
- SharePoint 快捷获取列表栏内部名称
在列表设置页面点击浏览器书签获取列表字段内部名称,使用效果如下图: 如何使用: 修改浏览器上任意书签的url地址为以下代码,注意:代码中不能有换行符 javascript:(function(){va ...
- bzoj1189
1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2321 Solved: 724[Submi ...
- POJ3249:Test for Job
传送门 很简单的一道题,被卡了几次,死于答案非法统计. 题意是求图里的一条最长的路径满足起点的入度和终点的出度都是0,而且图是DAG. 既然是DAG求最长路,DP即可.搞出拓扑序,逆序DP,然后统计所 ...
- BZOJ平推计划
学习VFK大神推BZOJ,记录一下学习的东西 1004: burnside:一个置换群的等价计数=(每个置换的置换后等价情况数)/置换总数,每个置换的置换后等价情况数就是置换后没变的数 模意义下的除法 ...
- codevs 1907 方格取数 3
Description 在一个有m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法. Input 第 ...
- 玩转WIN7的MKLINK
引言: 换了新电脑,终于再次使用上啦WIN7 ,经过一个周每天重装N次系统,终于弄好一个像样的系统啦.由于使用rt7lite对WIN7SP1官方整合包进行了适当精简,所以最终系统的稳定性还得经过一段时 ...
随机推荐
- Redis-缓存穿透/击穿/雪崩
1. 简介 如图所示,一个正常的请求 客户端请求张铁牛的博客. 服务首先会请求redis,查看请求的内容是否存在. redis将请求结果返回给服务,如果返回的结果有数据则执行7:如果没有数据则会继续往 ...
- Linux从头学07:中断那么重要,它的本质到底是什么?
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- DNS的正向解析与反向解析
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据I ...
- uniapp 实现信息推送(App)
废话不多说直接上代码 以下代码需写在onlaunch生命周期内 onlaunch(){// onlaunch应用级生命周期 :当uni-app 初始化完成时触发(全局只触发一次) //#ifdef A ...
- Linux从头学08:Linux 是如何保护内核代码的?【从实模式到保护模式】
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- 「TJOI2019」唱、跳、rap 和篮球 题解
题意就不用讲了吧-- 鸡你太美!!! 题意: 有 \(4\) 种喜好不同的人,分别最爱唱.跳. \(rap\).篮球,他们个数分别为 \(A,B,C,D\) ,现从他们中挑选出 \(n\) 个人并进行 ...
- Kafka 与 RabbitMQ 如何选择使用哪个?
目录 前言 如何选择? 开发语言 延迟队列 消息顺序性 优先级队列 消息留存 消息过滤 可伸缩行 小结 推荐阅读 前言 我们在工作中经常会用到异步消息,主要使用两种消息模式: 消息队列 发布/订阅 消 ...
- COM笔记-CoCreateInstance
CoCreateInstance 创建组件的最简单的方法是使用CoCreateInstance函数. 在COM库中包含一个用于创建组件的名为CoCreateInstance的函数.此函数需要一个CLS ...
- COM笔记-关于GUID
GUID 它实际上是组件和接口的标识号 static const IID IID_IX = { 0x1ee235bd, 0x2e73, 0x49c2, 0xa5, 0x7c, 0x8b, 0xe5, ...
- webapp网络定位
1 <script> 2 var x=document.getElementById("demo"); 3 function getLocation() 4 { 5 i ...