Для разработки встроенного программного обеспечения требуется много компонентов, включая кросс-тулчейн, систему сборки, такую как buildroot или YoCto Project, и инструменты отладки, такие как OpenOCD. После того, как вы их установили, разработка включает в себя несколько этапов: в том числе сборку кода, сохранение его на плате и затем запуск программы на целевой объект.
Google хотел бы сделать разработку встроенного программного обеспечения максимально простой, как веб-разработка, аналогично редактированию файла и запуску его в веб-браузере, поэтому они представили Pigweed – коллекцию встраиваемых целевых библиотек/модулей с открытым исходным кодом для упрощения процесса разработки для 32-разрядных микроконтроллеров, таких как STMicro STM32L452 или Nordic Semi nRF52832.
Pigweed стремится помочь на всех этапах процесса, включая настройку инструментов/среды, разработку программ и отправку кода.
Установка состоит из запуска сценария начальной загрузки, который автоматически устанавливает такие инструменты, как Python 3.8, формат clang и компилятор Arm, в виртуальной среде, чтобы оставить среду системы по умолчанию без изменений.
Существует несколько модулей разработки «pw_», таких как pw_watch от Pigweed, которые автоматически обнаруживают изменение файла, кросс-скомпилируют код, отправляют его к цели и запускают тестовый модуль. Это означает, что как только разработчик сохраняет файл, все происходит автоматически.
Работая в команде, люди обычно соглашаются со стандартом форматирования кода, но, по нашему опыту, не все могут захотеть изменить свои подходы или просто не убеждены в важности сохранения общего формата. pw_presubmit помогает с этой задачей, имея линтинг и автоматическое форматирование проверок перед осуществлением git.
Если вам интересно, почему Google выбрал имя Pigweed, вот объяснение:
Pigweed, также известный как амарант, является питательным зерном и зеленым листовым салатом, который также считается быстрорастущим сорняком. Разрабатывая проект, который в итоге стал Pigweed, мы хотели найти имя, которое было бы забавным, игривым и отражало то, как мы видели Pigweed. Команды начинали использовать один модуль, который привлекал их внимание, и когда все получилось, быстро начинали использовать больше.
Pigweed все еще находится на ранней стадии разработки и не будет использоваться для производства. Исходный код выпущен под лицензией Apache 2.0, и вы узнаете, как начать работу, и получите объяснения для всех модулей в файле README.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.