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

Материал из MIK32 микроконтроллер
Нет описания правки
Строка 3: Строка 3:
Скрипт предназначен для записи программы в ОЗУ, EEPROM и внешнюю flash память, подключенную по интерфейсу SPIFI.  
Скрипт предназначен для записи программы в ОЗУ, EEPROM и внешнюю flash память, подключенную по интерфейсу SPIFI.  


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


Скрипт работает через OpenOCD, подключаясь через tcl сервер к уже запущенному openocd, подключенному к МК. Скрипт может запустить openocd самостоятельно.  
Скрипт работает через OpenOCD, подключаясь через tcl сервер к уже запущенному openocd, подключенному к МК. Скрипт может запустить openocd самостоятельно.  
Строка 17: Строка 17:
Необходимо скачать или клонировать репозиторий программы, а также установить Python 3.8 и OpenOCD 0.12.0.
Необходимо скачать или клонировать репозиторий программы, а также установить Python 3.8 и OpenOCD 0.12.0.


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


== Запуск программы ==
== Запуск программы ==
Строка 29: Строка 29:


=== Описание аргументов ===
=== Описание аргументов ===
<code>--run-openocd</code> - запуск openocd при прошивке МК
'''Текстом после знака "=" указаны значения по умолчанию.'''


<code>--use-quad-spi</code> - использование режима QuadSPI при программировании внешней флеш памяти. Использовать не рекомендуется, не дает значительного ускорения прошивки
<code>--run-openocd</code> - запуск openocd при прошивке МК;


<code>--openocd-host="127.0.0.1"</code> - адрес для подключения к openocd
<code>--use-quad-spi</code> - использование режима QuadSPI при программировании внешней флеш памяти. Использовать не рекомендуется, не дает заметного уменьшения времени прошивки;


<code>--openocd-port=6666</code> - порт tcl сервера openocd
<code>--openocd-host="127.0.0.1"</code> - адрес для подключения к openocd;


<code>--openocd-speed=500</code> - скорость отладчика в кГц, в текущей реализации не используется.
<code>--openocd-port=6666</code> - порт tcl сервера openocd;


<code>--keep-halt</code> - не запускать команду resume 0 после прошивки, ядро контроллера после прошивки будет остановлено
<code>--openocd-speed=500</code> - скорость отладчика в кГц, в текущей реализации не используется;


<code>--openocd-exec="openocd\bin\openocd.exe"</code> - путь к исполняемому файлу openocd
<code>--keep-halt</code> - не запускать команду resume 0 после прошивки, ядро контроллера после прошивки будет остановлено;


<code>--openocd-scripts="openocd\share\openocd\scripts"</code> - путь к папке scripts
<code>--openocd-exec="openocd\bin\openocd.exe"</code> - путь к исполняемому файлу openocd;


<code>--openocd-interface="interface\ftdi\m-link.cfg"</code> - путь к файлу конфигурации отладчика относительно папки scripts
<code>--openocd-scripts="openocd\share\openocd\scripts"</code> - путь к папке scripts;


<code>--openocd-target="target\mik32.cfg"</code> - путь к файлу конфигурации целевого контроллера относительно папки scripts
<code>--openocd-interface="interface\ftdi\m-link.cfg"</code> - путь к файлу конфигурации отладчика относительно папки scripts;
 
<code>--openocd-target="target\mik32.cfg"</code> - путь к файлу конфигурации целевого контроллера относительно папки scripts.

Версия от 10:24, 15 июня 2023

Репозиторий программы: https://github.com/MikronMIK32/mik32-uploader

Скрипт предназначен для записи программы в ОЗУ, EEPROM и внешнюю flash память, подключенную по интерфейсу SPIFI.

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

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

Предварительные требования

Поддерживаются ОС Windows 7 и выше.

Требуется Python 3.8 или более новый (https://www.python.org/downloads/)

Требуется OpenOCD 0.11.0, рекомендуется OpenOCD 0.12.0

Установка

Необходимо скачать или клонировать репозиторий программы, а также установить 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="путь\к\настройкам\МК"

Описание аргументов

Текстом после знака "=" указаны значения по умолчанию.

--run-openocd - запуск openocd при прошивке МК;

--use-quad-spi - использование режима QuadSPI при программировании внешней флеш памяти. Использовать не рекомендуется, не дает заметного уменьшения времени прошивки;

--openocd-host="127.0.0.1" - адрес для подключения к openocd;

--openocd-port=6666 - порт tcl сервера openocd;

--openocd-speed=500 - скорость отладчика в кГц, в текущей реализации не используется;

--keep-halt - не запускать команду resume 0 после прошивки, ядро контроллера после прошивки будет остановлено;

--openocd-exec="openocd\bin\openocd.exe" - путь к исполняемому файлу openocd;

--openocd-scripts="openocd\share\openocd\scripts" - путь к папке scripts;

--openocd-interface="interface\ftdi\m-link.cfg" - путь к файлу конфигурации отладчика относительно папки scripts;

--openocd-target="target\mik32.cfg" - путь к файлу конфигурации целевого контроллера относительно папки scripts.