Достаточно давно перевёл на J-link встроенный в мою отладочную плату Discovery ST-Link. Но у меня также имеется давно купленный в комплекте с Blue Pill, маленький красненький ST-Link V2 присланный с Али много лет назад.
Вот думаю и его переделаю в J-Link, но не тут то было, программка STLinkReflash.exe выдала сообщение, что моё оборудование не поддерживается. Тогда я пустился в поиск решения и буквально сразу на одном из сайтов нашёл решение.
Суть в том, что берём оригинальный STLinkReflash.exe и открываем его на редактирование в любом HEX-редакторе. (Мне нравиться HxD) и по указанным адресам меняем следующие значения.
Адрес | Было | Стало |
2566 | 3C | 38 |
2567 | 40 | C0 |
26B2 | 3C | 38 |
26B3 | 4A | C0 |
Далее запускаем пропатченый STLinkReflash.exe, должно все пройти гладко. Иногда подвисает на приготовлении к прошивке, просто перезапустить повторно.
В результате получется вот так, Keil видит этот J-link
Если нужены МК не только от STM
Скачиваем и устанавливаем JLink_Windows_V632g.exe
- Идём в папку C:\Program Files (x86)\SEGGER\JLink_V632g
- Открываем на редактирование в Hex-редакторе JLink_x64.dll и меняем:
Адрес | Было | Стало |
00000000000128DD | 74 | EB |
000000000007F591 | 0F | E9 |
000000000007F592 | 85 | 2C |
000000000007F593 | 8F | 00 |
0000000000090CAE | 0F | E9 |
0000000000090CAF | 84 | B2 |
0000000000090CB0 | B1 | 00 |
3. Открываем на редактирование в Hex-редакторе JLinkARM.dll и меняем:
Адерес | Было | Стало |
0000000000011425 | 74 | EB |
0000000000072DD8 | 0F | E9 |
0000000000072DD9 | 85 | 2E |
0000000000072DDA | 90 | 00 |
0000000000082325 | 0F | E9 |
0000000000082326 | 84 | C0 |
4. Для того, чтоб Keil не ругался, копирум(с заменой) изменёные DLL-ки также в C:\Keil_v5\ARM\Segger
!Все эксперементы делаете на свой страх и риск!