Собираем
информацию
по крупицам

RSS подписка

Подпишитесь на новости сайта по RSS

Новости


Новости

Среда разработки VS Code + PlatformIO : находка для юного эмбендщика
07-04-2022
22:20:42

Находясь в отпуске, решил таки дать ума STM32-микроконтроллеру STM32F103C8T6, именуемому в народе голубой таблеткой (BluePill). В перспективе эта плата должна применяться в одном из проектов по модификации ретро-компьютера. А чтобы с платой можно было удобно работать, нужна хорошая среда разработки, она же IDE.

 

Поначалу я, как заядлый Qt-шник, решил разобраться, как можно работать с этой платой из хорошо знакомой мне среды QtCretor. И это приключение затянулось надолго... В конце концов я с этим вопросом разобрался, но в результате пришлось удостовериться, что особого изящества и удобства сопровождать Embedded-проект в Qt Creator не получится. Одно только то, что для старта проекта все равно потребуется проприетарная среда разработки STM32CubeIDE, переводит всю эту затею в весьма сомнительное удовольствие.

 

Поэтому я решил искать дальше, и попробовал связку Microsoft Visual Studio Code IDE + PlatformIO. Продукт от компании Microsoft, что интересно, бесплатен и имеет открытый код, распространяемый по лицензии MIT. А плагин PlatformIO тоже разрабатывается открытым сообществом. Так как я уже использовал VS Code в своем проекте Retrogram для написания шейдеров, то эта среда разработки уже была мне знакома. Оказалось, что достаточно добавить плагин PlatformIO, и получается современная и мощная среда Embedded-разработки, в которой все работает из коробки, даже отладка.

 

 

 

 

Так как моя плата STM32F103C8T6 оказалась китайской репликой, то пришлось немного поковыряться в настройках, но в конце концов все заработало. Чтобы не забыть, что и где пришлось настраивать, я написал статью:

 

 

Настройка VS Code + PlatformIO для программирования и отладки STM32F103 под Linux

 

 

Имея в руках такой прекрасный инструмент, можно было начать разбираться непосредственно с самим контроллером. Для реализации проектов необходимо было понять, какую максимальную скорость переключения пина можно получить на такой STM-ке. Попробовав несколько методов и разные библиотеки, я получил скорость (период переключения) равный 60нс (да, наносекунд). Сам код я тоже записал, чтобы не забыть:

 

 

Пример быстрого ногодрыганья на BluePill STM32F103C8T6 через CMSIS

 

 

Да, Embedded-разработка на ARM оказалась куда сложнее чем на AVR. Но, все проблемы рано или поздно решаемы. А наличие инструментов с открытым исходным кодом дает возможность не завязывать разработку на проприетарные решения, работу с которыми в любой момент могут заблокировать корпорации.

 



Поделиться этой страницей



Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (стр. 1)

База Rarrugas (стр. 1)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean (стр. 1)

База Аrmagedec

База SorokinRed

База Deadelf79

База Adgaver (стр. 1)

База Pipitos1983

База Soxsten (стр. 1)

База Silenn (стр. 1)

База Shlyapnikova - херомантия и ригидность

База Svoynickname (стр. 1)

База Larson227 (стр. 1)

База Velonski (стр. 1)

База BrokeRU (стр. 1)

База Mcold (стр. 1)

База Alensav (стр. 1)

База Consp11 (стр. 1)

База Kozlov-AE (стр. 1)

База Wwwlir (стр. 1)

База Duwaz (стр. 1)

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База RuDennn (Bunny-Hop)

База Manakaden

База Vitvrn

База Fanrok

База Grimar

База_Juryak

База Nicolasomsk

База Azatserikbaev

База Shut913

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик