发表于: 2016-12-9 11:55:02 | 显示全部楼层

Hexiwear设备是一个强大的多功能设备,板载两个微控制器。 在Hexiwear上开发固件意味着改变原有的内容。 有时发生的改变,我不知道是不是好的。 或者我不小心破坏了恩智浦Kinetis KW40 BLE微控制器上的固件。 所以我必须找到一种方法来恢复原来的固件。这就是本篇文章要介绍的内容。

restoring-the-hexiwear-firmware-with-a-segger-j-link.png

因为没有办法来重建KW40固件(它需要专有工具和闭源(库)文件),我必须找到一种如何重新烧写固件而不必重建二进制文件的方法。

Segger J-Link

Hexiwear对接站上的OpenSDA电路对我来说效果不好(连接速度慢,有时会失败),所以我使用P&E Multilinks和Segger J-Links来编程Hexiwear。 这是建立我们自己的对接站的另一个原因,参见“小型Hexiwear对接站的原型”。

在本文中,我使用Segger J-Link因为其脚本功能使得批量编程多个单元变得容易:不仅用于恢复固件,而且还在多个设备上编程我们的自定义固件。

要编程二进制文件,我使用J-Link应用程序与批处理文件(.bat)和J-Link脚本文件(.script):

script-files.png

二进制文件

Segger J-Link支持二进制(bin)文件烧写。 有关如何创建二进制文件的信息,请参阅“使用Eclipse和GNU ARM Eclipse插件生成用于mbed Bootloader的二进制(和S19)文件”。

原来的MikroElektrtronika的二进制文件可以在GitHub上找到。 有两个二进制文件,一个用于恩智浦Kinetis K64F,另一个用于恩智浦Kinetis KW40:

hexiwear-images.png

恢复K64F的二进制文件

在恢复K64F的二进制文件时,使用以下DIP开关设置:

    MK64F:两个开关都处于ON位置

    MKW40:两个开关都处于OFF位置

    OSDA:OFF(禁用)

hexiwear-dip-switch-settings-for-restoring-k64f-binary.png

批处理文件包含以下内容,其中一个变量指向JLink可执行文件:

  1. REM *******************************************************
  2. REM * Batch file to program a bin file with Segger J-Link *
  3. REM *******************************************************

  4. SET JLINK="C:\Program Files (x86)\SEGGER\JLink_V612\JLink.exe"

  5. %JLINK% -device MK64FN1M0xxx12 -CommanderScript ./jlink_k64f.script
  6. pause
复制代码

上述批处理文件调用J-Link脚本jlink_k64f.script,该脚本使用二进制文件进行编程:

  1. si swd
  2. speed 4000
  3. r
  4. h
  5. loadbin "HEXIWEAR_MK64.bin",0
  6. r
  7. exit
复制代码

要编程K64F器件,请运行批处理文件ProgrammWithJlink_K64F.bat

恢复KW40的二进制文件

为了恢复K64F的二进制文件,使用以下DIP开关设置:

    MK64F:两个开关都处于OFF位置

    MKW40:两个开关都处于ON位置

    OSDA:OFF(禁用)

hexiwear-dip-switch-settings-for-restoring-kw40-binary.png

批处理文件包含以下内容,其中一个变量指向JLink可执行文件:

  1. REM *******************************************************
  2. REM * Batch file to program a bin file with Segger J-Link *
  3. REM *******************************************************

  4. SET JLINK="C:\Program Files (x86)\SEGGER\JLink_V612\JLink.exe"

  5. %JLINK% -device MKW40Z160xxx4 -CommanderScript ./jlink_kw40.script
  6. pause
复制代码

上面的批处理文件调用J-Link脚本jlink_kw40.script,该脚本使用二进制文件进行编程:

  1. si swd
  2. speed 4000
  3. r
  4. h
  5. loadbin "HEXIWEAR_KW40.bin",0
  6. r
  7. exit
复制代码

要编程KW40器件,请运行批处理ProgrammWithJlink_KW40.bat文件。

总结

使用上面提到的方法,我可以轻松地恢复原始固件,或者使用一个新的固件烧写多个Hexiwear(或其他设备)。 您可以根据需要更改脚本和批处理文件,它们也可以在GitHub上使用。


参考链接:

    GitHub存储库:https://github.com/ErichStyger/HEXIWEAR/tree/master/SW/binaries

    使用J-Link进行批处理编程:使用GDB进行批处理编程:Segger J-Link和P&E多链路

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 12 | 回复: 14



手机版|

GMT+8, 2024-3-19 17:44 , Processed in 0.110379 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表