Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Szukam RTOS-SDK dla esp8266 w strszej wersji np. 2.0.0

tplewa 01 Apr 2022 06:23 273 5
  • #1
    tplewa
    Level 39  
    Witm

    Ot z racji kiepskiej dostępności podzespołów na rynku i leżących innych projektach wykopałem z czeluści szuflady ;) kupione dawno temu moduły - dla których jakoś nigdy nie znalazłem czasu. Są to moduły często opisywane jako ESP-07 choć z racji na pamięć 512K bardziej wyglądają na ESP-01.

    No i tutaj w obecnych czasach pojawia się problem. Obecne SDK w wersji 3.0 dość mocno się rozrosło, natomiast z starszymi jest kilka problemów.



    Na oficjalnym git-hubie np. dla wersji 2.0.0 brakuje w repozytorium biblioteki libhal (udostępnianej jako binarka), więc nie da się kompilować. Tak samo jest kilka problemów z najnowszym gcc (jaki zalecany jest do wersji SDK 3.x.x), a jak się skompiluje robiąc kilka poprawek to pojawiają się inne problemy. Natomiast brak utrzymywania na stronach dokumentacji do starszych wersji niz 3.x.x mocno wszystko komplikuje jak chce się w obecnych czasach użyć czegoś starszego aby zmieścić się w pamięci starych modułów.

    Udało się skompletować jakąś działającą wersję 1.5.0 beta (chyba pochodzi z PlatformIO)... W sumie post piszę po kilku dniach poszukiwań w internecie i teście różnych wersji jakie udało się zdobyć.

    No i tutaj pytanie może ktoś ma na dysku z dawniejszych czasów jakiś działający komplet gcc z RTOS-SDK (najchętniej 2.0.x ewentualnie 2.1.x) i byłby w stanie udostępnić ?

    Wersja 1.5.0 jakoś działa choć mimo działania np. przy obsłudze SPIFFS (dzialą ok) wali czasem na UART jakimiś dziwnymi błędami. Co prawda nie wpływają one na działanie ale wiadomo zapewne w nowszym SDK zapewne część problemów jakie mogą występować w/w wersji może być poprawiona.

    Na koniec wiem wiem są to tanie moduły i można zmienić pamięć lub kupić inne, jednak leży mi ich z 10 sztuk... Mam na nie pomysł, a spokojnie to co chcę zrobić upcham w tej pamięci co jest (mimo że sporą część jej zapewne zajmie samo SDK) - to tak odnośnie takich rad ;)
  • Helpful post
    #2
    khoam
    Level 41  
    tplewa wrote:
    Na oficjalnym git-hubie np. dla wersji 2.0.0 brakuje w repozytorium biblioteki libhal (udostępnianej jako binarka), więc nie da się kompilować.

    Źródła HAL dla Xtensa LX106 są tutaj: Link
  • #3
    tplewa
    Level 39  
    khoam wrote:
    tplewa wrote:
    Na oficjalnym git-hubie np. dla wersji 2.0.0 brakuje w repozytorium biblioteki libhal (udostępnianej jako binarka), więc nie da się kompilować.

    Źródła HAL dla Xtensa LX106 są tutaj: Link


    Dzięki za link ;) Właśnie trochę pogrzebałem zbudowałem sobie starsze gcc za pomocą crosstool-NG i zaczyna widać jakieś światełko w tunelu. Choć patrząc na całość nie wiedziałem że będzie tyle jaj ;) Próba dodania libstdc++ aby pisać w c++ (użyć np. std::map) to wielkie wyzwanie :) Chyba łatwiej pójść w stronę otwartych projektów w stylu esp-open-sdk czy esp-open-rtos bo tak to niezła rzeźba z linkerem, wycinaniem obiektów z bibliotek itd.

    Heh przynajmniej jakieś zajęcie człowiek ma :) a łatwiej było by w C to napisać jednak człowiek lubi sobie chyba szukać nowych problemów :crazyeyes:
  • #4
    khoam
    Level 41  
    PlatformIO wraz ze swoim toolchain wspiera RTOS-SDK dla ESP8266 w wersji 512k flash (jako ESP-01). Sądzę, że tak będzie łatwiej.
    Link
    Link
    Nie będzie też wtedy problemów z pisaniem w C++. Jest też możliwość "podpięcia" własnego, zmodyfikowanego toolchain.

    tplewa wrote:
    esp-open-rtos

    Jest nierozwijany od ponad 3 lat i niestety różni się od oficjalnego ESP8266 RTOS SDK dość znacznie.
  • #5
    tplewa
    Level 39  
    khoam wrote:
    PlatformIO wraz ze swoim toolchain wspiera RTOS-SDK dla ESP8266 w wersji 512k flash (jako ESP-01). Sądzę, że tak będzie łatwiej.


    Tutaj nie wiele to zmieni ;) bo będzie takie jak miałem :) czyli napisałem sobie klasę i się zdziwiłem po kompilacji że robią się problemy przy linkowaniu jak się doda libstdc++ gdzie pojawiają się konflikty. W zasadzie ze względu na rozmiar trzeba ją wpakować do flash, niestety chce dostępu do malloc ;) natomiast malloc jest w FreeRTOS w iram więc robi się problem. Trzeba by libstdc++ kompilować z -mlongcalls i rozwiązać jeszcze kilka innych konfliktów, czyli wspomniana rzeźba z wywalaniem obiektów i reorganizacją wszystkiego.

    W zasadzie te gcc co znalazłem i SDK chyba właśnie ktoś wyszarpał z PlatdformIO - patrząc na wersje i pliki :)

    W sumie na chwile obecną napisałem sobie to co miałem bez użycia std::map, string... Ale zapewne pobawię się i to jakoś razem posklejam jak zrobię to co mam zrobić (bardziej dla zabawy). W sumie z tego co patrzyłem nieźle porzeźbiona jest wersja Arduino (też podobne zabawy tzn. własny heap, wywalane obiekty które robiły konflikty - do tego zabawa z własnym yield itd.

    Co do esp-open-rtos to tak widziałem że to dość stare, ale jest tam jakąś podstawą by zobaczyć jak to można posklejać razem (patrząc na kod).
  • #6
    khoam
    Level 41  
    tplewa wrote:
    W sumie z tego co patrzyłem nieźle porzeźbiona jest wersja Arduino (też podobne zabawy tzn. własny heap, wywalane obiekty które robiły konflikty - do tego zabawa z własnym yield itd.

    Niestety Arduino Core dla ESP8266 jest zbudowane na NonOS SDK, nie RTOS SDK. W tym Core jest dużo "rzeźb".