logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[AVR][C] - stos TCP/zapytanie HTTP pod wskazany adres

mirekk36 30 Wrz 2010 15:06 2666 9
REKLAMA
  • #1 8568197
    mirekk36
    Poziom 42  
    Witam.
    Jakiś czas temu testowałem sobie różne stosiki TCP wraz z własnymi modyfikacjami. Teraz wróciłem do tematu ale troszkę mnie pamięć zawodzi.
    Ma ktoś może w ulubionych jakiś link do stosiku, który dałoby radę zastosować na AVR'ku ze scalaczkiem ENC28J60, tak żeby można było wysłać pod wskazany adres zapytanie HTTP.
    Potrzebuję tego głównie do takiego celu, żeby móc uruchomić jakiś skrypt PHP na jakimś moim serwerku www czyli wysłać prostą informację np:
    http://www.moj_serwer.pl/skrypcik.php?param=1
    Nie chodzi mi o jakiś gotowy kod czy przepis na to broń Boże.
    Czy ktoś podda mi jakieś linki gdzie można by obejrzeć jakieś przykłady, które chociaż częściowo zahaczają o ten temat?
    Please.
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #4 8568345
    michalko12
    Specjalista - Mikrokontrolery
    mirekk36 napisał:
    Dzięki, tyle, że to w C++ i na Arduino a narazie w ogóle nie znam tego środowiska. Chociaż przyznaję - bardzo fajnie to wygląda ;)

    Gdzie ty tam widzisz C++? A arduino to jest to samo co http://www.tuxgraphics.org/electronics/
  • #5 8568372
    mirekk36
    Poziom 42  
    michalko12 --> bardzo przepraszam , no moja wina, rzuciłem tylko pobieżnie okiem ale jak zobaczyłem, że arduino to jakoś od razu zamknąłem stronkę. Jakoś zawsze mi się to Arduino źle kojarzyło ale to na pewno dlatego, że nigdy się z tym nie zapoznałem.

    Czy znasz to i robiłeś coś w tym środowisku ? No i podstawowe dla mnie pytanie, jeśli oczywiście znasz i robiłeś coś w tym arduino

    "czy można sobie kod tam przedstawiany , biblioteki czy nie wiem jak to nazwać, zaimplementować u siebie w zwyłym GCC ??? "

    Dodano po 36 [minuty]:

    eeej ;) ... no teraz rzucam okiem dokładniej i widzę, że generalnie w środowisku arduino programuje się w C++ , przecież same pliki projektów mają rozszerzenie *.cpp

    tak czy inaczej widać źródła chyba więc nie będzie tak źle z wykorzystaniem tego mam nadzieję. A te dziwne pliki z rozszerzeniem *.pde ??? to jest już kod źródłowy pisany w środowisku zdaje się ?
  • Pomocny post
    #6 8568691
    michalko12
    Specjalista - Mikrokontrolery
    Teraz też zobaczyłem gdzie te c++ zobaczyłeś ;) *.cpp to to samo co *.c tyle że dla c++, ale tam tego c++ jest tyle co kot napłakał. Opakowali wszystko co związane z netem w klasę i cała różnica. Prawdopodobnie wystarczy zmienić rozszerzenie plików pde na c i powinno dać się kompilować pod gcc.
  • REKLAMA
  • #7 8568761
    mirekk36
    Poziom 42  
    no nawet nie podejrzałem tego PDE czymkolwiek a to rzeczywiście zwykły kod ;)

    wygląda zatem na to, że wszystko co potrzeba jest ... eeeh to dzisiejszy wieczór z nocką chyba mam zajęty

    znalazłem jeszcze ciekawy stosik "uip1.0" by Adam Dunkels ;) to też wygląda że tak powiem "pysznie" ;)

    jeszcze raz dzięki - będę miał czym się bawić dzisiaj
  • #8 8568812
    michalko12
    Specjalista - Mikrokontrolery
    Te uip już od kilku lat męczę ;) Przyjemnie się tego używa zwłaszcza jeśli zna się każda procedurę na wylot. Poprzerabiałem go pod kątem cortexa, 32bity i kilka procedur które dało zastąpić się kilkoma instrukcjami aseblerowymi jeszcze mam zamiar go tuningować ale na razie nie mam czasu. ;)

    Dla przykładu jedna z funkcji Trzeba wziąć pod uwagę że net jest big-endian a procesor litle-endian.

    void
    uip_add32(u8_t *op32, u16_t op16)
    {
      uip_acc32[3] = op32[3] + (op16 & 0xff);
      uip_acc32[2] = op32[2] + (op16 >> 8);
      uip_acc32[1] = op32[1];
      uip_acc32[0] = op32[0];
      
      if(uip_acc32[2] < (op16 >> 8)) {
        ++uip_acc32[1];
        if(uip_acc32[1] == 0) {
          ++uip_acc32[0];
        }
      }
      
      
      if(uip_acc32[3] < (op16 & 0xff)) {
        ++uip_acc32[2];
        if(uip_acc32[2] == 0) {
          ++uip_acc32[1];
          if(uip_acc32[1] == 0) {
    	++uip_acc32[0];
          }
        }
      }
    }


    unsigned long uip_add32(u32_t *op1, u32_t op2 )		
    {	
    	asm volatile(
    					" push	{lr}			\n"
    					" ldr	r0,[r0, #0]		\n"
    					" rev 	r0,r0			\n"
    					" add 	r0,r0,r1		\n"
    					" rev 	r0,r0			\n"
    					" pop	{pc}			\n"
    				);	
    }
    
    
  • REKLAMA
  • #9 8571630
    mirekk36
    Poziom 42  
    eeeh nie udało mi się na razie okiełznać uip :( ale za to, na bazie stosu z tuxgraphics, z pełnym powodzeniem odpalam skrypty PHP na werwerze www wraz z pięknym przekazywaniem parametrów do nich ;) ... teraz jeszcze pracuję nad tym aby móc odbierać odpowiedzi w procku po odpaleniu skryptu PHP

    a tak z ciekawości to co to za asembler w tej funkcji przerobionej? to coś z twojego Cortexa ?
  • #10 8571703
    michalko12
    Specjalista - Mikrokontrolery
    mirekk36 napisał:
    eeeh nie udało mi się na razie okiełznać uip :( ale za to, na bazie stosu z tuxgraphics, z pełnym powodzeniem odpalam skrypty PHP na werwerze www wraz z pięknym przekazywaniem parametrów do nich ;) ... teraz jeszcze pracuję nad tym aby móc odbierać odpowiedzi w procku po odpaleniu skryptu PHP

    a tak z ciekawości to co to za asembler w tej funkcji przerobionej? to coś z twojego Cortexa ?


    Dokładnie a dokładniej LM3S6965.
REKLAMA