Главная » Микроконтроллеры
Призовой фонд
на декабрь 2017 г.
1. Спектроанализатор Arinst SSA-TG LC
Крокс
2. Термометр Relsib WT51
Рэлсиб
3. 1000 руб
PCBWay
4. 100 руб.
От пользователей

Похожие статьи:


IAR и STM32 CORTEX M0. Часть 0x04 Автоматизация прошивки IAR

Наверное, каждый хоть раз заглядывал в установочную папку Flash Loader Demo. Интересно же — вдруг там есть еще что вкусного. И что характерно, есть! Я говорю о консольном варианте утилиты — STMFlashLoader.exe. Передав ей соответствующие параметры, можно автоматом заливать прошивку прямо из IAR! Удобно, ведь, так что приступим.

1. Создаем рыбу в IAR
Тут все просто: Tools → Configure Tools... Далее нажимаем New:

iar-loader-1

В поле Menu Text придумываем какое-то осмысленное название тулзы, можно сильно не заморачиваться, все равно хоткей на нее вешать будем, я назвал Loader. Жмем ОК, пока тут нет ничего интересного.

2. Раскурка параметров STMFlashLoader.exe
Открываем командную строку, заходим в папку Flash Loader Demo и запускаем STMFlashLoader.exe, заставив программу отрыгнуть Usage:

iar-loader-2

Полный перевод всех параметров давать смысла не вижу, приведу лишь то, что нужно для наших целей:

-c — настройка com-порта, нас интересуют следующие аргументы:
--pn — после него пишем номер COM-порта
--br — скорость порта (baudrate), ставим такой же, какую использовали в гуевом варианте проги, я ставлю 115200
--to — время ожидания реакции мк, задается в мс, секунда-две — оптимально (хотя можно и меньше — на страх и риск)

-i — пишем имя девайса. Где взять? Все в том же гуевом варианте проги:

iar-loader-3

В нашем случае -i STM32F0_3x_16K
-e — очистить мк, -u — upload прошивки, -d — download прошивки. Если вы уже прошивали, то вероятно обратили внимание, что, вопреки здравому смыслу, с микроконтроллера на комп прошивку мы закачиваем (upload), а в микроконтроллер  скачиваем (download). То есть, для прошивки мк нам нужен параметр:
-d — загрузка прошивки на мк, аргументы:
--a — стартовый адрес, куда будем записывать; на картинке выше видно, что нулевой странице (Page0) соответствует адрес 8000000
--fn — полный путь к файлу прошивки (*,hex, *.bin, *.s19)
--v — проверить после прошивки, очень полезная фича, желательно всегда включат

Также параметр -e --all пригодится — лучше мк предварительно очищать.

Вот и все, можно писать батник. В качестве аргументов он будет принимать номер com-порта, имя девайса и полный путь к файлу прошивки. Кстати, о полном пути к прошивке, где его взять? В IAR на такой случай предусмотрены глобальные переменные. Найти их можно в мануале, а полный перевод представлен на странице microsin.net, позволю себе небольшую копипасту:

$CONFIG_NAME$ - Имя текущей, активной в настоящий момент конфигурации. К примеру, это может быть конфигурация Debug или Release.
$CUR_DIR$ - Текущая директория.
$CUR_LINE$ - Текущая строка.
$DATE$ - Сегодняшняя дата.
$EW_DIR$ - Директория верхнего уровня, в которой установлена система IAR Embedded Workbench, например это может быть каталог C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\.
$EXE_DIR$ - Каталог, куда попадает выходной двоичный исполняемый файл.
$FILE_BNAME$ - Имя файла без расширения.
$FILE_BPATH$ - Полный путь файла без расширения имени файла.
$FILE_DIR$ - Каталог активного файла (путь до файла без имени файла).
$FILE_FNAME$ - Имя активного файла без полного пути до него.
$FILE_PATH$ - Полный путь до активного файла (открытого в окне редактора Editor, окне проекта Project или окне сообщения Message).
$LIST_DIR$ - Папка, куда записываются файлы листинга компиляции.
$OBJ_DIR$ - Папка, куда записываются объектные файлы компиляции.
$PROJ_DIR$ - Корневой каталог проекта (папка, где лежит файл проекта с расширением *.ewp).
$PROJ_FNAME$ - Имя файла проекта без полного пути до него.
$PROJ_PATH$ - Полный путь до файла проекта (путь + имя файла).
$TARGET_DIR$ - Каталог главного выходного файла.
$TARGET_BNAME$ - Имя главного выходного файла без расширения и пути.
$TARGET_BPATH$ - Полный путь до главного выходного файла без расширения имени файла.
$TARGET_FNAME$ - Имя главного выходного файла без пути до него.
$TARGET_PATH$ - Полный путь до главного выходного файла.
$TOOLKIT_DIR$ - Каталог активного продукта, например это может быть папка C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\arm\.
$USER_NAME$ - Имя (логин) текущего пользователя системы Windows.
$_ENVVAR_$ - Значение переменной окружения ENVVAR. Будет подставлено значение переменной окружения с именем без префикса $_ и суффикса _$.

3. Пишем батник и прикручиваем его к IAR
Батник прост, как пять копеек:

@echo off
"C:\Program Files\STMicroelectronics\Software\Flash Loader Demo\STMFlashLoader.exe" -c --pn %1 --br 115200 --to 2000 -i %2 -e --all -d --a 8000000 --fn %3 --v
pause

Обратите внимание на значения аргументов %1, %2, %3. Это параметры, которые будет принимать наш батник. Вернемся к настройкам IAR:

iar-loader-4

В поле Command указывается полный путь к батнику, в поле Argument — аргументы, которые будем батнику скармливать (порт, девайс, путь к прошивке):

4 STM32F0_3x_16K "$EXE_DIR$\$PROJ_FNAME$.bin"

Теперь можно запустить Tools → Loader, но так не интересно, мы же автоматизировать решили. Так что заходим Tools → Options... → Key Bindings. Далее: Menu → Tools → Loader и выбираем удобное сочетание клавиш:

iar-loader-5

Теперь подключаем МК, жмем reset... В случае успешной прошивки будет следующее окно:

iar-loader-6

4. Заключение
Вот так, путем довольно простых манипуляций (они были простыми, ведь правда?) можно сэкономить себе кучу времени на прошивке микроконтроллеров. Ну а что проще: нажатие 2-3 горячих клавиш или куча манипуляций в графическом варианте прошивальщика — решать вам. Лично же у меня желания возвращаться к гуевому варианту нет совершенно.

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
iMAX B6 - зарядное для Lion, LiPo, LiFe, Pb, NiCd и NiMH аккумуляторов Сатфайндер
вверх