eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
Ilość wypowiedzi w tym wątku: 32

  • 11. Data: 2018-10-30 11:43:20
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Atlantis <m...@w...pl> napisał(a):
    > Dyskusja toczyła się parę wątków wyżej.
    > Tak naprawdę mój projekt jest modyfikacją tego kodu:
    > https://github.com/Spritetm/esphttpd

    Pamiętam, ale zawsze jest łatwiej gdy widzi się kompletny kod :)

    > Moje obawy budzi jednak jeszcze jeden fakt - biblioteki te odwołują się
    > m.in. do stdio.h, a z tego co kiedyś czytałem, na ESP8266 nie jest to
    > zalecane z uwagi na sposób w jaki biblioteka korzysta z funkcji
    > memloc(). Z tego co pamiętam w SDK udostępnione są zamienniki
    > najczęściej używanych funkcji z stdio i to z nich powinno się korzystać.

    Wcale nie tak rzadko korzysta się z zamienników standardowego stdio. Ze
    względu na ograniczenia mikrokontrolerów ludzie piszą swoje własne, np.
    tinyprintf http://www.sparetimelabs.com/tinyprintf/tinyprintf.p
    hp A nawet to
    standardowe stdio jest okrajane i np. wymaga dodatkowych przełaczników
    llinkera żeby działało %f

    > No i jak to już ktoś napisał. Może i ESP8266 jest popularną platformą,
    > ale nie wiem kto wpadł na tak idiotyczny pomysł, żeby umieszczenie
    > funkcji we flashu wymagało osobnego atrybutu, a domyślnie trafiała ona
    > do obszaru RAM-u o rozmiarze zaledwie 32kB...

    Być może jest to idiotyczne, ale z mojej przygody z Blackfinem pamiętam, że
    tam było tak samo :)

    > Nie wiem czy w chwili obecnej jedyną rozsądną alternatywą nie będą dla
    > mnie moduły od Microchipa. Są co prawda zauważalnie droższe, ale łatwo
    > zintegrować je z istniejącymi projektami opartymi na ENC28J60,
    > wykorzystującymi biblioteki MLA (z Harmony jeszcze nie
    > eksperymentowałem). Ten temat mam już w miarę rozpracowany. Może z
    > wyższą ceną związana będzie też nieco lepsza jakość?

    Gdybyś coś z nimi robił, to będe wdzięczny za podzielenie się wrażeniami na
    grupie.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 12. Data: 2018-10-30 11:52:52
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: cezar <c...@t...pl.nospam>

    On 30/10/2018 07:35, cezar wrote:
    > On 28/10/2018 07:26, Atlantis wrote:
    >> Szukam jakiejś alternatywy dla programowalnych modułów WiFi od
    >> Espressif. Microchip produkował kiedyś moduły WiFi na SPI, które można
    >> było podpiąć do mikrokontrolera. Niestety w chwili obecnej nie ma ich w
    >> polskich sklepach.
    >>
    >> Ostatnio natknąłem się na coś takiego:
    >> https://botland.com.pl/moduly-wifi/4390-modul-wifi-e
    mw3165-cortex-m4-.html
    >>
    >> https://elty.pl/pl/p/Modul-WiFi-EMW3165-Cortex-M4-ze
    wnetrzna-antena/1682
    >>
    >> Tutaj wersja "breadboard friendly", ze zintegrowanym programatorem:
    >> https://allegro.pl/wifi-mcu-stm32f4-wifi-broadcom-lu
    a-emw3165-i6052421775.html
    >>
    >>
    >> Z opisu wynika, że jest to STM32F4 zamknięty w jednym module z
    >> kontrolerem WiFi.
    >>
    >> Ktoś z Was się z tym zetknął? Istnieje możliwość programowania tego nie
    >> w języku Lua, ale normalnie, za pomocą kompilowanego kodu C? Istnieją
    >> jakieś biblioteki, które pozwoliłyby na obsłużenie modułu WiFi i
    >> realizację połączenia sieciowego w standardowy sposób, choćby za pomocą
    >> jakiegoś lwIP?
    >>
    >
    >
    > jest sporo alternatyw ale uwierz mi ze jezeli o wsparcie, community,
    > dokumentacje i mozliwosci to nie ma nic lepszego niz ESP8266 i ESP32
    >


    Jeszcze jedna zabawka, którą się bawiłem i działa wyśmienicie:


    https://labs.mediatek.com/en/chipset/MT7688#HDK

    Wersja bez atmela na pokładzie jest do dostania za 10-15 dolców.

    No ale bez 500mA nie podchodź....

    c.


  • 13. Data: 2018-10-30 12:43:17
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Marek <f...@f...com> napisał(a):
    > Nie wiem jak jest teraz ale jak rok temu intesowalem się ESP8266 i ESP32
    > to nigdzie nie mogłem znaleźć źródeł stosu tcpip używanego w tych mcu oraz
    > jaka jest organizacja softu.

    W przypadku ESP8266 używane jest lwip (źródła w SDK, katalog
    ESP8266_NONOS_SDK-2.1.0\examples\lwip_open_src_templ
    ate_proj\lwip\)

    > Wszędzie wyglądało, z user ładuje ttylko swój kod a reszta siedzi gdzieś w
    > środku, to mnie trochę zniechęciło, bo to wyglądało jak typowy blackbox.

    Pytanie czy rzeczywiście musisz mieć źródła wszystkiego i wszystko
    kontrolować. W wielu przypadkach tak formuła będzie ułatwieniem.

    > Jak jest teraz?

    Z tego co wiem to podobnie. Na ESP8266 była funkcja user_init() a na ESP32
    jest app_main(). Funkcje te inicjują Twój kod. Reszta Twojego kodu reaguje
    na zdarzenia. Można korzystać z FreeRTOS i tworzyć taski.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 14. Data: 2018-10-30 14:30:48
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: Marek <f...@f...com>

    On Tue, 30 Oct 2018 10:36:48 +0100, Atlantis <m...@w...pl>
    wrote:
    > przypisując funkcjom atrybutów ICACHE_FLASH_ATTR, przez co są one
    > umieszczane w RAM-ie.

    W jakim celu? Serio w zastosowaniu do httpd było to konieczne na tym
    mcu?

    --
    Marek


  • 15. Data: 2018-10-30 14:35:01
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: Marek <f...@f...com>

    On Tue, 30 Oct 2018 12:43:17 +0100, "Grzegorz Niemirowski"
    <g...@p...onet.pl> wrote:
    > Z tego co wiem to podobnie. Na ESP8266 była funkcja user_init() a
    > na ESP32
    > jest app_main(). Funkcje te inicjują Twój kod. Reszta Twojego kodu
    > reaguje
    > na zdarzenia. Można korzystać z FreeRTOS i tworzyć taski.

    To wiem, ale czy kod stosu tcpip jest linkowany za każdym razem z
    usercode i tak całość flashowana czy usercode jest osobno flashowany?

    --
    Marek


  • 16. Data: 2018-10-30 15:10:32
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: Atlantis <m...@w...pl>

    On 30.10.2018 14:30, Marek wrote:

    >> przypisując funkcjom atrybutów ICACHE_FLASH_ATTR, przez co są one
    >> umieszczane w RAM-ie.
    >
    > W jakim celu?  Serio w zastosowaniu do httpd było to konieczne na tym mcu?

    Pisząc poprzednią wiadomość popełniłem błąd. Atrybut ICACHE_FLASH_ATTR
    umieszcza funkcję we flashu. Wszystkie funkcje pozbawione tego atrybutu
    są po starcie programu kopiowane do RAM-u i wykonywane z niego. A
    przeznaczone jest na to tylko 32kB.

    Co więcej - z wygenerowanej mapy linkera wynika, że do RAM-u trafia
    także biblioteka standardowa i trochę funkcji systemowych. I prawdę
    mówiąc nie mam pojęcia czy i jak mogę coś z tym zrobić...


  • 17. Data: 2018-10-30 19:21:30
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: Zbych <a...@o...pl>

    Atlantis wrote on 30.10.2018 15:10:
    > On 30.10.2018 14:30, Marek wrote:
    >
    >>> przypisując funkcjom atrybutów ICACHE_FLASH_ATTR, przez co są one
    >>> umieszczane w RAM-ie.
    >>
    >> W jakim celu?  Serio w zastosowaniu do httpd było to konieczne na tym mcu?
    >
    > Pisząc poprzednią wiadomość popełniłem błąd. Atrybut ICACHE_FLASH_ATTR
    > umieszcza funkcję we flashu. Wszystkie funkcje pozbawione tego atrybutu
    > są po starcie programu kopiowane do RAM-u i wykonywane z niego. A
    > przeznaczone jest na to tylko 32kB.
    >
    > Co więcej - z wygenerowanej mapy linkera wynika, że do RAM-u trafia
    > także biblioteka standardowa i trochę funkcji systemowych. I prawdę
    > mówiąc nie mam pojęcia czy i jak mogę coś z tym zrobić...

    Sprawa wydaje się bardzo prosta do rozwiązania - trzeba zmienić skrypt
    linkera tak, żeby segment .text domyślnie był we flashu (40200000h) i
    tylko wybrane (krytyczne czasowo) funkcje miały atrybut umieszczający je
    w RAMie segmencie irom0.text (40100000) i jednocześnie we flashu jako
    dane inicjalizujące. Poprawki mogą też wymagać skrypty startowe
    przepisujące ten segment do RAMu.


  • 18. Data: 2018-10-31 10:44:42
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: Atlantis <m...@w...pl>

    On 30.10.2018 19:21, Zbych wrote:

    > Sprawa wydaje się bardzo prosta do rozwiązania - trzeba zmienić skrypt
    > linkera tak, żeby segment .text domyślnie był we flashu (40200000h) i
    > tylko wybrane (krytyczne czasowo) funkcje miały atrybut umieszczający je
    > w RAMie segmencie irom0.text (40100000) i jednocześnie we flashu jako
    > dane inicjalizujące. Poprawki mogą też wymagać skrypty startowe
    > przepisujące ten segment do RAMu.

    Problem polega na tym, że to chyba wykracza poza moje obecne
    umiejętności. Teoretycznie bawiłem się trochę skryptami linkera i kodem
    startowym, eksperymentując z 6502 i AT89SAM7, jednak to były absolutne
    podstawy. :)

    Spróbuję jednak poeksperymentować. Okazuje się, że to nie kompilowane
    pliki przeoczone przez autora biblioteki są źródłem problemu. Wszędzie
    gdzie się tylko dało dodałem ICACHE_FLASH_ATTR, funkcje trafiły do
    irom0.text, a jednak w niczym to nie pomogło. Zdecydowana większość
    sekcji .text jest zajmowana przez biblioteki wchodzące w skład SDK,
    które domyślnie są ładowane właśnie do RAM-u.
    Szybki research w sieci pokazuje, że nie jestem jedyną osobą, która
    natknęła się na ten problem. Ludzie ponoć modyfikują pliki bibliotek
    oraz skrypty linkera, aby funkcje trafiały tam, gdzie powinny.


  • 19. Data: 2018-10-31 11:56:50
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Atlantis <m...@w...pl> napisał(a):
    > Spróbuję jednak poeksperymentować. Okazuje się, że to nie kompilowane
    > pliki przeoczone przez autora biblioteki są źródłem problemu. Wszędzie
    > gdzie się tylko dało dodałem ICACHE_FLASH_ATTR, funkcje trafiły do
    > irom0.text, a jednak w niczym to nie pomogło. Zdecydowana większość
    > sekcji .text jest zajmowana przez biblioteki wchodzące w skład SDK,
    > które domyślnie są ładowane właśnie do RAM-u.
    > Szybki research w sieci pokazuje, że nie jestem jedyną osobą, która
    > natknęła się na ten problem. Ludzie ponoć modyfikują pliki bibliotek
    > oraz skrypty linkera, aby funkcje trafiały tam, gdzie powinny.

    Możesz zmienić SDK na takie, w którym jest odwrotnie :)

    https://github.com/SuperHouse/esp-open-rtos/wiki/ESP
    -SDK-Differences
    In Espressif's SDK, function code is stored in instruction RAM by default.
    As there is only 32KB of instruction RAM, most functions need annotating
    with the ICACHE_FLASH_ATTR attribute in order to move them to flash.

    In esp-open-rtos, function code is stored in flash by default. Code which
    need to be called very often with high performance, or which need to be
    called while flash is unmapped, can be annotated with the IRAM attribute
    defined in common_macros.h to store it in instruction RAM.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 20. Data: 2018-10-31 12:29:09
    Temat: Re: Alternatywa dla ESP8266/ESP32? Moduł EMW3165.
    Od: Atlantis <m...@w...pl>

    On 31.10.2018 11:56, Grzegorz Niemirowski wrote:

    > Możesz zmienić SDK na takie, w którym jest odwrotnie :)

    Pierwsze pytanie, a raczej wątpliwość: czy stosowane przeze mnie
    biblioteki (przede wszystkim ta do serwera http) będą zgodne z
    alternatywnym SDK?

    Po drugie, czy ta modyfikacja dotyczy tylko kodu użytkownika? Bo z tego
    co widzę, to u mnie głównym źródłem problemu są biblioteki z SDK, które
    linker umieszcza w RAM-ie.

strony : 1 . [ 2 ] . 3 . 4


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: