Zaczynamy więc z pierwszą aplikacją. Ja zacznę od prostego przykładu, opartego na szablonie z VisualGDB.

Projekt rozpoczynamy od wybrania New -> Project -> Embedded Project Wizard. Wypełniamy ścieżki do katalogów, podajemy nazwę i idziemy dalej.

Odznaczamy budowanie dodatkowego pliku .bin (co u mnie nie działa, muszę później w ustawieniach projektu wyłączyć). Ja wybieram MSBuild, Makefile się u mnie nie kompiluje a i tak nie ma standardowych poleceń z ESP32 IDF (make menuconfig etc.).

Wybieramy urządzenie (ESP32) i idziemy dalej.

Po drodze projekt nam się wstępnie skompiluje (jest to tylko środowisko do budowania, jeszcze bez RTOS).

Na kolejnym kroku możemy wybrać jeden z czterech template przygotowanych przez SysProg. Wybierzmy sobie podstawowy Hello, World, jako że to nasz pierwszy program na ESP32 a tradycja bardzo dobre imię dal dziewczynki 🙂

Ostatni krok to wybranie debuggera sprzętowego jakiego będziemy używać. W tej chwili nie ma znaczenia, jako że żadnego (jeszcze) nie posiadam. Kliknięcie Finish stworzy nam projekt, który następnie zbudujemy.

Efektem naszego budowania powinien być wyświetlony Memory utilization report.

Co nasza pierwsza aplikacja robi? Zajrzyjmy w kod:

Jak widać nie za dużo. No dobra, może nie widać. Nie każdy miał do czynienia z FreeRTOS wcześniej 🙂

Ale jak miał do czynienia z jakimkolwiek programem w C pochodnych, to domyśli się co może robić:

  1. Wyświetla Hello world!
  2. Wchodzi w pętlę 10 iteracji, przy każdym jej obrocie:
    1. wyświetla za ile system zostanie zrestarowany
    2. usypia wątek na sekundę
  3. Wyświetla Restarting now.
  4. Restartuje procesor.

Całość operacji, oczywiście możemy podejrzeć w terminalu. Ustawienia terminala:

  • Port COM – port pod którym mamy naszą płytkę
  • Szybkość transmisji – 115200

Ja używam do tego celu PuTTY.

Wynik jaki powinniśmy otrzymać w terminalu powinien być zbliżony do poniższego:

W następnym wpisie zajmę się podstawami FreeRTOS.

 

UWAGA

Pamiętajmy o poprzednim wpisie, trzeba przestawić dwie flagi w ustawieniach projektu. Najlepiej przed pierwszą kompilacją, po przestawieniu i tak nam przebuduje całość 🙂