|
Hexiwear设备是一个强大的多功能设备,板载两个微控制器。 在Hexiwear上开发固件意味着改变原有的内容。 有时发生的改变,我不知道是不是好的。 或者我不小心破坏了恩智浦Kinetis KW40 BLE微控制器上的固件。 所以我必须找到一种方法来恢复原来的固件。这就是本篇文章要介绍的内容。
因为没有办法来重建KW40固件(它需要专有工具和闭源(库)文件),我必须找到一种如何重新烧写固件而不必重建二进制文件的方法。 Segger J-Link Hexiwear对接站上的OpenSDA电路对我来说效果不好(连接速度慢,有时会失败),所以我使用P&E Multilinks和Segger J-Links来编程Hexiwear。 这是建立我们自己的对接站的另一个原因,参见“小型Hexiwear对接站的原型”。 在本文中,我使用Segger J-Link因为其脚本功能使得批量编程多个单元变得容易:不仅用于恢复固件,而且还在多个设备上编程我们的自定义固件。 要编程二进制文件,我使用J-Link应用程序与批处理文件(.bat)和J-Link脚本文件(.script):
二进制文件 Segger J-Link支持二进制(bin)文件烧写。 有关如何创建二进制文件的信息,请参阅“使用Eclipse和GNU ARM Eclipse插件生成用于mbed Bootloader的二进制(和S19)文件”。 原来的MikroElektrtronika的二进制文件可以在GitHub上找到。 有两个二进制文件,一个用于恩智浦Kinetis K64F,另一个用于恩智浦Kinetis KW40:
恢复K64F的二进制文件 在恢复K64F的二进制文件时,使用以下DIP开关设置: ■ MK64F:两个开关都处于ON位置 ■ MKW40:两个开关都处于OFF位置
■ OSDA:OFF(禁用)
批处理文件包含以下内容,其中一个变量指向JLink可执行文件: - REM *******************************************************
- REM * Batch file to program a bin file with Segger J-Link *
- REM *******************************************************
-
- SET JLINK="C:\Program Files (x86)\SEGGER\JLink_V612\JLink.exe"
-
- %JLINK% -device MK64FN1M0xxx12 -CommanderScript ./jlink_k64f.script
- pause
复制代码上述批处理文件调用J-Link脚本jlink_k64f.script,该脚本使用二进制文件进行编程: - si swd
- speed 4000
- r
- h
- loadbin "HEXIWEAR_MK64.bin",0
- r
- exit
复制代码
要编程K64F器件,请运行批处理文件ProgrammWithJlink_K64F.bat 恢复KW40的二进制文件 为了恢复K64F的二进制文件,使用以下DIP开关设置: ■ MK64F:两个开关都处于OFF位置 ■ MKW40:两个开关都处于ON位置 ■ OSDA:OFF(禁用)
批处理文件包含以下内容,其中一个变量指向JLink可执行文件: - REM *******************************************************
- REM * Batch file to program a bin file with Segger J-Link *
- REM *******************************************************
-
- SET JLINK="C:\Program Files (x86)\SEGGER\JLink_V612\JLink.exe"
-
- %JLINK% -device MKW40Z160xxx4 -CommanderScript ./jlink_kw40.script
- pause
复制代码
上面的批处理文件调用J-Link脚本jlink_kw40.script,该脚本使用二进制文件进行编程: - si swd
- speed 4000
- r
- h
- loadbin "HEXIWEAR_KW40.bin",0
- r
- 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多链路 |