Наверное, каждый хоть раз заглядывал в установочную папку Flash Loader Demo. Интересно же — вдруг там есть еще что вкусного. И что характерно, есть! Я говорю о консольном варианте утилиты — STMFlashLoader.exe. Передав ей соответствующие параметры, можно автоматом заливать прошивку прямо из IAR! Удобно, ведь, так что приступим.
1. Создаем рыбу в IAR
Тут все просто: Tools → Configure Tools... Далее нажимаем New:
В поле Menu Text придумываем какое-то осмысленное название тулзы, можно сильно не заморачиваться, все равно хоткей на нее вешать будем, я назвал Loader. Жмем ОК, пока тут нет ничего интересного.
2. Раскурка параметров STMFlashLoader.exe
Открываем командную строку, заходим в папку Flash Loader Demo и запускаем STMFlashLoader.exe, заставив программу отрыгнуть Usage:
Полный перевод всех параметров давать смысла не вижу, приведу лишь то, что нужно для наших целей:
-c — настройка com-порта, нас интересуют следующие аргументы:
--pn — после него пишем номер COM-порта
--br — скорость порта (baudrate), ставим такой же, какую использовали в гуевом варианте проги, я ставлю 115200
--to — время ожидания реакции мк, задается в мс, секунда-две — оптимально (хотя можно и меньше — на страх и риск)
-i — пишем имя девайса. Где взять? Все в том же гуевом варианте проги:
В нашем случае -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:
В поле Command указывается полный путь к батнику, в поле Argument — аргументы, которые будем батнику скармливать (порт, девайс, путь к прошивке):
4 STM32F0_3x_16K "$EXE_DIR$\$PROJ_FNAME$.bin"
Теперь можно запустить Tools → Loader, но так не интересно, мы же автоматизировать решили. Так что заходим Tools → Options... → Key Bindings. Далее: Menu → Tools → Loader и выбираем удобное сочетание клавиш:
Теперь подключаем МК, жмем reset... В случае успешной прошивки будет следующее окно:
4. Заключение
Вот так, путем довольно простых манипуляций (они были простыми, ведь правда?) можно сэкономить себе кучу времени на прошивке микроконтроллеров. Ну а что проще: нажатие 2-3 горячих клавиш или куча манипуляций в графическом варианте прошивальщика — решать вам. Лично же у меня желания возвращаться к гуевому варианту нет совершенно.
Комментарии (0) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация