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

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

В тестовой ветке Mik32ElfSupport появилась возможность работать с .elf файлами

Назначение

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

  • ОЗУ

  • EEPROM

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

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

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

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

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

  • Windows 7 и выше

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

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

Для работы утилиты требуется подключение к OpenOCD.

Если OpenOCD уже запущен и подключен к МК, а порт интерфейса Tcl оставлен по умолчанию (6666), достаточно запустить утилиту с минимальным набором аргументов:

python mik32_upload.py firmware_name.hex

Если OpenOCD не был запущен пользователем, утилита может запустить OpenOCD (аргумент --run-openocd) и подключиться к МК самостоятельно, если дополнить аргументы:

python mik32_upload.py firmware_name.hex --run-openocd --openocd-exec="path/bin/openocd.exe"  --openocd-interface="path/adapter.cfg" --openocd-target="path/mik32.cfg"

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

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

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, часть возвращают значение, необходима унификация.