STM32CubeProgrammer на замену ST-LINK Utility

Posted by Nosaer | Posted in , , ,

     В одной из моих разработок, служебные данные хранятся во внутренней Flash памяти микроконтроллера STM32. Периодически возникает необходимость, заменить одно устройство на другое, либо обновить прошивку. В этом случае, все служебные данные и настройки затрутся.
    Чтобы после перепрошивки или замене, новое устройство работало с теми же параметрами, что и предыдущие я решил вручную изменять все необходимые для меня значения по заданным адресам Flash памяти, благо их не так много.
    Подобная возможность есть в ST-LINK Utility. Просто подключаемся к устройству, забиваем необходимый адрес, загружаем страницу и в ручную двойным щелчком правим необходимые байты.
    К моему удивлению, подобное я смог провернуть только с контролером STM32F407, на моей отладочной плате Discovery.  Непосредственно в моих же устройствах используется STM32F030 и ST-LINK Utility наотрез отказывается править Flash в данном контроллере. Причем есть возможность изменять данные на N'ом количестве первых страниц, а на более старших страницах вадает ошибки: "Error occured during memory writing".
    В течении нескольких дней перелистывал мануалы, и менял настройки в ST-LINK Utility, задавал вопросы на форумах, но так и не смог реализовать задуманное. Но буквально дней 10 назад в ленте увидел анонс STM32CubeProgrammer. Название заинтересовало, к тому же я активно использую STM32CubeMX. Да и из описания следовало, что это своеобразная альтернатива ST-LINK Utility.
    Стянул установочник с официального сайта. Перед установкой попросила обновить Java до последней версии и предложила дополнительно поставить Trusted Package Creator.
После установки видим весьма дружелюбный и понятный интерфейс:
    Программатор моментально определился, нажимаю Connect и программа мне выдает ошибку, в которой говорит, что я использую старый программатор. Меняю китайский ST-Link на ST-Link, что стоит на плате Discovery, результат тот же.  Хотя прошивку на самом программаторе обновлял через ST-LINK Utility буквально месяц назад.
    Нажал  Firmware Upgrade, пару раз попросили переподключить программатор, и все. Свежая прошивка в программаторе. Нажимаю еще раз Connect, происходит подключение уже к моему устройству.
    На вкладке Device Memory загружается Flash моего контроллера. Первым же делом перехожу по интересующему меня адресу и пытаюсь изменить необходимые мне ячейки. И о чудо, у меня получается. Никаких ошибок, все данные в устройстве.
    STM32CubeProgrammer более читабельный интерфейс, в сравнении с той же ST-LINK Utility.  Так сказать все на виду. И что больше всего мне понравилось, так это описание всех Option Byte. Если в ST-LINK Utility мы видим просто окно со всякого рода значениями, и чтобы разобраться в них нужно лезть в документацию. То здесь напротив каждого значения есть краткое описание.
    И еще одним преимуществом для меня я считаю возможность выбора из всплывающего списка, программатора, с которым в данный момент необходимо работать. На тот случай, если их подсоединено несколько штук. В ST-LINK Utility, такой возможности не было и периодически у меня возникала путаница.
     П.С. Позже пробовал повторить тоже самое заново в ST-LINK Utility, думал возможно это как то связано с прошивкой программатора, но так ничего у меня не получилось.