MIK32 Uploader - Скрипт для программирования памяти МК

Назначение

Скрипт предназначен для записи программ в различные типы памяти микроконтроллера MIK32:

  • ОЗУ

  • EEPROM

  • Внешнюю flash-память (через интерфейс SPIFI)

Репозиторий проекта: https://gitflic.ru/project/mikron-mik32/mik32-uploader

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

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

Системные требования

Операционные системы

  • Windows 7 и выше

Необходимое ПО

Использование

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

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="путь\к\настройкам\МК"

Параметры командной строки

Параметр Описание

filepath

Путь к файлу прошивки (обязательный)

-h, --help

Вывод справки

--run-openocd

Автозапуск OpenOCD

--use-quad-spi

Использование QuadSPI для flash

--openocd-host

Адрес OpenOCD (по умолчанию: 127.0.0.1)

--openocd-port

Порт TCL сервера (по умолчанию: 6666)

--adapter-speed

Скорость отладчика в кГц (по умолчанию: 500)

--openocd-exec

Путь к openocd.exe

--openocd-scripts

Путь к папке scripts

--openocd-interface

Конфиг интерфейса (по умолчанию: interface/ftdi/m-link.cfg)

--openocd-target

Конфиг МК (по умолчанию: target/mik32.cfg)

--open-console

Открыть консоль OpenOCD

-b, --boot-mode

Тип загрузочной памяти (undefined,eeprom,ram,spifi)

--log-path

Путь к лог-файлу (по умолчанию: nul)

--post-action

Команды после прошивки (по умолчанию: "reset run")

--no-color

Отключить цветной вывод (временно не работает)

-t, --mcu-type

Тип МК (MIK32V0,MIK32V2) (по умолчанию: MIK32V2)

Известные проблемы

Часть ошибок создают Exception, часть возвращают значение, необходима унификация.