Skip to content

cryptozoy/mik32-uploader

This branch is up to date with MikronMIK32/mik32-uploader:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

edd479f · Mar 17, 2025
Jan 16, 2025
Jan 16, 2025
Mar 16, 2025
Feb 13, 2025
Dec 27, 2024
Mar 17, 2025
Mar 17, 2025
Nov 14, 2024
Mar 14, 2025
Nov 18, 2024
Jan 16, 2025
Mar 14, 2025
Nov 5, 2024
Mar 17, 2025
Nov 18, 2024
Nov 18, 2024
May 24, 2023

Repository files navigation

Скрипт программирования памяти MIK32

Скрипт предназначен для записи программы в ОЗУ, EEPROM и внешнюю flash память, подключенную по интерфейсу SPIFI.

Предварительные требования

Требуется операционная система Windows версии >= 7 или macOS версии >= 10.9 или Linux.

Требуется версия Python >= 3.8 (https://www.python.org/downloads/).

Требуется версия OpenOCD >= 0.11.0 (https://github.com/xpack-dev-tools/openocd-xpack/releases).

Установка

Необходимо скачать или клонировать репозиторий программы, а также установить Python и OpenOCD 0.12.0.

Скрипт по умолчанию ищет исполняемый файл openocd по пути openocd\bin\openocd.exe относительно папки со скриптом.

Установка в PlatformIO

Клонировать ветку репозитория master в директорию tool-mik32-uploader в ~/.platformio/packages/, либо скачать Source Code последнего релиза и распаковать содержимое папки mik32-uploader-{версия} в директорию tool-mik32-uploader в ~/.platformio/packages/

Запуск программы

Минимальная команда для запуска:

python mik32_upload.py firmware_name.hex

Команда для запуска OpenOCD при запуске скрипта:

python mik32_upload.py firmware_name.hex --run-openocd --openocd-exec="путь\к\openocd.exe"  --openocd-scripts="путь\к\папке\scripts" --openocd-interface="путь\к\настройкам\отладчика" --openocd-target="путь\к\настройкам\МК"

Описание аргументов

positional arguments:
  filepath              Путь к файлу прошивки

optional arguments:
  -h, --help            show this help message and exit
  --run-openocd         Запуск openocd при прошивке МК
  --use-quad-spi        Использование режима QuadSPI при программировании внешней флеш памяти
  --openocd-host OPENOCD_HOST
                        Адрес для подключения к openocd. По умолчанию: 127.0.0.1
  --openocd-port OPENOCD_PORT
                        Порт tcl сервера openocd. По умолчанию: 6666
  --adapter-speed ADAPTER_SPEED
                        Скорость отладчика в кГц. По умолчанию: 500
  --openocd-exec OPENOCD_EXEC
                        Путь к исполняемому файлу openocd. По умолчанию: openocd\bin\openocd.exe
  --openocd-scripts OPENOCD_SCRIPTS
                        Путь к папке scripts. По умолчанию: openocd\share\openocd\scripts
  --openocd-interface OPENOCD_INTERFACE
                        Путь к файлу конфигурации отладчика относительно папки scripts или абсолютный путь. По
                        умолчанию: interface\ftdi\m-link.cfg
  --openocd-target OPENOCD_TARGET
                        Путь к файлу конфигурации целевого контроллера относительно папки scripts. По умолчанию:
                        target\mik32.cfg
  --open-console        Открывать OpenOCD в отдельной консоли
  --boot-mode {undefined,eeprom,ram,spifi}
                        Выбор типа памяти, который отображается на загрузочную область. Если тип не выбран, данные,
                        находящиеся в загрузочной области в hex файле отбрасываются. По умолчанию: undefined
  --log-path LOG_PATH   Путь к файлу журнала. По умолчанию: nul
  --post-action POST_ACTION
                        Команды OpenOCD, запускаемые после прошивки. По умолчанию: reset run
  -t {MIK32V0,MIK32V2}, --mcu-type {MIK32V0,MIK32V2}
                        Выбор микроконтроллера. По умолчанию: MIK32V2
  --no-driver           Отключает прошивку с использованием драйвера в ОЗУ

Принцип работы

Для работы скрипта требуется подключение по JTAG и отладчик, поддерживающийся OpenOCD.

Программа принимает образы программы в формате hex и записывает данные в память МК через контроллер SPIFI, путем записи команд и настроек в регистры блока. Тип памяти и способ записи выбирается по адресу байт в hex файле, поэтому требуется правильное расположение секций, заданное в ld скрипте.

Скрипт работает через OpenOCD, подключаясь через tcl сервер к уже запущенному openocd, подключенному к МК. Скрипт может запустить openocd самостоятельно.

Сборка в исполняемый файл

Для сборки в исполняемый файл и подготовки релиза используется модуль PyInstaller. Для его установки выполните команду:

pip install -U pyinstaller

Затем соберите программу с использованием файла с настройками mik32_upload.spec:

pyinstaller mik32_upload.spec

В директории ./dist будет создан каталог mik32_upload, содержащий исполняемый файл mik32_upload, папки _internal, openocd-scripts и upload-drivers, а также архив с названием mik32-uploader-{версия}.

Для указания версии программы следует изменить значение переменной applicaton_version в файле _version.py. При редактировании файла следует сохранять форматирование! Также потребуется изменить номер версии в файле .piopm uploader'а и platform.json платформы для корректной работы системы управления пакетами platformio.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 87.3%
  • Tcl 6.8%
  • C 5.9%