Być może słyszeliście niedawno o Visual Studio Code (VSC). W ostatnim czasie dużo mówi się o tym IDE z wielu przyczyn. W minionych kilku latach Visual Studio Code stało się popularnym środowiskiem programistycznym w całej branży, także embedded. Jest to opcja do samodzielnej konfiguracji, można ją łatwo dostosować za pomocą rozszerzeń i poprawek. Visual Studio Code to ekscytujące środowisko dla twórców oprogramowania wbudowanego, którzy chcą oddzielić się od łańcuchów narzędzi dostawców mikrokontrolerów i ułatwić integrację z procesami CI/CD. W poniższym poście wymienione zostanie pięć wskazówek dotyczących programowania z wykorzystaniem Visual Studio Code. Pomogą one programistom oprogramowania wbudowanego w jak najlepszym wykorzystaniu VSC.
Porada 1 — zainstaluj odpowiednie rozszerzenia
Dostosowanie Visual Studio Code do własnych potrzeb zaczyna się od pobrania i zainstalowania adekwatnych dodatków. Istnieje mnóstwo pluginów, które stworzono do tego IDE. Pewne z nich są oficjalnymi narzędziami firmy Microsoft, inne pochodzą od różnych firm z branży systemów wbudowanych, a niektóre to po prostu doskonałe projekty hobbystyczne, które zostały otwarte i są utrzymywane przez niezależne zespoły.
Oczywiście jest to kwestia bardzo subiektywna, jakie dokładnie rozszerzenia są dla nas użyteczne. Jednakże programiści zajmujący się systemami wbudowanymi muszą zbadać, na przykład dodatki dla:
* Interakcji z mikrokontrolerem, takiej jak programowanie czy debugowanie;
* Podświetlania składni;
* Wsparcia dla narzędzi budowania wsadu;
* Formatowania i oceny jakości kodu/detekcji błędów;
* Rozszerzeń specyficznych dla konkretnych mikrokontrolerów.
Jednymi z ulubionych dodatków autora artykułu są:
* Embedded Tools;
* Cortex Debug;
* Github Copilot;
* Keil Studio Pack Extension;
* Docker.
Na rynku dostępna jest ogromna ilość rozszerzeń, z czego wiele dedykowanych do systemów wbudowanych. Dokładniejszy przegląd tych pluginów znaleźć można np. tutaj, w artykule pod tytułem: „Visual Studio Code Extensions for Embedded Software Development”. Z materiału wybrać można interesujące i potrzebne nam dodatki. Trzeba jednak pamiętać, że niekoniecznie niezbędne okażą się wszystkie opisane. Należy dobrać te, które sprawdzają się w naszym, konkretnym przypadku, a następnie wyłączyć lub odinstalować te niewartościowe.
Porada 2 — konfigurowanie preferowanego mapowania klawiatury
Po rozszerzeniach najlepszą rzeczą, jaką można zrobić, aby przystosować Visual Studio Code do własnych potrzeb, jest wybranie mapy skrótów klawiszowych, która najbardziej odpowiada naszym preferencjom czy przyzwyczajeniom. Większość programistów korzystała wcześniej z jakiegoś edytora tekstu, którego skróty są po prostu z czasem zakorzenione w ich pamięci mięśniowej. Visual Studio Code oferuje rozszerzenia umożliwiające dostosowanie skrótów do popularnych map klawiszy, takich jak znane z VIM, Sublime, Eclipse itp.
Można nawet mieć dziwne, dostosowane preferencje, jeśli mamy nietypowe wymagania lub nawyki. Na przykład autor tego artykułu lubi skróty do nawigacji po kodzie z Eclipse, ale te do edycji tekstu wielowierszowego woli w wersji znanej z Sublime Text. Kod programu Visual Studio umożliwia programistom zaadaptowanie poszczególnych klawiszy skrótów za pomocą menu Skróty klawiaturowe. (Mogą znajdować się w różnych miejscach w zależności od środowiska hosta. W przypadku autora było to w menu Kod->Ustawienia->Skróty klawiaturowe, ale w systemie Windows może to być np. Plik->Preferencje->Skróty klawiaturowe).
Dostosowywanie skrótów powinno być jedną z pierwszych rzeczy, które należy zrobić, aby środowisko Visual Studio Code było dla nas naturalniejsze w użytkowaniu i pozwalało na maksymalizację własnej wydajności. Bez tego wykonywanie operacji może być nieco irytujące.
Porada 3 — należy wykorzystywać terminal
Być może odpowiedni terminal jest jednym z najlepszych narzędzi, jakie można spożytkować jako programista. Visual Studio Code pozwala na dostęp do terminala z poziomu środowiska poprzez menu Terminal->Nowy terminal. Więc jedno z pierwszych działań, które można przeprowadzić, jest upewnienie się, że jest on w tle otwarty. Fajną rzeczą jest to, że można nawet stworzyć podzielony terminal, idealny do uruchamiania sesji debugowania GDB (jeśli chcemy robić to z jego poziomu).
Typowa konfiguracja polega na spakowaniu środowiska kompilacji do kontenera Dockerowego i uruchomieniu procesów i narzędzi do kompilacji z poziomu okna terminala. Ciekawą kwestią w tej konfiguracji jest to, że nie trzeba mieć otwartego kodu w jednym oknie, a terminala w innym. Zamiast tego można mieć obie te rzeczy w jednym, co sprawia, że wszystko jest bardzo wydajne. Często wykorzystujemy równolegle inny terminal, z którego inicjujemy np. polecenia skryptowe Pythona, więc podzielony pozwala szybko przechodzić pomiędzy poszczególnymi oknami tam i z powrotem.
Z terminala korzystać trzeba mądrze. Może być potężnym narzędziem dla programistów. Jeśli jednak nie czujecie się zbyt dobrze z tym instrumentem, istnieje szereg innych, które ułatwiają użytkowanie go. Na przykład niektóre z nich wyodrębniają szczegóły w terminalu, inne pomagają debugować, podświetlają składnię etc. Może to być pomocne, ale aby realnie debugować kod i zrozumieć, co dzieje się z systemem, trzeba od czasu do czasu przejść na najniższy poziom.
Porada 4 — dostosowanie konfiguracji uruchamiania narzędzi debugowania
Po napisaniu programu, który jest gotowy do przetestowania, budujemy go. A następnie wdrażamy aplikację lokalnie na hoście lub w docelowym systemie osadzonym. Konfiguracja uruchamiania programu Visual Studio Code informuje środowisko, co należy zrobić po zainicjowaniu całości. Środowisko to pozwala programistom na zaadaptowanie tej konfiguracji i tworzenie wielu własnych, w których edytować można różne parametry, dedykując system do sytuacji takich jak:
* Debugowanie na docelowej platformie;
* Zwolnienie platformy;
* Symulacje na hoście.
Na przykład dla płytki rozwojowej z układem STM32, gdy korzystamy z rozszerzenia Cortex-Debug, możemy w pliku launch.json zapisać takie dostosowania, że system będzie wskazywał na plik .elf z kodem do uruchomienia. A dalej wykonywał go w tworzonej aplikacji do wyznaczonego momentu, gdy zatrzyma się i przekaże zarządzenia do wybranego serwera debugowania. Konfiguracja wygląda następująco:
Nie trzeba jednakże ograniczać się tylko do jednej! Na przykład, gdyby w całości znajdowało się wiele systemów do debugowania lub różne rozszerzenia stosowane byłyby w zależności do okoliczności, można by uwzględnić dodatkowe konfiguracje, takie jak pokazana poniżej:
Istnieje wiele drobnych elementów, które można w ten sposób dostosować do naszych potrzeb, dzięki czemu środowisko Visual Studio Code sprawi, że poczujemy się jak w domu.
Porada 5 — poznawanie mniej znanych funkcji
W krótkim artykule można zawrzeć tylko tyle informacji na temat Visual Studio Code... Jest jednak wiele naprawdę fajnych opcji, jakie zapewnia to środowisko. Ostatnia z porad jest więc dosyć otwarta i zaleca zapoznawanie się z funkcjami oferowanymi przez VSC. Na przykład, jeśli mamy dwóch zdalnych programistów, którzy muszą sparować swój program lub współdziałać, można to z łatwością zrobić! Ponadto programista może zaprosić innego do sesji, a następnie zarówno edytować, jak i współpracować bezpośrednio w Visual Studio Code przy pisaniu kodu. To może pozwolić pokonać np. konieczność udostępniania ekranu przez zespoły lub wykorzystywania narzędzia typu Zoom, gdzie i tak tylko jedna osoba może dokonywać operacji na kodzie.
Kolejną funkcją, która wydaje się bardzo ciekawa, jest obsługa edycji wielowierszowej. Obecnie wspiera to więcej edytorów. Jednak istnieją funkcje, w których można liniowo edytować kilka wierszy lub znajdować określone słowa w pliku i zmieniać je wszystkie jednocześnie! Jest to o wiele lepsze, niż konieczność przejrzenia całego kodu, gdy chcemy zmodyfikować nazwę zmiennej. (Jeśli utrzymujemy krótkie funkcje i niewielkie moduły, to i tak warto korzystać z takich narzędzi, mimo iż to trywialny problem!).
Podsumowanie
Visual Studio Code może zapewnić zespołom zajmującym się oprogramowaniem wbudowanym konfigurowalną i elastyczną przestrzeń programistyczną wykraczającą poza możliwości oferowane przez np. Eclipse. Każdy programista może dostosować swoje środowisko do własnych preferencji i potrzeb przy zachowaniu procesów zespołowych. Obsługa oprogramowania wbudowanego, zwłaszcza debugowania, jest opóźniona względem innych środowisk, ale stało się oczywiste, że wielu dostawców już postrzega Visual Studio Code jako krytyczne narzędzie wsparcia. Wskazówki, które omówione zostały w tym artykule, powinny pomóc rozpocząć pracę z danym instrumentem w możliwie efektywny sposób, jednakże najlepszym sposobem na opanowanie VSC jest korzystanie z niego i napisanie kodu!
Źródło: https://www.embedded.com/5-visual-studio-code-tips-for-embedded-developers/
Porada 1 — zainstaluj odpowiednie rozszerzenia
Dostosowanie Visual Studio Code do własnych potrzeb zaczyna się od pobrania i zainstalowania adekwatnych dodatków. Istnieje mnóstwo pluginów, które stworzono do tego IDE. Pewne z nich są oficjalnymi narzędziami firmy Microsoft, inne pochodzą od różnych firm z branży systemów wbudowanych, a niektóre to po prostu doskonałe projekty hobbystyczne, które zostały otwarte i są utrzymywane przez niezależne zespoły.
Oczywiście jest to kwestia bardzo subiektywna, jakie dokładnie rozszerzenia są dla nas użyteczne. Jednakże programiści zajmujący się systemami wbudowanymi muszą zbadać, na przykład dodatki dla:
* Interakcji z mikrokontrolerem, takiej jak programowanie czy debugowanie;
* Podświetlania składni;
* Wsparcia dla narzędzi budowania wsadu;
* Formatowania i oceny jakości kodu/detekcji błędów;
* Rozszerzeń specyficznych dla konkretnych mikrokontrolerów.
Jednymi z ulubionych dodatków autora artykułu są:
* Embedded Tools;
* Cortex Debug;
* Github Copilot;
* Keil Studio Pack Extension;
* Docker.
Na rynku dostępna jest ogromna ilość rozszerzeń, z czego wiele dedykowanych do systemów wbudowanych. Dokładniejszy przegląd tych pluginów znaleźć można np. tutaj, w artykule pod tytułem: „Visual Studio Code Extensions for Embedded Software Development”. Z materiału wybrać można interesujące i potrzebne nam dodatki. Trzeba jednak pamiętać, że niekoniecznie niezbędne okażą się wszystkie opisane. Należy dobrać te, które sprawdzają się w naszym, konkretnym przypadku, a następnie wyłączyć lub odinstalować te niewartościowe.
Porada 2 — konfigurowanie preferowanego mapowania klawiatury
Po rozszerzeniach najlepszą rzeczą, jaką można zrobić, aby przystosować Visual Studio Code do własnych potrzeb, jest wybranie mapy skrótów klawiszowych, która najbardziej odpowiada naszym preferencjom czy przyzwyczajeniom. Większość programistów korzystała wcześniej z jakiegoś edytora tekstu, którego skróty są po prostu z czasem zakorzenione w ich pamięci mięśniowej. Visual Studio Code oferuje rozszerzenia umożliwiające dostosowanie skrótów do popularnych map klawiszy, takich jak znane z VIM, Sublime, Eclipse itp.
Można nawet mieć dziwne, dostosowane preferencje, jeśli mamy nietypowe wymagania lub nawyki. Na przykład autor tego artykułu lubi skróty do nawigacji po kodzie z Eclipse, ale te do edycji tekstu wielowierszowego woli w wersji znanej z Sublime Text. Kod programu Visual Studio umożliwia programistom zaadaptowanie poszczególnych klawiszy skrótów za pomocą menu Skróty klawiaturowe. (Mogą znajdować się w różnych miejscach w zależności od środowiska hosta. W przypadku autora było to w menu Kod->Ustawienia->Skróty klawiaturowe, ale w systemie Windows może to być np. Plik->Preferencje->Skróty klawiaturowe).
Dostosowywanie skrótów powinno być jedną z pierwszych rzeczy, które należy zrobić, aby środowisko Visual Studio Code było dla nas naturalniejsze w użytkowaniu i pozwalało na maksymalizację własnej wydajności. Bez tego wykonywanie operacji może być nieco irytujące.
Porada 3 — należy wykorzystywać terminal
Być może odpowiedni terminal jest jednym z najlepszych narzędzi, jakie można spożytkować jako programista. Visual Studio Code pozwala na dostęp do terminala z poziomu środowiska poprzez menu Terminal->Nowy terminal. Więc jedno z pierwszych działań, które można przeprowadzić, jest upewnienie się, że jest on w tle otwarty. Fajną rzeczą jest to, że można nawet stworzyć podzielony terminal, idealny do uruchamiania sesji debugowania GDB (jeśli chcemy robić to z jego poziomu).
Typowa konfiguracja polega na spakowaniu środowiska kompilacji do kontenera Dockerowego i uruchomieniu procesów i narzędzi do kompilacji z poziomu okna terminala. Ciekawą kwestią w tej konfiguracji jest to, że nie trzeba mieć otwartego kodu w jednym oknie, a terminala w innym. Zamiast tego można mieć obie te rzeczy w jednym, co sprawia, że wszystko jest bardzo wydajne. Często wykorzystujemy równolegle inny terminal, z którego inicjujemy np. polecenia skryptowe Pythona, więc podzielony pozwala szybko przechodzić pomiędzy poszczególnymi oknami tam i z powrotem.
Z terminala korzystać trzeba mądrze. Może być potężnym narzędziem dla programistów. Jeśli jednak nie czujecie się zbyt dobrze z tym instrumentem, istnieje szereg innych, które ułatwiają użytkowanie go. Na przykład niektóre z nich wyodrębniają szczegóły w terminalu, inne pomagają debugować, podświetlają składnię etc. Może to być pomocne, ale aby realnie debugować kod i zrozumieć, co dzieje się z systemem, trzeba od czasu do czasu przejść na najniższy poziom.
Porada 4 — dostosowanie konfiguracji uruchamiania narzędzi debugowania
Po napisaniu programu, który jest gotowy do przetestowania, budujemy go. A następnie wdrażamy aplikację lokalnie na hoście lub w docelowym systemie osadzonym. Konfiguracja uruchamiania programu Visual Studio Code informuje środowisko, co należy zrobić po zainicjowaniu całości. Środowisko to pozwala programistom na zaadaptowanie tej konfiguracji i tworzenie wielu własnych, w których edytować można różne parametry, dedykując system do sytuacji takich jak:
* Debugowanie na docelowej platformie;
* Zwolnienie platformy;
* Symulacje na hoście.
Na przykład dla płytki rozwojowej z układem STM32, gdy korzystamy z rozszerzenia Cortex-Debug, możemy w pliku launch.json zapisać takie dostosowania, że system będzie wskazywał na plik .elf z kodem do uruchomienia. A dalej wykonywał go w tworzonej aplikacji do wyznaczonego momentu, gdy zatrzyma się i przekaże zarządzenia do wybranego serwera debugowania. Konfiguracja wygląda następująco:
Kod: JSON
Nie trzeba jednakże ograniczać się tylko do jednej! Na przykład, gdyby w całości znajdowało się wiele systemów do debugowania lub różne rozszerzenia stosowane byłyby w zależności do okoliczności, można by uwzględnić dodatkowe konfiguracje, takie jak pokazana poniżej:
Kod: JSON
Istnieje wiele drobnych elementów, które można w ten sposób dostosować do naszych potrzeb, dzięki czemu środowisko Visual Studio Code sprawi, że poczujemy się jak w domu.
Porada 5 — poznawanie mniej znanych funkcji
W krótkim artykule można zawrzeć tylko tyle informacji na temat Visual Studio Code... Jest jednak wiele naprawdę fajnych opcji, jakie zapewnia to środowisko. Ostatnia z porad jest więc dosyć otwarta i zaleca zapoznawanie się z funkcjami oferowanymi przez VSC. Na przykład, jeśli mamy dwóch zdalnych programistów, którzy muszą sparować swój program lub współdziałać, można to z łatwością zrobić! Ponadto programista może zaprosić innego do sesji, a następnie zarówno edytować, jak i współpracować bezpośrednio w Visual Studio Code przy pisaniu kodu. To może pozwolić pokonać np. konieczność udostępniania ekranu przez zespoły lub wykorzystywania narzędzia typu Zoom, gdzie i tak tylko jedna osoba może dokonywać operacji na kodzie.
Kolejną funkcją, która wydaje się bardzo ciekawa, jest obsługa edycji wielowierszowej. Obecnie wspiera to więcej edytorów. Jednak istnieją funkcje, w których można liniowo edytować kilka wierszy lub znajdować określone słowa w pliku i zmieniać je wszystkie jednocześnie! Jest to o wiele lepsze, niż konieczność przejrzenia całego kodu, gdy chcemy zmodyfikować nazwę zmiennej. (Jeśli utrzymujemy krótkie funkcje i niewielkie moduły, to i tak warto korzystać z takich narzędzi, mimo iż to trywialny problem!).
Podsumowanie
Visual Studio Code może zapewnić zespołom zajmującym się oprogramowaniem wbudowanym konfigurowalną i elastyczną przestrzeń programistyczną wykraczającą poza możliwości oferowane przez np. Eclipse. Każdy programista może dostosować swoje środowisko do własnych preferencji i potrzeb przy zachowaniu procesów zespołowych. Obsługa oprogramowania wbudowanego, zwłaszcza debugowania, jest opóźniona względem innych środowisk, ale stało się oczywiste, że wielu dostawców już postrzega Visual Studio Code jako krytyczne narzędzie wsparcia. Wskazówki, które omówione zostały w tym artykule, powinny pomóc rozpocząć pracę z danym instrumentem w możliwie efektywny sposób, jednakże najlepszym sposobem na opanowanie VSC jest korzystanie z niego i napisanie kodu!
Źródło: https://www.embedded.com/5-visual-studio-code-tips-for-embedded-developers/
Fajne? Ranking DIY
