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, думал возможно это как то связано с прошивкой программатора, но так ничего у меня не получилось.
  



Comments (2)

    Hello,
    I do totaly agree with you about the STM32CubeProgrammer, I find it a very user frindly tool. However, about the issue you've mentionned with ST-LINK Utility, I think you are using an old version, I'm working with the v4.2.0, and there is no issue, besides it offers more useful features.

    When I encountered this problem, I first of all thought about it and updated both Stlink Utility and the programmer myself. The result is not given. Perhaps there is an error somewhere in the configuration files for STM32F030. Perhaps the latest version came out after I ran into this problem.

Отправить комментарий