README.md

    Скрипт программирования памяти 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 3.8 и OpenOCD 0.12.0.

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

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

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

    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 в отдельной консоли
      -b {undefined,eeprom,ram,spifi}, --boot-mode {undefined,eeprom,ram,spifi}
                            Выбор типа памяти, который отображается на загрузочную область. Если тип не выбран, данные,
                            находящиеся в загрузочной области в hex файле отбрасываются. По умолчанию: undefined
      --log-path LOG_PATH   Путь к файлу журнала. По умолчанию: nul
      --post-action POST_ACTION
                            Команды OpenOCD, запускаемые после прошивки. По умолчанию: reset run
      --no-color            Вывод без последовательностей управления терминалом. Временно не используется
      -t {MIK32V0,MIK32V2}, --mcu-type {MIK32V0,MIK32V2}
                            Выбор микроконтроллера. По умолчанию: MIK32V2
    

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

    Для работы скрипта требуется подключение по 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, а также архив с названием mik32-uploader-{версия}.zip или mik32-uploader-{версия}.tar.gz.

    Для указания версии программы следует изменить значение переменной applicaton_version в файле _version.py. При редактировании файла следует сохранять форматирование!

    Описание

    Зеркало репозитория https://github.com/MikronMIK32/mik32-uploaderНазначение: собирать и хранить релизы для Arduino-IDE

    Релизы
    v0.2.1 2024-09-11
    Конвейеры
    0 успешных
    0 с ошибкой