diff --git a/controller/fw/embed/test/st-link.py b/controller/fw/embed/test/st-link.py index ea50285..bbbf3b2 100644 --- a/controller/fw/embed/test/st-link.py +++ b/controller/fw/embed/test/st-link.py @@ -7,12 +7,11 @@ def flash_hex_with_stlink(hex_file_path): print(f"❌ Файл не найден: {hex_file_path}") return False - # ИСПРАВЛЕННАЯ КОМАНДА command = [ "st-flash", "--format", "ihex", "write", - hex_file_path # БЕЗ УКАЗАНИЯ АДРЕСА + hex_file_path ] try: @@ -22,10 +21,9 @@ def flash_hex_with_stlink(hex_file_path): stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, - timeout=30 # Таймаут 30 секунд + timeout=30 ) - # Вывод результатов print("▬▬▬ STDOUT ▬▬▬") print(result.stdout) @@ -34,6 +32,26 @@ def flash_hex_with_stlink(hex_file_path): if result.returncode == 0: print("✅ Прошивка успешно завершена!") + + # Добавленный блок сброса + try: + print("🔄 Выполняем сброс устройства...") + reset_result = subprocess.run( + ["st-info", "--reset"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + timeout=10 + ) + if reset_result.returncode == 0: + print("♻️ Устройство успешно сброшено!") + else: + print(f"⚠️ Ошибка сброса (код: {reset_result.returncode})") + print("▬▬▬ STDERR сброса ▬▬▬") + print(reset_result.stderr) + except Exception as e: + print(f"⚠️ Ошибка при сбросе: {str(e)}") + return True else: print(f"❌ Ошибка прошивки (код: {result.returncode})") @@ -57,4 +75,4 @@ if __name__ == "__main__": if flash_hex_with_stlink(sys.argv[1]): sys.exit(0) else: - sys.exit(1) + sys.exit(1) \ No newline at end of file