Skocz do zawartości
tomek89mcpl

Programowanie ESP w "czystym" C

Pomocna odpowiedź

Napisano (edytowany)

Uwaga ten kurs NIE jest dla osób początkujących,słabo znających język C( wymagany poziom średnio-zaawansowany)!!!

 

Chciałbyś programować ESP w 'C' ? Zależy ci bardzo na optymalizacji ? Brakuje ci miejsca na twoim ESP ? A może chcesz nauczyć się czegoś nowego?

Jeśli tak to ten tutorial jest dla ciebie! 

W tej części tutorialu omówię jak skonfigurować Eclipse pod programowanie ESP8266 w 'czystym' C

No to zaczynamy

Zanim zaczniemy coś robić musimy upewnić się, że posiadamy kompilator GCC. Jeśli go nie mamy zainstalowanego to koniecznie trzeba zainstalować!

Pobieramy eclipse >>> Pobierz oraz toolchain do ESP >>> Pobierz

 

Jak nam się nam pobierze to najlepiej jest wypakować na 'Dysk C'

1.thumb.png.1c9de3697bf2e3f16e9e0b60216fd4c4.png

Importujemy projekt Hello_World z folderu Examples:

 

 

 

2.thumb.png.0307ed3d52d4ca50de4306b772346f67.png3.thumb.png.e39d12481b8173e04ed347bfcf26d009.png 

U mnie wyskoczył błąd, że w Workspace istnieje już projekt o tej samej nazwie, ale to tylko dlatego, ponieważ już wcześniej go zaimportowałem.

Teraz już wystarczy tylko skompilować ten projekt i go wgrać do naszego esp8266!

