• 关于J-LINK升级最新固件后无法连上的一点分析


    关于J-LINK升级最新固件后无法连上的一点分析

    昨天升级了最新的 Keil MDK 4.53,怕它老是提示 J-Link 要升级,

    就去 SEGGER 的网站下了个最新版的 J-Link 软件包(4.46F 版的),

    装好后运行 J-Link Commander 提示要升级固件。以前一直是刷的,没有问题,

    这次竟然升级后连不上仿真器了。提示

    "Communication timed out: Requested 1 bytes, received 0 bytes !"。

    SEGGER 终于开始玩花招了。

    到 Keil 里打开了以前的一个工程,发现竟然还能调试,

    一看那 DLL 的版本是 4.40C 的,看来是在 DLL 里做了些手脚。


      今天用 IDA 跟了一下 J-Link Commander,并对比了一下两个动态库的差别,

    发现新版的在打开 J-Link 函数的过程里多了两个调用。

    前一个判断了一下仿真器的功能字符串里是否有 GDBFull,

    有就会多一步 USB 通讯,超时的就是这一步操作;

    后一个通过序列号枪毙了一些老的(被偷的?)J-Link。看了一下 GDBFull 这个字符串,

    只在这里用了一次,将其全部改为大写,发现可以连上了。

    另外,序列号为 11111117 和 805306163 的会强制校验 GDBFull 功能。

      大致上猜了一下,可能是 SEGGER 更新了一下 GDBFull 功能与序列号的绑定算法,

    下面的固件里也应该改过了,那一步 USB 通讯就是下面返回上来的认证结果,

    所以接收的只有一个字节。GDBFull 这个功能貌似从来没有用过,反正我没有用到过。


      节约空间资源,删掉了下载。具体改法就是找到那个字符串,改成别的就行了。

  • 相关阅读:
    useState回调函数
    Ahook
    我的创业和职业观点
    一个超级工业软件的能力在哪
    【542】Mac上面修改jupyter notebook默认打开页面
    【541】shapely 相关功能
    【540】时间戳数字转换为格式化时间
    【539】地球两点距离以及面积计算
    【538】二维数据实现随机采样
    新春首发!Spring Boot 2 个新版本...
  • 原文地址:https://www.cnblogs.com/shangdawei/p/4063907.html
Copyright © 2020-2023  润新知