Скрипт программирования памяти MIK32: различия между версиями
Sh-sergey (обсуждение | вклад) Нет описания правки |
Sh-sergey (обсуждение | вклад) |
||
Строка 31: | Строка 31: | ||
=== Описание аргументов === | === Описание аргументов === | ||
positional arguments: | |||
filepath - Путь к файлу прошивки | |||
options: | |||
<code>-- | <code>-h, --help</code> - show this help message and exit | ||
<code>--openocd | <code>--run-openocd</code> - Запуск openocd при прошивке МК | ||
<code>-- | <code>--use-quad-spi</code> - Использование режима QuadSPI при программировании внешней флеш памяти | ||
<code>-- | <code>--openocd-host OPENOCD_HOST</code> - Адрес для подключения к openocd. По умолчанию: 127.0.0.1 | ||
<code>--openocd- | <code>--openocd-port OPENOCD_PORT</code> - Порт tcl сервера openocd. По умолчанию: 6666 | ||
<code>-- | <code>--adapter-speed ADAPTER_SPEED</code> - Скорость отладчика в кГц. По умолчанию: 500 | ||
<code>--openocd- | <code>--openocd-exec OPENOCD_EXEC</code> - Путь к исполняемому файлу openocd. По умолчанию: openocd\bin\openocd.exe | ||
<code>--openocd- | <code>--openocd-scripts OPENOCD_SCRIPTS</code> - Путь к папке scripts. По умолчанию: openocd\share\openocd\scripts | ||
<code>-- | <code>--openocd-interface OPENOCD_INTERFACE</code> - Путь к файлу конфигурации отладчика относительно папки scripts или абсолютный путь. По умолчанию: interface\ftdi\m-link.cfg | ||
<code>-- | <code>--openocd-target OPENOCD_TARGET</code> - Путь к файлу конфигурации целевого контроллера относительно папки scripts. По умолчанию: target\mik32.cfg | ||
<code>--open-console</code> - Открывать OpenOCD в отдельной консоли | |||
<code>-b {undefined,eeprom,ram,spifi}</code>, <code>--boot-mode {undefined,eeprom,ram,spifi}</code> - Выбор типа памяти, который отображается на загрузочную область. Если тип не выбран, данные, находящиеся в загрузочной области в hex файле отбрасываются. По умолчанию: undefined | |||
<code>--log-path LOG_PATH</code> - Путь к файлу журнала. По умолчанию: nul | |||
<code>--post-action POST_ACTION</code> - Команды OpenOCD, запускаемые после прошивки. По умолчанию: reset run | |||
<code>--no-color</code> - Вывод без последовательностей управления терминалом. Временно не используется | |||
== Известные проблемы == | == Известные проблемы == | ||
* Часть ошибок создают Exception, часть возвращают значение, необходима унификация. | * Часть ошибок создают Exception, часть возвращают значение, необходима унификация. |
Версия от 10:47, 4 июля 2023
Репозиторий программы: https://github.com/MikronMIK32/mik32-uploader
Скрипт предназначен для записи программы в ОЗУ, EEPROM и внешнюю flash память, подключенную по интерфейсу SPIFI.
Для работы скрипта требуется подключение по JTAG и отладчик, поддерживающийся OpenOCD.
Программа принимает образы программы в формате hex и записывает данные в память МК через контроллер SPIFI, путем записи команд и настроек в регистры блока. Тип памяти и способ записи выбирается по адресу байт в hex файле, поэтому требуется правильное расположение секций, заданное в ld скрипте.
Скрипт работает через OpenOCD, подключаясь через tcl сервер к уже запущенному openocd, подключенному к МК. Скрипт может запустить openocd самостоятельно.
Предварительные требования
Поддерживаются ОС Windows 7 и выше.
Требуется Python 3.8 или более новый (https://www.python.org/downloads/)
Требуется OpenOCD 0.11.0, рекомендуется OpenOCD 0.12.0 (https://github.com/xpack-dev-tools/openocd-xpack/releases)
Установка
Необходимо скачать или клонировать репозиторий программы, а также установить Python 3.8 и OpenOCD 0.12.0.
Скрипт по умолчанию ищет исполняемый файл openocd по пути openocd\bin\openocd.exe
относительно папки со скриптом.
Запуск программы
Минимальная команда для запуска:
py mik32_upload.py firmware_name.hex
Команда для запуска openocd при запуске скрипта:
py mik32_upload.py firmware_name.hex --run-openocd --openocd-scripts="путь\к\папке\scripts" --openocd-interface="путь\к\настройкам\отладчика" --openocd-target="путь\к\настройкам\МК"
Описание аргументов
positional arguments:
filepath - Путь к файлу прошивки
options:
-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
- Вывод без последовательностей управления терминалом. Временно не используется
Известные проблемы
- Часть ошибок создают Exception, часть возвращают значение, необходима унификация.