Powinniśmy jeszcze potem w właściwościach projektu ustawić (ustawić na inny make, jeśli nie mamy mingw32-make😞

1491052580_Takustawiamy.thumb.png.5d5b48fb466ab97d0c37d88354bcf577.png

 

 

Powinniśmy potem 2 razy nacisnąć na napis  all , który odpowiada za kompilację naszego projektu. 

7.thumb.png.02f7c3f1b9e603ea3e2308ea1d1f4830.png5.thumb.png.ff586844e5677526aa3895850ffdbac3.png

Po skompilowaniu otwieramy plik Makefile i edytujemy w nim dane potrzebne do wgrania na naszego ESP8266 projektu.

 

8.thumb.png.290644b641304a5f7c6e9c0b6651403c.png

I teraz już wystarczy znowu powtórzyć wcześniejszą czynność, tylko tym razem wybieramy napis flash.

7.thumb.png.02f7c3f1b9e603ea3e2308ea1d1f4830.png9.thumb.png.218394a4a802cb223ba78583eebee87c.png

Projekt powinien nam się wgrać(jeśli wyskakuje jakiś błąd przy wgrywaniu to  coś w Makefile jest źle ustawione ).

Teraz nasze ESP powinno wypisywać po UART 'Hello World', ale jeśli źle ustawimy częstotliwość naszego ESP to dostaniemy krzaczki na UART

 

10.thumb.png.0f28074456b8a8743540107ab1d4075c.png

 

Koniec tej części tutoriala. Jestem otwarty na krytykę, tylko proszę zwrócić uwagę, że jest to mój pierwszy taki post na tym forum.

W następnym tutorialu omówię strukturę projektu oraz w jaki sposób ESP8266 wykonuje nasz kod.

Edytowano przez tomek89mcpl
Dodanie dodatkowego ustawienia
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Przeniosłem do części przeznaczonej na artykuły użytkowników. Ciekawy materiał, czekamy na kolejną część 🙂 

Udostępnij ten post


Link to post
Share on other sites

U mnie wyskakują błędy:

Description    Resource    Path    Location    Type
Program "mingw32-make.exe" not found in PATH    hello_world             C/C++ Problem
Program "gcc" not found in PATH    wps        Project Properties, C++ Preprocessor Include.../Providers, [CDT GCC Built-in Compiler Settings MinGW] options    C/C++ Scanner Discovery Problem
Description    Resource    Path    Location    Type
Program "g++" not found in PATH    wps        Project Properties, C++ Preprocessor Include.../Providers, [CDT GCC Built-in Compiler Settings MinGW] options    C/C++ Scanner Discovery Problem

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

 

16 godzin temu, japko1024 napisał:

U mnie wyskakują błędy:

Description    Resource    Path    Location    Type
Program "mingw32-make.exe" not found in PATH    hello_world             C/C++ Problem
Program "gcc" not found in PATH    wps        Project Properties, C++ Preprocessor Include.../Providers, [CDT GCC Built-in Compiler Settings MinGW] options    C/C++ Scanner Discovery Problem
Description    Resource    Path    Location    Type
Program "g++" not found in PATH    wps        Project Properties, C++ Preprocessor Include.../Providers, [CDT GCC Built-in Compiler Settings MinGW] options    C/C++ Scanner Discovery Problem

Brakuje kompilatora na twoim komputerze. Musisz go zainstalować lub dodać ścieżke do zmiennej systemowej PATH( jeśli go masz), bo toolchain nie zawiera mingw32-make. Taki mały błąd się wkradł. Niedługo wydam nową wersje toolchaina bez tych błędów. Ale musisz przynajmniej teraz zastosować się do tego co napisałem.

Edytowano przez tomek89mcpl

Udostępnij ten post


Link to post
Share on other sites

Pobrałem instalator ze strony http://mingw.org/download/installer . Teraz otworzyło mi się okno MinGW Installation Manager. Mam do wyboru:

mingw-developer-toolkit-bin

mingw32-base-bin

mingw32-gcc-ada-bin

mingw32-gcc-fortran-bin

mingw32-gcc-g++-bin

mingw32-gcc-objc-bin

msys-base-bin

Które z nich zaznaczyć?

Udostępnij ten post


Link to post
Share on other sites
13 minut temu, japko1024 napisał:

Pobrałem instalator ze strony http://mingw.org/download/installer . Teraz otworzyło mi się okno MinGW Installation Manager. Mam do wyboru:

mingw-developer-toolkit-bin

mingw32-base-bin

mingw32-gcc-ada-bin

mingw32-gcc-fortran-bin

mingw32-gcc-g++-bin

mingw32-gcc-objc-bin

msys-base-bin

Które z nich zaznaczyć?

Dla bezpieczeństwa zaznacz wszystko, ale jeśli chcesz jak najmniej to tylko zaznacz te co daje mingw32-make ( sprawdź na stronie kompilatora co każde daje). 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Zainstalowałem wszystkie, ale nie mogę nigdzie znaleźć pliku mingw32-make.exe. W jakim folderze jest domyślnie instalowany? Dobrze rozumiem, że po znalezieniu ścieżki do tego programu muszę edytować zmienną środowiskową Path, wklejając ścieżkę do programu na końcu wartości zmiennej (oddzielając średnikiem od poprzedniej ścieżki)?

Już znalazłem, jest w C:\MinGW\bin . Edytowałem zmienną systemową Path (dodałem ścieżkę na końcu), ale nie pomogło. Pomyślałem, że jak Eclipse wyświetla nazwę "PATH", to musi być wielkimi literami, więc utworzyłem nową zmienną o tej nazwie, ale błąd dalej się wyświetla (nie ważne, czy ścieżka wprowadzona jako wartość tej zmiennej prowadzi do tego pliku, czy tylko do folderu).

Edytowano przez japko1024

Udostępnij ten post


Link to post
Share on other sites
Dnia 30.03.2020 o 23:40, japko1024 napisał:

Zainstalowałem wszystkie, ale nie mogę nigdzie znaleźć pliku mingw32-make.exe. W jakim folderze jest domyślnie instalowany? Dobrze rozumiem, że po znalezieniu ścieżki do tego programu muszę edytować zmienną środowiskową Path, wklejając ścieżkę do programu na końcu wartości zmiennej (oddzielając średnikiem od poprzedniej ścieżki)?

Już znalazłem, jest w C:\MinGW\bin . Edytowałem zmienną systemową Path (dodałem ścieżkę na końcu), ale nie pomogło. Pomyślałem, że jak Eclipse wyświetla nazwę "PATH", to musi być wielkimi literami, więc utworzyłem nową zmienną o tej nazwie, ale błąd dalej się wyświetla (nie ważne, czy ścieżka wprowadzona jako wartość tej zmiennej prowadzi do tego pliku, czy tylko do folderu).

To trochę dziwny problem, spróbuj poszukać w tym pliku czegoś co ma w nazie make np gnumake.exe, make.exe gcc-make.exe i itp. Jeśli to nie pomoże to będziesz musiał poczekać na dodatkową łatke do toolchaina( jak tylko on prawidłowo się skompiluje po formacie kompa).

 

Dnia 3.04.2020 o 18:41, tomek89mcpl napisał:

To trochę dziwny problem, spróbuj poszukać w tymfolderze czegoś co ma w nazwie make np gnumake.exe, make.exe gcc-make.exe i itp. Jeśli to nie pomoże to będziesz musiał poczekać na dodatkową łatke do toolchaina( jak tylko on prawidłowo się skompiluje po formacie kompa).

 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
3 minuty temu, japko1024 napisał:

Jest gnatmake.exe 😄 I co mam z nim zrobić?

Spróbuj tego użyć, zamiast mingw32-make daj tego swojego. Na wszelki wypadek sprawdź czy jest folder bin kompilatora dodany do ścieżki systemowej PATH

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Ale właśnie nie wiem, w jaki sposób go użyć zamiast tamtego. Muszę edytować makefile, czy coś innego?

Jednak w makefile nie ma nazwy tego programu ani razu.

Już zniknęły błędy, jak edytowałem zmienną PATH (żeby był sam folder, bez pliku), zrestartowałem Eclipse i kliknąłem 2 razy Build Targets/all w projekcie hello_world. Dzięki za pomoc 🙂 Nie mam niestety na razie ESP, żeby na nim przetestować, ale niedługo kupię i spróbuję.

Edytowano przez japko1024

Udostępnij ten post


Link to post
Share on other sites
8 minut temu, japko1024 napisał:

Ale właśnie nie wiem, w jaki sposób go użyć zamiast tamtego. Muszę edytować makefile, czy coś innego?

Jednak w makefile nie ma nazwy tego programu ani razu.

Jak coś, jutro rano dodam dodatkową rzecz w tym poradniku(na tym samym poście), która powinna być ale jej nie ma( konfiguracja projektu w eclipse)

Udostępnij ten post


Link to post
Share on other sites

Ten wątek powinni przeczytać wszyscy początkujący, którzy zastanawiają się nad wyborem Arduino IDE czy też może inne środowisko pracy.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
12 godzin temu, Belferek napisał:

Ten wątek powinni przeczytać wszyscy początkujący, którzy zastanawiają się nad wyborem Arduino IDE czy też może inne środowisko pracy.

Masz rację, dla początkujących może się okazać zbyt trudna nawet konfiguracja IDE Eclipse. Dodałem na samym początku ważną informację.

Edytowano przez tomek89mcpl

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Kupiłem już 2 moduły ESP8266 w wersji ESP-01 i programator USB CP2104. Próbowałem wgrać program hello_world (kliknąłem 2 razy flash), ale wyświetlił się błąd serial.serialutil.SerialException: could not open port 'COM2': WindowsError(2, 'Nie mo\xbfna odnale\x9f\xe6 okre\x9clonego pliku.'). Zanim usunąłem znak komentarza przed liniami ESPPORT i ESPBAUD w Makefile, był ten sam błąd, tylko wtedy próbował otworzyć port COM3. Nie pomogło zainstalowanie sterownika ze strony https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers (windows 8.1, bez seryjnej enumeracji, 64-bitowy - próbowałem później zainstalować dodatkowo wersję 86, ale wyświetliło się, że muszę 64). Dodam, że nie trzymałem przycisku reset ani nie robiłem żadnych zworek, bo wg sprzedawcy nie trzeba. Po podłączeniu zaświeciła się czerwona dioda na module ESP, przez chwilę na początku migała też niebieska, potem (w trakcie programowania) już nie, świeciła się cały czas tylko czerwona.

Już działa, zajrzałem do menedżera urządzeń - jest tam Porty (COM i LPT), a w środku Silicon Labs ... (COM3). Po zmianie w makefile portu na COM3 program się zainstalował i miga niebieską LED. W uCon wypisuje "hello world", w Realterm nie udało mi się skonfigurować, żeby poprawnie dekodował znaki.

Edytowano przez japko1024

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...