Warto też zminimalizować liczbę priorytetów przerwań, najlepiej jeśli się da do 2. Wówczas część stosu wymagana do ich obsługi się zmniejszy kosztem pewnego opóźnienia. ISR handlery zwykle nie potrzebują dużo lokalnej pamięci, lwią część stanowią przechowywane rejestry, w praktyce zakładam 128 bajtów/poziom. Co do badania zapotrzebowania na stos części...
Najpierw opiszę objaw, domniemaną przyczynę a potem poprosze o rade: Mam program który pożera mi większość RAM, głównie za sprawą dużych buforów między innymi na dane pochodzące z 2 UART-ów (atmega 162) i innych zadeklarowanych tablic. Generalnie wszystko jest OK jednak kiedy powięszam wielkość zajętej pamieci RAM , tak gdzieś do zużycia jej w 80% program...
Witaj, Z tego co widzę to jakaś komercyjna wersja ide do LPC-ków bazująca na eclipse. Nie napisałeś jakiego kompilatora używasz. Informacje o wykorzystaniu ramu znajdziesz w *.map pliku lub po wykorzystaj plik kompilatora size do określenia zajętości obszaru pliku wynikowego. Naturalnie ja mam na myśli kompilator gnu gcc. Co do stosu to w gcc jest tak...
1. Na stos , a czasami nawet 2 stosy trzeba poznaczyć jakiś obszar RAMU. Stos jest umieszczany zaraz za danymi czyli sekcjami data i bss. Rosnąc w dół może wejść na dane. Dlatego należy przewidzieć wystarczający rozmiar stosu(ów). Na temat zarządzania stosami i błędami można doktoraty pisać. Temat rzeka i do prostych nie należy. 2. Rozmiar zajętości...
Trzeba też pamiętać, żeby zostawić trochę pamięci - od końca w dół rośnie stos.
nie znalazłem gotowej funkcji w gcc do odczytania wolnej / zajętej pamięci, więc próbowałem napisać własną - w tym problem jednak, że malloc(10000) radośnie działa, mimo, że proc ma 1kB ramu, sprawdzanie adresu też niewiele daje: w pętli alokuje po 100 bajtów mallokiem i za każdym razem sprawdzam, czy mogę do zaalokowanego adresu coś zapisać i czy przy...
8 zadań? A czemu tak dużo? Założe się że można to skutecznie zoptymalizować, np przenosząc zadania o niskim priorytecie do IddleHook (np miganie diodkami). Na stronie freeRTOS jest krótki poradnik jak optymalizować aplikacje pod względem szybkości i zajętości ramu.
Nie ma takiej zależności. Jeśli nie korzystasz z dynamicznej alokacji pamięci to możesz to bardzo zgrubnie oszacować po ilości zmiennych automatycznych (lokalnych), a szczególnie tablic. To co czyni takie oszacowanie szczególnie trudnym to określenie stopnia zagnieżdżenia funkcji - bo to zajmuje sporo pamięci na stosie. A zależy to od ilości przerwań,...
A jeśli chodzi o obliczenia, to dlaczego największą wartością utworzonej tablicy jest w tym przypadku =18323 (jaką można skompilować) Z obliczeń: 46+80+18323+stos(1024) jest mniej od RAM mojego procka =20kB (stm32f103c8t6). zainteresuj się tą flagą linkera -print-memory-usage Możesz coś więcej powiedzieć ? Bo dopiero raczkuję ;) PS: Tylko dlaczego w...
Witam, Noszę się z zamiarem zbudowania urządzenia odpowiadającego za kontrolę zajętości (wykrywanie pociągu) na makiecie kolejowej. W torach w zależności od rodzaju makiety występuje albo prąd zmienny albo stały, jednak o zmiennej polaryzacji. Zastanawiam się nad zastosowaniem do tego celu transoptora, obsługującego zmienne napięcie wejściowe np.: pc814....
W ramie masz stos od końca jak ci przykrywa stos danymi tak będzie . Zobacz czy nie zgubiłeś gdzieś instrukcji pop . Często jest tak że programiści odkładają dane na stos a potem o nich zapominają i stos rośnie ...
Dzięki Paweł - tak to sobie mniej więcej wyobrażałem tylko ze nie dał bym rady tego zrobić - brak mi i przyżądów i wiedzy do analogowych konstrukcji dlatego szukałem "cyfrowego" sposobu . Mam już ten scalak i sprawę filtrów wzmacniaczy itp. mam załatwioną Wchodzę sygnałem (z trafa) do scalaka i na wyjściu mam "1" - kę jeśli sygnał na linii jest większy...
Kiedyś zrobiłem taki system jak opisany niżej i działa bez problemu: Jest jedno nadrzędne urządzenie, nazwijmy Master i kilkanaście urządzeń podrzędnych, nazwijmy Slave. Master cyklicznie odpytuje kolejne Slave, jaka jest ich potrzeba przejęcia magistrali. Jednostką była ilość urządzeń do których dany Slave potrzebował przesłać dane. Jednocześnie w...
Marico ma rację - jednak zostają śmieci, oczywiście zgodnie z tym co napisał... w tym FLASH trzeba umieścić CRC, który to CRC zmieni zawartość FLASH To jest akurat stosunkowo proste - wartość CRC jest zapisana jako string, poprzedzony odpowiednim prefixem. Wystarczy go odszukać w pamięci i pominąć podczas liczenia CRC. Faktem jest natomiast, że jest...
Po co wyważać otwarte drzwi? Są gotowe "czujniki obecnoćci pasażera na przednim fotelu". Najczęściej wykonane w postaci maty z połączonymi szeregowo czujnikami tensometrycznymi. Nacisk pasażera na tensometry skutkuje zmianą oporności, co przekłada się na opóźnienie czasu zwłocznego, po którym odpalana jest poducha .Jest to . m. innymi po to , aby pasażer...
Witam! Eclipse Kepler Sourcery CodeBench Lite 2011.09-69 OpenOCD 0.6.1 STM32F103ZET6 Szablon projektu - Freddie Chopin Do tej pory wszystkie projekty na STM32 działały dobrze jednak teraz buduję większa aplikację i pojawiają się problemy. Objawia się to losową zmianą wartości zmiennych np. zadeklarowanych jako const czy przerwaniem __Default_Handler....
Tue Feb 14 22:19:46 2012: The stack 'CSTACK' is filled to 100% (1024 bytes used out of 1024). The warning threshold is set to 90.% Na powyższy błąd natknąłem się, gdy zacząłem używać biblioteki fatfs. Nie mam pojęcia, skąd się może brać. Zwiększenie zajętości stosu nie następuje w miejscach, które mogłyby mieć coś wspólnego z odkładaniem czegoś na stos....
Problem z przepełnianiem stosów wynika z istnienia stosów zadań, które trzymają zmienne i stan zadań. Systemy zdarzeniowe wolne są od tej wady RTOSów. ;) Ogólnie RTOS jest pomysłem na to, jak zrobić kilka "pętli głównych", czyli jest to odpowiedź na problem programistów, którzy "zawiesili się" na koncepcji pętli zdarzeń. Tymczasem wystarczy "rozciąć"...
Postaram się dołączyć wtc do kodu. Myślałem jeszcze o pamięci. Może potestować za pomocą MemoryFree ? Aby naprawdę dowiedzieć się ile max jest zajmowane pamięci, należy wypełnić ją jakąś wartością od wierzchołka sterty do końca stosu a później sprawdzać. Wynika to z tego, ze tak jak zajętość ram na zmienne i stertę można dość łatwo poznać, to zajętość...
Niniejsze ćwiczenie ma na celu praktyczne zastosowanie metodologii tworzenia oprogramowania za pomocą ADT oraz zapoznanie się ze sposobem implementacj struktur wiązanych (dynamicznych, rekurencyjnych). Zadaniem jest zaimplementowanie kolejki priorytetowej w postaci ADT za pomocą jednej z wybranych list: jednokierunkowej lub dwukierunkowej, uporządkowanych...
Wciąż nie rozumiem do końca... LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n", length)); //LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=hu)\n"));//Moja modyfikacja - powyższa linijka powodowała hard fault Jak odkomentujesz tą drugą linijkę to się wykrzacza tak? Czy może wykrzacza się jak zakomentujesz pierwszą...
Nie wiem jak Tobie ale w c mi wychodzi 526 taktów - czy prędkość ta jest wystarczająca? 526 taktów to bardzo dużo jak na takie operacje. Ale nie dziwota skoro kolega np w pętli for używa dla zmiennej "i" zmieniającej swoją wartość w zakresie od 0 do 8 czyli wystarczyłby jeden BAJT. Tymczasem kolega niefrasobliwie dobiera sobie typ int (DWA BAJTY) -...
Wykonałem prosty test. Użyłem możliwie najprostszej funkcji callback dla timera: Stoi na 5µs. Czasem pik do 8 góra 10 Co najmniej pięciokrotnie dłużej się wykonuje, ale to już zostawiam Tobie do dalszej analizy. Jeżeli ten callback ma faktycznie się wykonywać co 111µs, to jego czas wykonania nie powinien przekraczać 10µs - tak, aby dać...
Ponieważ nie miałem nigdy kamery w monitoringu, to jeszcze podpytam i proszę się nie śmiać ;-) Zdecydowałem na 100% na H.265, przy Synology daje to bardzo dobre wyniki jeśli chodzi o zajętość dysku w stosunku do H.264. Kamera z tym kodekiem jest nieco droższa, więc odrzuciłem raczej kamery z zoom-em i ptz. Moje pytania : - czy jest sens przy moim podwórku...
microG mniejsze a co z % zajętością RAM w stosunku do Gapps
W momencie, gdy je złożę i załaduję do arduino zostaje przydzielony mac, ip, odnalezione ip serwera, na którym stoi mysql i wykryty czujnik BME280. W tym momencie wyświetla się Connecting... i koniec. Czy sprawdzałeś, jak wygląda zajętość SRAM w trakcie działania programu? Obie biblioteki korzystają również ze sterty, oprócz stosu, więc tu może być...
Może trochę spróbuję podsumować, bo, sądząc z pytań, odpowiedzi kolegow powyżej, aczkolwiek poprawne, moga być na nieco zbyt wysokim poziomie abstrakcji :) 1. Stałe są umieszczane w pamięci programu, a nie pamięci danych. 2. AVR gcc preferuje umieszczanie stałych wewnątrz kodu rozkazu umieszczającego ją w rejestrze. Krócej się nie da, bo załadowanie...
(at)Mscichu Nie wiem jak z zajętością RAM w sowim systemie stoisz ale to: [syntax=c] FIL fil; /* File object */ TCHAR line[512]; /* Line buffer */ [/syntax] zajmuje na dzień dobry ponad 1KB stosu.
Stosunkowo szybkim sposobem wyliczenia sekwencji punktów funkcji sinus/cosinus jest całkowanie równania różniczkowego układu drgającego bez tłumienia metodami numerycznymi (np. RK-4, czy Adamsa). x''=-ax przy warunku x(0)=0 ; x'(0)=1 Wyliczenie kolejnego punktu to kilka mnożeń i dodawań. W przypadku 32-bitowej reprezentacji stałoprzecinkowej ta metoda...
2 linia -bez promocji 122 zł w promocji 1,22 zł z chwilą instalacji 2 lini deklarujesz jaki abonament reflektujesz materialy odnosnie lini abonenckich-parametry wysłalem :) ale jeszcze tu podaje moze komus sie przyda Sygnalizacją nazywamy proces nadawania, przesyłania i odbioru sygnałów sterujących. Z punktu widzenia sterowania, sygnalizację można podzielić...
A moje pytanie, czy przy takim algorytmie, pomimo tego że nie wykorzystuje przerwań a na pinie mam częstotliwość którą chciałem procesor będzie miał jeszcze "czas" na po prostu realizację programu ? Czy tak skonfigurowany timer wykorzystuje procesor ? Widzę że timery to twoja słaba strona, więc napiszę ci troche ... Wszystkie timery w AVR mają możliwośc...
Cześć! Poszukuję wsparci gdyż powstał mętlik w głowie. Mam program, który komunikuję się z modułem GSM, używa wielu globalnych tablic, funkcji operujących na strumieniach typu strcpy, str n cpy, strstr, strtok, poniżej wklejam większość deklaracji dużych zmiennych: Dodano po 1 Przeniosłem deklarację StackPoint z .int1 do .int3 i program zaczął wyświetlać...
Opis działania telefonu i zestawiania połączenia Do telefonu abonenta dopływa prąd stały o napięciu zwykle ok. 50V. Na prąd stały mogą być nałożone różne sygnały informujące abonenta o stanie połączenia oraz sygnał mowy. Do wywołania (prąd dzwonienia) wysyłany jest prąd o częstotliwości 25Hz i amplitudzie 90-150V. W podstawowym typie aparatu (bez elektroniki)...
No skoro nie są globalne albo statyczne to jak myślisz - gdzie są tworzone ? - podpowiedź: - na stosie więc nie pokaże ci się zajętość RAM sugestia: jak masz duże tablice to albo rób je zawsze jako zmienne globalne albo co najmniej statyczne - wtedy będziesz widział ile ci to zjada RAM'u. A tak? wydaje ci się że program nie zjada RAMu a tymczasem wszystko...
A jak inicjalizujesz stos? Ponieważ kod startowy C inicjalizuje stos bardzo wcześnie, najpewniej jest on inicjalizowany zanim zainicjalizowany zostaje kontroler SDRAM. Kod inicjalizacji SDRAM musisz umieścić w sekcji .init0. Druga sprawa, że ox 0x800000 zaszyna się wewnętrzny SRAM mikrokontrolera, sekcja dla SDRAM powinna się zaczynać po SRAM (SRAM...
Dziękuję super podpowiedź dzięki niej udało się ustalić optymalne wartości dla ramki hw i sw. Dyrektywa $DBG faktycznie bardzo przydatna można nią wyliczyć wartości stosów dla całego programu, albo dla jakiejś jednej funkcji/procedury. Po utworzeniu pliku .log można użyć stack analizera , no i super :) Niestety nie sprawdza się dla rozbudowanych programów...
Przecież nie musisz wczytywać całego pliku na raz. Nie masz miejsca na 20kB, ale już 2kB spokojnie zmieścisz. Tekst z pliku z podstawionymi zmiennymi możesz wysłać bezpośrednio do klienta, albo zapisać do pliku. Nie masz czego analizować po zmianie zawartości pliku, jeśli napiszesz np. tak: Problem w tym, że ten plik ma dosyć dużo tekstu w HTML+javascript,...
Podłącz według kawałka tego schematu, możesz podłączyć go np. do jakiejś '51 zamieszczam jeszcze procedury inicjujące LCD_INIT: MOV A,#0FH ; inicjacja wyswietlacza LCD LCALL CZEKAJ ;opoznienie 15 ms czas w akumulatorze CLR RW ;RW==0 zapis do LCD CLR RS ;RS==0 zapisujemy komendy do wyswietlacza LCD MOV R0,#3 ;licznik petli PETLA: SETB E ANL LCD,#09CH...
To 80 kilka % to pamięć programu - na 99% używasz jej tylko do odczytu. Natomiast zajętość Data to pamięć RAM - te 1408 to zmienne globalne, do tego jeszcze dochodzi zajętość związana z zmiennymi tworzonymi w trakcie działania, zarówno w funkcji main, w wszystkich wywoływanych funkcjach i do tego jeszcze parametry funkcji i adresy powrotu po wywołaniu...
slawek55 ---> twoje pytanie wynika z dużej niewiedzy na temat działania języka C .... warto poczytać dokładniej na te tematy. Ale jak jeszcze raz napiszesz, że gdzieś w kompilatorze czy symulatorze jest błąd - to ja ci już więcej nie pomogę ;) .... bo zawsze uważam to za jakąś masakrę, że ludzie zamiast poczytać, doczytać i poszukać błędów w swoim...
Pozwolę sobie czepnąć się tego kodu, przynajmniej estetycznie: przekroczenie zakresu zmiennych w c to zdaje się zachowanie niezefiniowane? W związku z tym może się dla cnt bezboleśnie przekręcić licznik (tak jak chcemy tutaj) a może zacząć nadpisywać sąsiedni bajt - zależnie od kompilatora. Czy się mylę? No mylisz się. Jaki sąsiedni bajt? w zależności...
jeśli zajętość data 99% to może stos wjeżdża ci już na zmienne. pozatym buffers masz zadeklarowane w rozmiarze 55 a w ISR masz index od 0 do 255 jak nic masz konflikt między tymi trzema rzeczami: stos, ten bufor, zmienne podebuguj i włącz podgląd pamięci, zobaczysz co gdzie maże
Jest kilka możliwości. Po pierwsze procesor nie powinien się grzać, jeśli się grzeje to znaczy, że przekraczasz jego parametry, gdzieś masz zwarcie, albo czymś niepoprawnie sterujesz. Druga możliwość - BASCOM kiepsko obsługuje AVRy z tak dużą ilością pamięci FLASH, ale ten problem powinien pojawić się po przekroczeniu 128kB zajętości, co ciebie chyba...
W ramach nauki postanowiłem zrobić urządzenie na stm32f1 (512kB Flash, 64kB RAM) funkcjonalnie przypominające Palmtopa z WinCE. W miarę rozrastania się programu zacząłem zbliżać się do granic pojemność RAM. Na początku nauki pominąłem pewne aspekty dotyczące zarządzaniem pamięcią ale program zaczyna się już powoli sypać więc najwyższa pora żeby usystematyzować...
Zajętość Flash to suma text i data. Zajętość RAM - to suma data i BSS. W zależności od środowiska stos może być wliczony do BSS albo nie.
Problemów jest wiele: Podczas kolizji (w danej chwili kanał jest zajęty) Zigbee z reguły używa funkcji autrepeat - jednak problemem jest czas w którym przychodzi pakiet i to czy pakiet faktycznie nie został odebrany czy może został odebrany ale potwierdzenie odebrania nie zostało poprawnie przyjęte przez transmitter - niestety trzeba mieć time stamp'y...
Zajętość pamięci RAM jest oczywista - to po prostu rozmiar wszystkich zmiennych, jakie mogą zaistnieć w najgorszym przypadku przy największym poziomie zagnieżdżenia procedur plus po jakieś 20 bajtów na każdy poziom zagnieżdżenia To zależy od uC. AVR ma dużo rejestrów i stos jest w praktyce potrzeby tylko na adres powrotu. W przerwaniach, używane rejestry...
Witaj! Adruino i Uno i Nano z Atmegą328 na pokładzie. Mega328 czyli 2kB RAM :-) Standardowo, na jedną diodę potrzeba 8 lub 9 bajtów danych. 2048/8 = 256 diod. Przypuśćmy, że dane transkodowane sa "w locie". RGB - 3 bajty na LED. 2048/3 = 682 led ale gdzieś muszą mieścić się zmienne, stos. Pokaż log z kompilacji, pewnie zajętość ram jest 80 czy 90%...
Dokładnie tak. Niestety nie jest to takie proste. Po pierwsze zużycie flash to co najmniej "text + data", a zużycie RAM to co najmniej "data + bss". Liczby te mogą (ale nie muszą) uwzględniać stosu i sterty. Całkiem często realnie zużycie statyczne jest nieco większe niż powyższe sumy. Dlatego osobiście polecam dodać sobie do linkera opcję `-Wl,--print-memory-usage`...
To co znalazłem w pliku *.lss nie jest dla mnie w tej chwili zrozumiałe: To sbic oraz rjmp zajmuje się testowaniem flagi zajętości EEPROM. W opisie do eeprom.h autorzy zaznaczyli, że funkcje najpierw sprawdzają zajętość podsystemu odpowiedzialnego za EEPROM. Szczegóły implementacji będą w źródłach AVR-libc, one się trochę różnią pomiędzy procesorami,...
Z tymi wieloma WG to na razie teoria, bo mam tylko jeden... Raczej zrobię jakiś układ przekaźnikowy lub przekaźnikowo- półprzewodnikowy zamiast szukacza. Przykładowo, zastanawiałem się nad czymś takim, jak w załączniku. Niech będzie tylko na razie centrala z WL. Dodatkowo, niechby każdemu abonentowi dać szeregowo cewkę przekaźnika z opóźnionym działaniem...
W artykule opiszemy sposoby badań sygnałów ASK / FSK stosowanych w systemach bezkluczykowych w nowoczesnych samochodach. Firma Rigol Technologies rozszerzyła system testowy zakresu częstotliwości radiowych (RF) analizatora spektralnego DSA800 od dodatkowe funkcje testowe systemów pasywnych zamków zbliżeniowych (bezkluczowych). Rozwiązanie Rigola jest...
No ;) pomyślałem sobie - będzie jakaś fajna biblioteczka - choć ja mam swoje własne rozwiązania - jednak tak wielu początkująych rzeczywiście poszukuje tego typu rozwiązań, że faktycznie mogłaby być taka biblioteka przydatna. Tymczasem kolega pisze takie sorki ale wg mnie herezje odnośnie flagi zajętości: - praca w trybie 4-bit bez odczytywania flagi...
Oczywiście jest możliwe, że jest uszkodzony. Ale to stosunkowo mało prawdopodobne. Jakim napięciem go zasilasz? Jak długie są kable łączące z mikrokontrolerem? Masz tam jakieś kondensatory odsprzęgające? Generalnie z odczytem flagi zajętości powinno być lepiej, bo wiele timingów odpada. W każdym razie jeśli wyświetla cokolwiek innego niż kwadraciki...
Cześć, Została to wspomniana moja biblioteka do obsługi systemu plików ext2/3/4. Napisałem ta bibliotekę do własnych celów w zeszłym roku. Duża jej część bazuje na implementacji systemu operacyjnego HelenOS. Jednak trzeba było się trochę nagimnastykować aby odpalić ją na mikrokontrolerze ;). Biblioteka umożliwia obsługę: - ext2 (większość funkcjonalności)...
Witam wszystkich Tym razem chciałbym przedstawić jeszcze programowy projekt odtwarzacza i dyktafonu zrealizowany na STM32F4Discovery. Pisząc ten program, sporo rozwiązań wykorzystałem z mojego poprzedniego projektu małego odtwarzacza MP3 na ARM-ie, ale dołożyłem też dużo nowości i usprawnień. Obecnie program umożliwia odtwarzanie plików MP3, AAC-LC...
Dla przejrzystości wymienię w punktach wady i zalety obu sposobów detekcji. Detekcja pojazdów Indukcyjna: Wady : - skomplikowana budowa - konieczność zamknięcia całego skrzyżowania w przypadku budowy czy naprawy, co wiąże się utrudnieniami w ruchu. - konieczność cięcia nawierzchni (często nowej) dla wykonania rowków na pętlę na długości 6-20 m, - nieodwracalne...
Skompilowałem to po wyeliminowaniu błędów. Pochodzą tylko i wyłącznie z funkcji specyficznych dla lpc210x. Z tego co mi się udało zaobserwować z kompilacji to RAM-u potrzeba 28 KB w tym: bufor na dane wyjściowe i cała pamięć alokowana przez dekoder. Nie wiem ile będzie zajmował stos. Jak określiłeś zajętość RAM, przez analizę kodu czy są jakieś inne...
Jeśli idziemy w stronę narzędzi co zrobić, żeby się nie narobić , to znacznie wygodniejsze są "języki" operujące schematami ideowymi czy blokowymi. Miałem (nie)wątpliwą przyjemność realizacji projektów w LabView, a ostatnio oglądałem z bliska Actum Realizer. W stosunku do języków BASICO-podobnych, narzędzia te mają dwie duże zalety. Po pierwsze programowanie...
A jesteś pewien, że ten bufor na 100% jest we flash'u? Pisząc bufor - sugerujesz że jest to tablica zmiennych, która na bierząco pośredniczy w wymianie danych. Jeżeli tak - bufor ten musi znajdować się w ramie. W przypadku AVR nie ma możliwości zapisywania do flasha z pozoimu programu (można to tylko zrobić z sekcji bootloadera). A co mówi kompilator...
Przeniosę to przerwanie i tablice do plików .c. Ale wtedy w pliku głównym .c mam includować plik przerwania .c? Myślałem, że tam inkluduje się tylko pliki .h Nie musisz include'ować pliku .c, a nawet nie powinieneś. W Makefile dopisz go tylko do plików źródłowych (SRC = $(TARGET).c przerwanie.c inny_plik.c itd.) a linker odwali resztę roboty. Zostało...
Nie mogę poradzić sobie z uruchomieniem tego wyświetlacza: .EQUK_LCD_DANE = DDRF ;kierunek portu wyświetlacza .EQUI_LCD_DANE = PINF ;wejście portu wyświetlacza .EQUO_LCD_DANE = PORTF ;wyjście portu wyświetlacza .EQU DB0 = 0 .EQUK_LCD_STER = DDRB ;kierunek portu sterowania wyświetlacza .EQUI_LCD_STER = PINB ;wejście portu sterowania wyświetlacza .EQUO_LCD_STER...
Witam Utworzyłem nowy temat ponieważ nie widziałem żadnego podobnego tematu na elektrodzie. Otóż potrzebuję pomocy odnośnie wyświetlania znaków na wyświetlaczu LCD. Jest on zgodny z HD44780 (jego numer to: WC1602ASFYLY...). Chodzi mi o kod programu napisany w języku Assembler tylko, że bez dołączanych do niego bibliotek oraz przypisywania innych nazw...
Witam Jak wiadomo sztandarowym i w dodatku darmowym programem do skanowania sieci pod Windą jest NetStumbler. Jednak od kilku lat aplikacja już nie jest rozwijana (v0.4.0). Ponadto nie działa pod Vistą, i przypuszczam także pod Win 7 (choć pod tym ostatnim nie próbowałem). Dlatego już jakiś czas temu wynalazłem w sieci freewarowego inSSIDer -a. Program...
Dobrze. To może tak: Dla czego mając 16kb FLASH nie mogę przekroczyć 60% przy kompilacji zajętości w M168 ? Po przekroczeniu tej wartości program kompiluje się, ale przestaje odpowiadać lub robi błędy po wgraniu do UC. Ustawienia stosu nic nie dają.
mozna tez recznie, w symulatorze jeśli chodzi o AVRStudio to zajętość Ramu w dowolnym punkcie programu oblicza się poprzez sumowanie (.sekcji data + .bss + .noinit) oraz wskaźnika stosu SP(liczonego w kierunku malejących adresów)?Co z obszarem "heap"?
Witam, Używam tylko IRQ, wiem że są jeszcze FIQ ale tych nie używam. Z tego co wiem to one mają nawet osobne piny na uC. Mój cały program zajmuje 46kB. A zajętość pamięci to nie bardzo wiem jak to sprawdzić. W sumie ponieważ używam wszystkie USART-4 oraz SPI do obsługi podpiętych urządzeń, w kodzie protokołów mam trochę tablic charowych 1024 elementowych...
Nad przekaźnikami też się zastanawiam, ale raczej będzie to ostateczność. Bezpieczeństwo jest tu najważniejsze a przekaźniki mają tendencje do sklejania się styków lub innych, nawet opisywanych przez ciebie uszkodzeń. Zwróć uwagę że, opisywane problemy tyczą się raczej dużych prądów. Przy małych prądach, schodzimy do strat dużo mniejszych niż zasilanie...
całkowita zajętość pamięci RAM wynosi 0! A stos gdzie?
Sprawdz zajętość RAM. Twój program niepotrzebnie używa b. dużo miejsca na stosie, więc możesz dorzucić ze 200 bajtów do tego, co podaje kompilator. Kompilator podaje zajętość ramu około 20% procek ma 2048. Więc jest jeszcze kupa miejsca
Zajętość RAM: proste - stos. Dodaj do tego narzut na przekazywanie zbędnych argumentów. Sugerujesz, że programista powinien podzielić program na procedury i polegać na tym, że mądry współczesny kompilator z LTO z powrotem scali to w jeden liniowy kod? No cóż, można i tak, ale skoro chcemy uzyskać liniowy kod w jednym kawałku, to może prościej byłoby...
i nie pisze się zużycie CPU tylko użycie, jeżeli coś jest zużyte w 100% to nadaje się do śmieci. Kolego prosimy nie mieszać, bo teraz autorowi wydaje się, że zużył mu się procesor. Określenie niefachowe - każdy wie o co chodzi, nie będziemy wchodzić w niuanse języka polskiego stosująć wyrazy "utylizacja" :) (też się zdarzyło) "zajętość" itp. Czyli...
Po pierwsze kod umieszczaj w tagach "syntax". Po drugie w jakim programie i jakiej wersji to kompilujesz, a po trzecie 75% zajętości RAM źle wróży. Moim zdaniem przepełniasz stos.
Wygląda na to, że możliwe, że jest to któreś z proponowanych rozwiązań. Co do bufora wejściowego to zwiększałem go do 4048 i nic. Bardziej wygląda to na coś z pamięcią i ze stosem, ale jak to sprawdzić? Oczywiście nie można zrobić wektora 1500 bajtów w ATmega8 - tam próbowałem różne wartości, mieszczące się w pamięci, tak aby po kompilacji był komunikat...
Witam. Czy ktoś wie jak badać w runtime zajętość pamięci ?? Używam C++ i operatorów new/delete. Zakładam że obszar sterty i stosu jest przydzielany w taki sposób aby zminimalizować jego nałożenie się, czyli najprawdopodobniej na dwóch końcach pamięci RAM. Czy jest jakiś sprzętowy mechanizm ochrony tego obszaru ? Jak zbadać zajętość pamięci ?
No fakt, ilość linii kodu to sprawa kluczowa. Naprawdę merytoryczny argument. Raczej chodziło tu o podkreslenie prostoty kodu. A'proos linii kodu to nie dalej niz 2-3 dni temu, mój syn przyszedł do mnie z bardzo podobnym problemem. Asystent z metod numerycznych (syn studiuje civil engineering - czyli cos ala budownictwo), stwiedził ze jego program...
32AU4 ma 2 razy więcej pamięci RAM. Może dla mniejszego brata po prostu następuje nadpisywanie stosu lub coś podobnego. Podczas kompilacji programu, w podsumowaniu nie zawsze widać właściwą zajętość pamięci ram, szczególnie mogę wprowadzać w błąd "duże"zmienne lokalne.
Brakowało pamięci RAM. Kompilator pokazywał około 1,2k wolnego ale jak podliczyłem dynamiczne zmienne to mi wyszło, że może brakować kilka bajtów. Korzystałeś może z biblioteki Adafruit? Staram się unikać bibliotek z tej stajni - w ogóle nie są one optymalizowane pod kątem zajętości sterty w SRAM. To akurat nie ma znaczenia bo OLED 128x64 potrzebuje...
Robo24 napisał: Z dynamiczną alokacją pamięci na mikrokontrolerach trzeba uważać, często powoduje problemy. Niektóre kompilatory nie dopuszczają opcji dynamicznej alokacji pamięci, nawet nie umożliwiają wywołania rekurencji (model reentrant i non-reentrant). Szczególnie dla uc 8-bitowych. A jakież to konkretnie kompilatory nie umożliwiają alokacji...
No dobra. Coś mam. Nie udało się tego zrobić na STM32CubeIDE, ponieważ wejście do opcji projektu (prawym na projekt > Properties ) a następnie do istotnych C/C++ General > Preprocessor Include Paths, Macros etc. powoduje u mnie pojawienie się okienka z błędem że "The currently displayed page contains invalid values" i tyle mogę sobie tam pozmieniać......
Myslę, że w następnej edycji trochę o skryptach linkera powinno się znaleźć. Kol (at)tmf na pewno nad tym pracuje. Dostęp przez wskaźniki jest mało wygodny, lepiej używać do tego C - niech samo sobie liczy adresy zajętości i tym podobne drobnostki. Ale to wymaga odrobinę więcej zachodu i wiedzy - ale wiedza odpłaci się koledze z nawiązką. Znajdź sobie...
Nie wiem czy koledze o to chodzi ale poniżej przykład jak utworzyć tablicę adresów funkcji i wywoływać funkcję na podstawie jej numeru. [syntax=armasm] #include <m32def.inc> .cseg Reset: ; zainicjowanie stosu LDIR16,high (RAMEND) OUTSPH,R16 LDIR16,low (RAMEND) OUTSPL,R16 CLRR0 // zero LDIZH,high (2*Addresses) LDIZL,low (2*Addresses) LDIR16,1 //...
W pierwszej kolejności sprawdź, jaką masz zajętość pamięci na stosie oraz stercie po inicjacji konstruktora SerialBT. Podałeś tak mało informacji, że więcej nie da się "wywróżyć".
Obejrzyj komunikaty kompilacji - zajętość pamięci RAM. Potem dodaj do tego jakieś 50 bajtów stosu, którym dość rozrzutnie gospodarujesz i policz, ile razy przekroczyłeś dostępną pamięć RAM. Weźmy chociażby to: static uint8_t displayBuffer Zajętość RAM według kompilatora to 86%. Ten fragment kodu: static uint8_t displayBuffer[DISPLAY_HEIGHT/8][DISPLAY_...
Jak mam 90%, to pojawiają się artefakty na wyświetlaczu, pomimo, że nie dodałem kodu go dotyczącego, a trochę jeszcze więcej zająć, to procesor wpada w bootloop i uruchamia się tylko setup. To raczej wynika z zachodzenia sterty na stos w pamięci RAM. Miałem kiedyś podobne przypadki. Niestety w atmega328 ciężko jest to zdiagnozować. Jaką zajętość RAM...
witam co moge ulepszyc za stosunkowo niewielka kase oto moj komp; System operacyjny Nazwa systemu operacyjnego Microsoft Windows XP Professional Wersja systemu operacyjnego 5.1.2600 ServicePack 3.0 ID Produktu 55034-640-8365391-23439 Działa non-stop od 2010-08-11 18:12:27 Wersja Internet Explorera 8.0.6001.18702 Wersja Microsoft DirectX 9.0c (4.09.00.0904)...
Witam Panowie. Plan, który chcę wykonać jest stosunkowo prosty ... a tak przynajmniej mi się wydawało. Chcę wprowadzić do przedsiębiorstwa VOIP. Obecnie posiadamy dwie linie abonenckie z TP. Jedną chcę przeznaczyć na voip czyli przenieść numer do operatora. Teraz dylemat ... posiadamy w sumie 10 numerów wewnętrznych oraz fax. Logiczne że wypadało by...
Chwała Ci, że chciało Ci się napisać przykład, ale to trochę jak lutowanie SMD transformatorówką. Oooj tam, znam takich co nie wyobrażają sobie inaczej :) To oczywiście hardcoreowy przykład. Generalnie ilu programistów tyle będzie podejść. Najważniejsze, że Kolega jawkers ma już świadomość tego, że da się stosunkowo łatwo rozwiązać jego problem. Co...
Witam Mam dylemat związany z wyborem magistrali dla dosyć prostego systemu składającego się z centralki postawionej na raspberry pi oraz kilkunastu terminali (ATmega 8 lub 328). Założenia: - centralka wysyła żądania do terminali (konkretnych lub wszystkich - broadcast), terminale odpowiadają na żądanie, - terminal w dowolnym momencie transmituje dane...
Pamiętam, gdy kupiłem swój pierwszy procesorowy miernik częstotliwości. Wyposażony pierwotnie w rezonator kwarcowy zapewniający dokładność około 10ppm. Było to całkiem zadowalające, biorąc pod uwagę rozdzielczość częstościomierza oraz możliwość dopasowania obliczeń do odchyłki wzorca. Po krótkim czasie rezonator został zastąpiony TCXO 15.36MHz. Generator...
Zasięg urządzeń pracujących w paśmie 433MHz jest stosunkowo duży. Z tego powodu konieczne są ograniczenia w jego wykorzystaniu.. Różnią się one trochę w zależności od przeznaczenia urządzenia. Szczegóły znajdziesz w dyrektywie RED. Jeśli chcesz być zgodny z prawem to użyj modułów na 2.4GHz. Jest jeszcze coś takiego jak ogólne zasady dotyczące projektowania...
Obawiam się, że to nic nie pomoże. Żadne narzędzia nie pokazują co dokładnie to miejsce zajmuje. Sprawdziłem podaną aplikację u siebie, gdzie mam zajęte około 14GB pamięci przez "Inne". Pewnie mając roota dało by się sprawdzić. Tego typu wątki przewijają się po forach i dotyczą różnych modeli smartfonów. Co ciekawe nie pomaga na przykład factory reset....
W poniższym artykule omówiono technologię baterii w systemach Internetu Rzeczy (IoT). Opisuje on niektóre mankamenty, z którymi stykają się projektanci w zakresie tworzenia systemów zasilania i prezentuje portfolio rozwiązań od Analog Devices. Opcje te charakteryzują się wysoką niezawodnością i mogą pomóc w ograniczeniu innych problemów w urządzeniach...
Inna sprawa to że, nie wiem na ile wiarygodne są te informacje i skąd one pochodzą - czy to jest bezpośredni odczyt z oprogramowania modemu (raczej wątpię żebyś miał dostęp). Przypomina to managera od sterowników do Sagem'a Fast800, ewentualnie któryś z "chińczyków" - tak czy inaczej nie są to zbyt dokładne dane. Z drugiej strony w praktyce nie spotkałem...
Stacjonarne numery specjalne w TPSA - jak to jest zrobione, w jaki sposób działają i wszystko na ten temat ? Witam. Dziś jak zwykle, mam do Państwa kilka pytań (nietypowych z resztą :p) Proszę o udzielenie mi Odpowiedzi na nie. Zacznijmy jednak od paru słów historii Telekomunikacji Polskiej SA i Jej Firmy-Matki (Polska Poczta, Telegraf i Telefon) Telekomunikacja...
Dziękuję za uwagi. Odpowiadam hurtowo na poszczególne zagadnienia/pytania: Drogo – pewnie trochę drogo ale jak słusznie zauważył „Ibuprom” i o czym pisałem, nie miałem czasu i większej ochoty na „babranie” się w płytkach. Tym bardziej, że pewnie dokonując eksperymentów trochę więcej pieniędzy puściłbym „z dymem”....
Witam, Wziąłem się w końcu za transmisję radiową na poważnie ;) .... Chodziło mi o przygotowanie, że tak powiem uniwersalnego softu, który będzie działał z dowolną parą prostych nadajniczków/odbiorniczków typu 433MHz czy 833MHz. Do budowy użyłem - wypróbowałem 3 pary różnorakich par nad/odb. Dobrałem je w pary tak aby uzyskiwać dla nich jak najlepsze...
Co do homologacji, cóż faktycznie nie powinno podłączać się samoróbek do linii, w razie nieprawidłowego naliczenia impulsów, uszkodzenia linii, uszkodzenia urządzenia końcowego, pretensje można mieć do samego siebie. W celach edukacyjnych można takie urządzenie zbudować. Co do zasilania, na wstępnym etapie najlepiej użyć zasilacz zewnętrzny. Co do sygnału...
Przepraszam , ale co ma do tego hibernacja??? bo nie rozumiem?? (jestem zbyt zielony w tych sprawach , także proszę o wyrozumiałość) a jeśli przeniosę pliki wirtualnej pamięci , opróżnię i przeniosą lokalizację folderów tpm i temp , to dużo miejsca na C się zwolni??? Usuń s postów te nadmiarowe znaki zapytania, bo źle skończysz. Do tego co MARCIN.SLASK...
Wybaczcie ze tak późno pisze ale służba nie drużba. Chociaż mówią że „robota nie Gołota, nie ucieknie” ;) Udało mi się uzyskać rezultat mimo to martwi mnie ilość pamięci potrzebnej na tą operację. A więc po kolei: 1. Najpierw ustawiam PWM: 2. A tu inicjalizacja SPI z podwojoną prędkością: 3. A tu przerwanie w którym inicjujemy dodatkowy...
psicho - Czy dobrze zgaduję: jak jest sygnał optyczny 1.5 kHz, to na kolektorze Q1 masz sinusoidę 1.5 kHz o amplitudzie ze 4 V, a jak go nie ma, to nieco poniżej 1 V? Jest kwestia, czy to "nieco poniżej 1 V" nie jest rezultatem wzbudzenia się układu - filtr 2T przy niedokładnie dobranych elementach może powodować wzbudzenie się, można spróbować włączyć...
Nie bardzo też rozumiem, jak użycie pętli zdarzeń zmniejsza zajętość RAM - magia jakaś... Może niejasno napisałem ale chodziło mi o mniejsze zużycie w stosunku do RTOS. Chciałbym zobaczyć ten low power z pętlą zdarzeń. Tzn. kiedyś były takie procesory, na których to się dawało zrobić poprawnie, ale już wyginęły. Na ogół jest ALBO low power ALBO pętla...
Tak NVR obsługuje HDD do 4 TB. Wielkość dysku jest zależna od tego jak wiele nagrań chcesz mieć przechowywanych. Polecam dyski [url=]WD Purple Co do kamer, na pewno dwie kamery frontowe z tak dobrym obiektywem (7-22mm) dadzą ci większą szczegółowość a a przede wszystkim różne kąty widzenia co może być przydatne. Na sam koniec w załączniku dodaje kalkulator...
No więc nie jestem specem od Pentaconty ale... robiąc we Wrocławiu w roku 1990 kurs mistrzowski kablowy na moim "roku" drzwi w drzwi odbywał się kurs obsługi od Pentacont. Trochę się nasłuchałem wiadomości i z tego co wiem to: dla danej grupy abonentów a było ich kilka na każdej centrali zależnie od wielkości były w celu sprawniejszego wybierania zestawiane...
Dziękuję Wam za odpowiedzi. Cieszy fakt, że wreszcie ktoś się zainteresował i chce pomóc. Jednak obecnie komputer działa prawidłowo, dyski nie znikają, być może wykonany upgrade BIOSu był pomocny. Dlatego na tę chwilę zostawiam ten temat. Sprawa, którą poruszyłem tutaj dodatkowo wczoraj odnośnie zbyt dużej zajętości miejsca na dysku w stosunku do tego,...
Bywa, że w projekcie trzeba dodać dodatkowy port komunikacyjny. Jest to problemem, gdy taka potrzeba zajdzie w końcowej fazie projektu. Wymiana mikrokontrolera na większy spowoduje konieczność zmiany PCB. Dodatkowy port USART, może być potrzebny tylko podczas uruchamiania urządzenia (np do debugowania) albo tylko do upgrade softu. Wtedy może przydać...
Hmm za 3kzł możesz mieć prawie 1,65kW w mono, 6 paneli po 275Wp, jak dobrze poszukasz. Amorfy musisz uziemić na minusie bo "zgniją", konstrukcja musi być idealna bo popękają, ogromna powierzchnia zajętości dachu z której mało co jest mocy... Po za tym w ziemie z paneli prawie nic nie ma, słońce nisko idzie i jest go bardzo mało stosunku do długości...
Dzięki za propozycję. Pobrałem i zainstalowałem najnowszą wersję SW4STM32 v.2.9. Faktycznie są nowe procesory:) Jednak przy generowaniu nowego projektu niestety nie mam możliwości wybrania bibliotek innych niż HALowskie... No bo innych już nie będzie :) Należy pobrać Cube HAL i z tym też będziesz miał nagłówki CMSIS, należy tylko wywalić HALA i pisać...
Tam też są dzwonki do drzwi? W praktyce dyrektywa dotyczy każdego produktu elektrycznego lub elektronicznego, który celowo emituje lub odbiera fale radiowe. Jedyne co zmienił autor pytania w stosunku do oryginalnego produktu to współczynnik zajętości pasma. Nie może on przekroczyć określonych wartości. Z puntu widzenia funkcjonalności urządzenia nie...
Tylko, że wiesz mieć np 512 GB SSD a 1 TB HDD, niby wszystko przemawia za większą pojemnością ale jak tak pomyśleć po przeczytaniu Twojego postu no i w ogóle n/t dysków SSD to myślenie tak naprawdę złudne. Tym bardziej jak widzę, system stale się rozrasta i pęcznieje w swej pojemności no a gdzie miejsce na inne dane ?? Ja miałem w oryginalnie w laptopie...
Typowa akademicka dyskusja o wyższości świąt wielkanocy nad Bożego Narodzenia. Czym jest OS, jak nie wielką pętlą while z mnóstwem nieużywanych funkcji w przypadku implementacji prostego algorytmu do sterownika? Dobór narzędzi (tutaj kodu) dobieramy pod kątem dostępnych zasobów. Jak stać nas na rozrzutność w postaci megabajtów pamięci oraz niepewność...
EMITEL to operator zajmujący się nadawanie sygnałów TV (także) co nie znaczy, że nie ma obecnie fachowców zajmujących się technikami odbiorczymi. Wiem kto pisał ten tekst i w stosunku do pierwowzoru jest on bardzo mocno "wygładzony". A autora/autorów w żadnym wypadku nie posądzałbym o brak wiedzy w omawianym temacie. Cytat został zamieszczony celowo...
Sprostowanie, bo gdzieś dzwoni, ale nie do końca wiadomo gdzie. Oprogramowanie układowe dysków składa się z wielu modułów odpowiadających za różne rzeczy. Zawiera m. in. kod wykonywalny, ale też różnego rodzaju moduły parametryczne, zazwyczaj indywidualne dla konkretnego dysku, jak np. listy defektów i translator odpowiadający za tłumaczenie adresów...