From 537deb8860e747ced06feeba67771e9c4abdda4c Mon Sep 17 00:00:00 2001 From: Sergey Shchelkanov Date: Mon, 19 Aug 2024 14:24:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c6bd245 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# Скрипт программирования памяти 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 самостоятельно.