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官方整合包进行了适当精简,所以最终系统的稳定性还得经过一段时 ...
随机推荐
- Deepin Pwn环境的配置
要学习Pwn Pwn环境那是必不可少滴! 我是新手,我也弄了好久,这里把经验分享给大家!这里感谢I春秋的"知世"老师的脚本!虽然写的不是很完美.还得我自己动手修改!PS:http ...
- MySQL学习05(MySQL函数)
MySQL函数 常用函数 官方文档 : https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html 数据函数 SELECT ABS ...
- JavaScript学习03(函数)
函数 函数定义 JavaScript 函数是通过 function 关键词定义的. 声明定义 function functionName(parameters) { 要执行的代码 } 被声明的函数不会 ...
- Python断言及常用断言函数总结
Python断言 Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Python 解释器会报 As ...
- Shell-08-文本处理sed
文本处理sed sed:流编辑器,过滤和替换文本 工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并且清空模式空间. 然后再将下一行读入模式空间进行处理输出,以此类推,直到最 ...
- kivy之CheckBox属性实操学习
checkbox部件属性不多,本练习举例了单选,复选二种方式,并将各checkbox进行id命名,每个都绑定了相同的动作,具体大家可以看源码进行学习. 先在开发工具pycharm里新建一个项目,然后新 ...
- C# KeyValuePair<TKey,TValue> 与 Dictionary<TKey,TValue> 区别
KeyValuePair<TKey,TValue> 可以设置.查询的一对键值 是struct Dictionary<TKey,TValue> 可以设置.查询的多对键值的集合 总 ...
- 2020年秋游戏开发-flappy bird
此作业要求参考https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11577 GitHub地址为https://github.com/15011 ...
- LeetCode入门指南 之 栈和队列
栈 155. 最小栈 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top( ...
- eval()函数的使用
1.eval() 函数作用:可以接受一个字符串str作为参数,并把这个参数作为脚本代码来 执行. 2.参数情况:(1)如果参数是一个表达式,eval() 函数将执行表达式: (2) 如果参数是Java ...