[syntax=asm]00E51353 sub esp,0F0h [/syntax] Tutaj masz ustawiany rozmiar stosu na zmienne lokalne, dzieje się tak w każdej funkcji. Jest także ustawiana ramka stosu. Odnoszenie się do zmiennych odbywa się poprzez obliczanie ich pozycji względem wartości rejestru ebp. W linii (z włączonym "Show symbol names"): [syntax=asm]00E5136E mov dword ptr [i],2...
ad. 2. W asmemblerze MC68k :], a co? jak dowolny, to dowolny :] (asm x86 nie znam za bardzo) Założenia: argument funkcji podawany jest przez stos (wskaźnik stosu - rejestr A7, stos rośnie w dół) Wartość (wskaźnik) zwracana jest w rejestrze D0. Reszta rejestrów pozostaje niezmieniona. Za obsługę stosu odpowiada funkcja wywołująca, więc po powrocie z...
Troszkę za dużym ogólnikiem rzuciłem... Tak, stos to HW Stack (sprzętowy) i Soft Stack (programowy). Należało by zwiększyć rozmiar stosu sprzętowego, bo używasz przerwania od Trmer1. Wywołanie obsługi przerwania powoduje zajęcie 32 bajtów stosu (czyli tyle, ile masz zadeklarowane), a nie tylko do tego jest on używany. Możesz ustawić np. dwukrotnie więcej....
Witam Mam plobrem z odpaleniem w pełni możliwości programu z płyty DVD naszego kolegi pana Mirka. Plobrem polega na tym po naciśnięci klawisza na module ATB nie przychodzi informacja do programu TestyUDP. Obsługa LCD LED i Test portów daje transmisje 2 kierunkową. -Po naciśnięciu klawisza zapala się kontrolka na karcie ENC RX/TX. - Zapora i antywirus...
DIY Kiosk - czyli magazyn elektronika https://obrazki.elektroda.pl/3918509200_... https://obrazki.elektroda.pl/1971868000_... Na etapie budowy... Witam szanownych forumowiczów. Rok 2025 już za nami i jak to w zwyczaju bywa, warto mieć jakieś postanowienia noworoczne. Postanowiłem że nowy rok zacznę od uporządkowania...
Dokładnie tak robię i mimo tego LCD od iPhone 7 i 8 padają. Wyjdzie mi może 1 sztuka na 5. Dokleja się wszystko idealnie, ale skurczybyki padają. Próbowałem szyb z nałożonym już klejem OCA, ale efekt ten sam. Już trochę załamany jestem tą sytuacją... Co prawda iPhone'ow praktycznie nie robie, ale sugerujac sie chocby hmm to dziwne. Ja już nie wymieniam...
Chyba im mniejsza ramka tym lepiej.
Odpowiedź jest prosta (wykonanie niekoniecznie): trzeba zmodyfikować stos. Wyciąć ramki, które zostały utworzone po rozpoczęciu zadania, aktualną przesunąć i zmodyfikować adres powrotu z przerwania (albo aktualną też wyciąć i zrobić skok). Po powrocie przywrócić kontekst. Jest to oczywiście sposób niezalecany. Może pokaż kod... Coś takiego robi obsługa...
mirekk36 : ad 1/ Kod zerujący sekcję bss oraz ładujący sekcję data znajduje się gdzieś w okolicach .init3. Niestety kod zerujący sekcję bss już zakłada, że r1 jest równy zero, a więc z formalnego punktu widzenia zerowanie musi znaleźć się w .init0. Ze względu na obecność kodu zerującego bss oraz ładującego data stałymi z pamięci flash, skok do main...
To wyślij dwie identyczne, jedną ze swojego stosu i jedną z UIP i sprawdź czym się różnią bajt po bajcie. No wlasnie to zrobilem. Przez identycznosc struktury mialem na mysli ze nie roznia sie w ogole "bajt po bajcie" - nawet adresy IP sa takie same (oczywiscie dwa procki nie pracuja w tym samym czasie). Roznice wynikaja jedynie z innych identyfikatorow...
char tablica[ROZMIAR]; int i; for (i = 0; i < ROZMIAR; ++i) tablica[i] = ... Oczywiście ROZMIAR nie może być zmienną. Jesteś tego pewien? Ja zrobiłem u siebie mały test, w samym środku funkcji wstawiłem tablicę o rozmiarze ustalanym przez zmienną (nie można wartości ustalić w czasie kompilacji, sama tablica nie może być usunięta...
witam. Kol.Seb jeśli stosuje się zestaw podstawowych słów w bascomie, unikając gotowców i tworząc własne procedurki, to można napisać sensowny program i w bascomie tak jak w C i nie będzie robił dziwnych rzeczy. A co do pomocy w temacie to już ją uzyskałeś, tak jak napisano unikaj waitms itp. opóźnień, zrób sobie swoją pętlę opóźniającą w której coś...
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
Ramka DHCP potrzebuje trochę więcej niż 255 oktetów i po to mu jest potrzebny większy rozmiar ramki. Nigdzie nie pisze, że che więcej niż 1500. Co do stosu tuxgraphics.com nie pomogę, ale polecam coś co bardziej przypomina stos czyli uIP. W tym drugim przypadku już co nieco mogę podpowiedzieć.
Dzisiaj troszkę posiedziałem nad tymi stosami, zapoznałem się nieco z tym opracowaniem. Próbowałem również rozgryźć tabelkę "SRAM" w symulatorze bascom. Z opracowania i zachowania symulatora wydedukowałem że obszar w sram na $hwstack jest na najwyższych dostępnych adresach pamięci sram i zwiększa się on do dołu(niższych adresów), więc na początku metodą...
Zgodnie z sugestią: mam do zbudowania przyrząd pomiarowy do kontroli produkcji ramek z PS (tworzywo sztuczne). Ramki te posiadają niestety różną krzywiznę. Ramka musi być powieszona na "ścianie " i mierzona jest odległość od " ściany" do ramki w określonych punktach. Obecnie mierzy się to za pomocą podkładania stosu płytek wzorcowych. "Ściana "- w rozumieniu...
Witam W jednej wersji elektroniki zdarza mi się, że dostaję ramki z PHY z błędnym CRC. Generalnie kiedy elektronika i kabel są ok to błędów CRC nie miałem więc dla mnie ten problem to nowość. Ramki z błędnym CRC widzę w rejestrze: Ethernet MMC received frames with CRC error counter register (ETH_MMCRFCECR) W momencie jak przychodzi taka 'uszkodzona'...
Witam Wzorując się na jednym z przykładów chciałem wyświetlać dane z GPS. GPS działa poprawnie, wyświetla dane w oknie terminala. Podłączenie TX GPS z Rx AtMega nie powoduje żadnej reakcji $regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 ' predkość transmisji $hwstack = 64 ' rozmiar stosu sprzętowego $swstack = 64 ' rozmiar stosu programowego...
Phy rozumiem jako dostęp do medium (wysyłanie i odbieranie ramek), nagłówki Ethernet nie mogą być wyłuskane przez kontroler sieci - to jest pierwszy nagłówek zaraz po preambule, zawiera fizyczny adres docelowy (może być co najwyżej wykorzystywany przez kontroler sieci do ustalenia, czy ramka jest przeznaczona dla niego), źródłowy oraz id wyższego protokołu....
Cały cykl trwa u ciebie 59.7ms + 0.4ms czyli ramka jest wysyłana około 17 razy na sekundę. Pojedyncza ramka ma około 1500 bajtow więc wychodzi, że wysyłasz około 200 kbps (17 ramek * 1500 bajtów * 8 bitów). W dalszym ciągu nie jest to zabójczy transfer ale na pewno nie 1200B/s (przy okazji nie wiem jak mogło wyjść 1200 bajtów jeśli pojedyncza ramka...
AVE... Nie pisałem, to fakt. Ale powiedz szczerze, co trza zrobić by sprawdzić, czy serwer żyje? Trza wysłać jeden pakiet danych, dość konkretnie sformatowany, i odebrać jeden pakiet danych Właśnie, odebrać i policzyć kilka CRC. Łatwo to zrobić on line? Próbowałeś? Nie. Obierasz pakiet (do RAM0 i tam liczysz CRC i inne pierdoły. Ile ma ramka ETH? Wiesz?...
Orientuje się Ktoś może w którym miejscu w bibliotece tuxgraphix można się dowiedzieć z jakiego portu przyszły dane? Tak abym mógł je odesłać dokładnie na ten sam port. Nie wiem czy będzie się komuś chciało zaglądać do tego kodu ale załączam cały mój kod testowy. W ten sposób sprawdzam czy nadeszła jakaś ramka: [syntax=c]void UDP_EVENT(uint16_t *port)...
Witam Nie za bardzo wychodzi mi wykorzystanie z dwóch portów UART. UART sprzętowy odbiera ramki z modułu GPS ( Tx modułu do Rx AtMega32 ) i to działa. Działa do momentu gdy włączę UART sprzętowy ( tylko Rx na jednym z portów Atmega do Tx portu Com w komputerze - korzystam z przejściówki, ale to chyba nie problem ), wtedy informacje na LCD nie są aktualizowane...
Witam Mam program, który wyświetla na LCD współrzędne oraz prędkość ( prędkości jeszcze nie sprawdzałem w terenie ) oraz zapisuje na karcie SD. Na razie zapis na SD jest ręczny, przez przycisk. Chciałbym żeby zapis dokonywał się ze zmienną częstotliwością zależną od szybkości, (szybkość mam jako String i Integer), np: 0 km/h - co 30 minut 0- 10 km/h...
Czy naprawde nikt nie wie jak to podlaczyc? :) jak widac, najwyrazniej uklady sie roznia odrobine jesli chodzi o sterowanie poza MII. Twoje interface wydaje sie sprzetowo ok i poprawnie rozpoznales piny :) Jednak najwyrazniej nie dostaniesz PHY IRQ od ukladu RTL gdy pojawi sie ramka w buforze. Zas sygnal reset wysylany do RTL najlepiej wystawiaj na...
Witam, Jestem posiadaczem płytki ewaluacyjnej EVB 4.3 firmy And-TECH (z ATmega 644p) która działa razem z modułem AND-ETH V2 na którym uruchomiłem serwer HTTP autorstwa Bena Zijlstra: http://members.home.nl/bzijlstra/softwar... Płytka jako serwer działa poprawnie po zapytaniu GET wysyła strone w HTML. Teraz po krótkiej przerwie idąc...
Zmień rozmiar stosów i ramki
Bo trochę zajmuje stos i ramka. I na zmienne zostaje mniej niż 128B pamięci. W C sprawa wygląda tak samo tylko że kompilator C nie sygnalizuje błędu.
Powinieneś sobie sam "ręcznie" ustawić takie parametry jak: $hwstack = 32 $swstack = 8 $framesize = 16 bo to od nich m.inn zależy ile Bascom będzie zjadał pamięci RAM na Stos, ramkę itp
krzyfn : Jeśli funkcja potrzebuje miejsce na zmienne lokalne, to zaraz po skopiowaniu ESP do EBP zmniejszasz ESP np o 16 - zostanie przydzielone 16 bajtów lub inaczej mówiąc 4 DWORD'y dostępne przez Dodano po 14 Co do przekazywania wskaźnika - nie wiem w czym problem. Wskaźnik to nic innego jak zmienna zawierająca adres. Tak więc musisz pobrać ze stosu...
Potrzebuje odpowiedzi na pytania : 1)Działanie przerwania pseudoniemaskowalnego i co to jest 2)Ramka stosu podczas przerwania 3)Układy peryferyjne kontrolera 68HC11 4)Struktura wew 68HC12
Nie ma znaczenia jakiego protokołu użyjesz powyżej. Traktuj to jako kolejną warstwę stosu komunikacyjnego, która służy do dzielenia strumienia danych na poszczególne ramki.
zebrac 50-100 broadcastow UDP po 150 bajtow w 50-100ms Ale w czym problem. Pogubiłem się. Uzgodniliśmy że to są obiekty o dość dużej bezwładności, a na pewno dotyczy to pomieszczeń biurowych, jeden pomiar na minutę w zupełności wystarczy, dla innych urządzeń niech będzie to kilka kilkanaście sekund. Tyle masz czasu na reakcję. Chyba nie chcesz powiedzieć,...
http://www.elektroda.pl/rtvforum/topic74... ENC28J60 , stos na mikrokontrolerze sterujacym.
Na pierwszy ogień drastycznie zmniejszy Ci sie program jesli zamiast łączonych warunków przez "AND" rozbijesz je na dwa pojedyncze IF'y tylko UWAGA - te które nie mają w sobie "ELSE" - z else musisz zostawić jak jest, bo zaczną się cuda dziać :) EDIT: I jeszcze mi się przypomniało... jak nadal będzie ciasno to wszystkie flagi - zmienne typu BIT - zamień...
Zmienne lokalne są alokowane na stosie (w tzw. ramce stosu) w momencie wejścia do funkcji. Wtedy też odbywa się ich inicjalizacja - u Ciebie na wartość "...". A teraz zastanów się, w jaki sposób wartość wpisana do Sc przez strcpy pod WM_COMMAND mogłaby zostać wykorzystana pod WM_PAINT? W WndProc jest tylko switch, który raz przelatuje od góry do dołu...
Gdzie i jak masz obsługiwane przerwania? Jak wygląda sprawa stosów/ramki?
1. Modem musi mieć wbudowany stos TCP z obsługą przez komendy AT 2. Przy pomocy rozkazów AT nie można wysłać jednej ramki TCP. Można natomiast nawiązać połączenie TCP a następnie przesłać jakiś dane. 3. Nie istnieje jeden ustalony standard obsługi stosu TCP przez rozkazy AT. Różni producenci stosują różne rozwiązania. 4. Każdy modem GPRS pozwala na...
Witam Moze mi ktos wyjaśnic roznice miedzy FCS ktore jest dolaczane na koncu ramki Ethernetowej a Internetowa Suma Kontrolna CRC? Wiem ze pierwsza jest 4 bajtowa a druga 2 bajtowa. FCS to suma kontrolna calej ramki ethernetowej. Gdy karta sieciowa odbiera ramke to liczy sume kontrolna i porownuje z tym co jest na koncu. Suma kontrolna IP to jest protokol...
volatile stosowałbym w tym konkretnym przypadku (jak już wyjaśniłem) z powodów określonych w standardzie, ale nie tych, które zacytowałeś - w celu uniemożliwienia kompilatorowi usunięcia zmiennej w wyniku optymalizacji. Moim zdaniem w tym konkretnym przypadku zachodzi pewność, że ani nikt mi tej zmiennej nie zmodyfikuje, ani jej nie odczyta, więc (podkreślam...
Sprawdzam, co jest przydatne - x/0; daje "undefined operation" a nie "div by zero" Akurat ostatnio się tym bawiłem i aby dzielenie przez zero wywołało faulta (Usage Fault), to trzeba sobie to włączyć w odpowiednich rejestrach rdzenia. 1. Jak to się dzieje że r1 jest argumentem funkcji? Gdzie jest to opisane? r1 nie jest argumentem funkcji, tylko jej...
ustawiałem tam różne wartości rozmiarów stosu i ramki ale nic to nie daje. Może to racja że tak ma być, a może powinno się określić adres stosu na końcową część? Nic nie musi być.Nie po to symulator wypisuje ostrzeżenia , by je ignorować - to po pierwsze ;) Po drugie - w symulatorze jest zakładka uP i tam należy rzucić okiem na informacje , jakich...
Bardzo dziękuje za wytłumaczenie. W pliku pomocy Bascoma było zdecydowanie słabiej to wytłumaczone. Czyli jeśli by było +2 overlay to w nowa zmienna pomijała by pierwsze dwa bajty?. Kiedy można spodziewać się wyjaśnienia odnośnie ramki i stosu?.
zamiast funkcji [syntax=cpp]void move_lewo()[/syntax] musisz miec [syntax=cpp]void move_lewo(void* Args)[/syntax] void* to nie to samo co void. void oznacza brak, void* oznacza wskaznik na cokolwiek. void ma 0 bajtów void* ma rozmiar int (czasami bedzie 4 bajty czasami 8 bajtow) void* to sposób wskazników który nie ogranicza Cie w typach, może on wskazywać...
int *funkcja(int par1, int par2, int par3,int par4,int par5) { int wynik[2]; // jakieś tam obliczenia na przesłanych danych wynik[0]=2; wynik[1]=11; return wynik; } Na przyszkość: Zdecydowanie odradzam tego typu praktyki - tablica jest tworzona na stosie, z funkcji zwracasz wskaźnik, jeszcze poprawny, ale w...
Jeśli zaś wywołana funkcja wywołana nawet z takiej pętli będzie miała argument bez volatile to w odróżnieniu od pętli głównej main() która nie wie co się dzieje w komórce pamięci 0x0060 - to nasza funkcja otrzyma prawidłowy adres argumentu ! i na wejściu odczyta aktualną - zmienianą w przerwaniu wartość tej komórki. Absolutnie nie. To zależy od kompilatora...
właściwie pisząc stos opierałem się tylko i wyłącznie o rfc (o warstwie fizycznej też tam powinno być) i zrzuty z ethereal. jedynie podczas pisania sterownika do kontrolera sieci (odbieranie ramek i wysyłanie) spoglądałem w różne gotowce. Mówiąc o warstwie fizycznej dajesz do zrozumienia, że chcesz generować ramki i je odbierać programowo... niewiem...
Część zmiennych może trafić do rejestrów, o nich nie ma sensu mówić. Zmienne lokalne przydzielane są na stosie, tak więc nie ma mowy o pozostawaniu zmiennych - wychodząc z funkcji wskaźnik stosu jest przywracany do wartości z przed wywołania. Przy kolejnym wywołaniu funkcji zwolniona pamięć zostanie przydzielona innej funkcji. Patrząc w debugerze wydawać...
Pamięć wewnętrzna 2KB - 1514B na ramkę, reszta na stos. Sekcję data, bss oraz opcjonalną stertę wyrzucić do zewnętrznego ramu, chociaż nie wiem na czym niby polega trudność w rzutowaniu wskaźnika - pamięć i wewnętrzna i zewnętrzna są dostępne w dokładnie ten sam sposób. Co do odczytywania przy odbiorze i składania przy nadawaniu można wykorzystać dwie...
To rozumiem to tak że zmienna "i" jest już na stałe w pamięci i zadanie tej funkcji jest wykonywane najszybciej jak to możliwe Tak zmienna ma swoje stale miejsce w pamięci. Nie koniecznie wykonanie jest najszybsze bo najszybciej to działa jak zmienna jest w rejestrze procesora a globalną trzeba zapisać do pamięci przynajmniej przed wyjściem z funkcji...
analiza stosu deklaracja stosu pamięć stosu
ricoh reset bębna regulator fazowy triaku podłączyć nawigacja radio toyota
philips az1834 suszarka philips tylko zimnym
Sonda szczytowa detekcyjna: zasada działania i zastosowania Błąd po rozładowaniu baterii w Delta DVP-12SA