面对JFlashLite修不好的BUG若有所思
JLink做为最常用的ARM调试工具,其配套上位机软件的版本更新频率几乎是一月N更,甚至有隔天就更新,这更新频率连一直刷版本号的chrome都怕是要自愧不如。
更新日志在这里,有兴趣的可以看一看。
其中JFlashLite是一个比较精简的烧录工具,比完整版JFlash的操作简单明了。 有些时候只是为了下载HEX文件,用它是很合适的选择。
但是这个工具从JLink 5.0版本发布,最目前最新版本V7.66,已经有7年历史了。 就这么一个几百KB的小小小小工具,却还BUG百出。
不得不让我发生思考: 这是什么样的软件管理? Segger的上位机软件开发团队可能存在很大的问题? 一方面开发人员的流动性可能很大,一套代码频繁换人就可能出现解决1个BUG,产生10个BUG。 另一方面还暴露出软件测试非常匮乏,不经过认真测试就直接发版了, 有些BUG稍微测试一下就能发现的却流到了正式版本。 最有可能的情况是这个小工具本身对于JLink来说并不重要,让那些没经验的新人来写代码。
我连续下载了N个历史版本来对比,想找一个相对稳定好用的版本,发现每个版本都是BUG。

简单总结下JFlashLite这个软件的历史:
V5.00 - V6.12j: BUG:日志输出窗口会乱序输出(多线程输出没有做好同步)。 缺点:没有记录最后选择的MCU型号,每次要重新选芯片 。 缺点:MCU选择对话框只能按厂商过滤,不能按型号过滤,找芯片很麻烦。 优点:支持中文路径,窗口大小可以调整。
V6.14: 优点:增加了记住最后选择的MCU型号的功能。
V6.30b: 优点:增加了按MCU型号搜索过滤的功能。 缺点:不能调整窗口大小,窗口太小文件路径会显示不全。 新增BUG :文件选择对话框换了风格(全英文),且不能选择本地磁盘以外的路径。 新增BUG :无法下载中文路径的HEX文件(之前的版本支持中文)。
V6.30c: 解决了日志输出窗口会乱序输出的问题。
V6.32: 这个版本终于发现文件选择对话框的问题了,又改回原来的文件选择方式。
V6.48: 默认的烧录地址从0变成了MCU的FLASH起始地址。
V6.60: 这个版本文件路径框变成只读(之前可写,但改写也没用)。 新增BUG :日志输出大部分内容都不会换行,全挤在一行。
V6.82: 解决中文路径的文件无法下载的问题; 新增BUG :选择中文路径后无法选择其它中文路径的文件;
V6.94b: 解决了日志输出不换行的问题。
V6.94c - V7.66g: BUG依旧,中文路径只能选1次,但可以选英文路径的文件。
这个小工具,估计代码量也就2K行左右,随便有点QT基础都能写出来。 实在不应该这么多问题。