W STM32 domyślnie podczas zatrzymania rdzenia timery pracują, więc podczas twojej pracy krokowej zgłaszane są setki kolejnych przerwań. Aby to zwalczyć należy w rejestrze DBGMCU->CR (w manualu DBGMCU_CR) zapalić stosowny bit dotyczący stosownego timera. Niestety nie zawsze jest to możliwe (bo aplikacja może wymagać aby timer naprawdę stale pracował...
Nie bardzo wiedziałbym jak tego użyć. Chyba że jakiś przykład miałby ktos, kto to już robił. A może tak: [syntax=c] #include <time.h> ... struct tm * loctim ; // struktura zawiera pola typu tm_year czy tm_min time_t tt ; // odczytywanie licznika tt = RTC->CNTH; tt = tt << 16; tt = tt | RTC->CNTL; loctim = localtime(&tt) ; ......
Domyślnie Atmel Studio w czasie debugowania blokuje przerwania podczas śledzenia krok po kroku, co ma za zadanie ułatwić śledzenie funkcji. Dodatkowo przerwanie od USART wystąpi bardzo późno - dopiero po wysłaniu bajta, co może trwać nawet kilka tysięcy cykli CPU.
sprawdź w dokumentacji czy aby po zresetowaniu flagi przerwania timera nie trzeba odczekać kilka instrukcji (2-3 NOP'y). Jeżeli tak jest, to w przeciwnym wypadku zaraz po wyjściu przerwanie otworzy się drugi raz i w tej sposób dioda mrugnie tak że tego nie zauważysz. Możesz to sprawdzić tak że diodę ustawisz na zapłoną (a nie stan przeciwny), to po...
Jeszcze przy zmiennych występujących w przerwaniach dodaj modyfikator volatile .
Witam VanThor czy poradziłeś sobie z tym problem. U mnie niby to samo ale... We flashu wszystko ładnie działa. W ramie: 1. Modyfikacja skryptu linkera z flash na ram 2. BOOT0 =1 i BOOT1= 1; 3. W main daje NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x00); Hmm niby wszystko ok ale jak wkładam USB do PC (pojawia się przerwanie ) czasem mam wyjątek BusFault,...
Witam Pisze programy w programie TrueStudio firmy Atollic i mam dziwne objawy. Program się kompiluje jednak przy debugowaniu czasami wchodzi w przerwanie void HardFault_Handler(void) Korzystam z bibliotek CMSIS. Problemy występują głównie gdy chcę skorzystać z funkcji sprintf. Darmowa wersja programu ma niby działać z programatorem ST-Link ja korzystam...
Do debugowania przerwań użyj diod a nie prinft. Mam wrażenie ze nie do końca ta inicjalizacja jest zgodna z RM :)
Akurat tutaj nie masz racji, bo tak się to robi. Problem z zezwoleniem na przerwania w ISR jest taki, że to samo przerwanie może zostać zgłoszone jeszcze raz, a tego byś nie chciał. Najprościej w SIG_INTERRUPT1 wyłączyć zezwolenie na INT1 i włączyć przerwania. Przed końcem ISR robisz na odwrót - cli() i ustawiasz flagę od INT1. Wchodzisz na grząski...
Witam, zwracam się do szanownych Koleżanek i Kolegów z prośbą o pomoc. Próbuję uruchomić w środowisku AVR32 Studio przykładowy program na modelu z procesorem AVR32UC3A1512. W czasie wykonywania pracy krokowej w trybie debugowania, kiedy ustawię breakpointa na wejściu do procedury, program się zatrzymuje ale po wykonaniu jednego kroku (niezależnie od...
(at)A.T. Debugowanie nie zadziała Ci z Soft Devicem (to co masz na początku flasha). Stos działa mniej więcej tak w przypadku niespełnienia zależności czasowych (które pojawiają się podczas debugowania przykładowo). Więc jeżeli chcesz debugować to: a) bez Soft Device b) możesz ręcznie wyłączyć przerwanie od SD W obu przypadkach nie będziesz miał oczywiście...
Tak jak w tytule, testuję program JTAG-iem i niestety fakt ten wpływa negatywnie na pracę przerwania zegarowego. Timer cyklicznie zmienia pewną wartość (rodzaj znacznika) od jego wartości zależy jak się prgram zachowuje w innym miejscu. Problem w tym że zależałoby mi na tym aby przerwanie pracowało swoim tempem niezależnie od debugowania. Póki co licznik...
Pokaż jak uruchamiasz OpenOCD.
Proszę moderatora o doklejenie do wcześniejszego tematu bo przez przypadek kliknąłem w rozwiązano :( Przerwania mam włączone. Globalnie przez __enable_irq(); i poszczególne przez wpisanie jedynek do odpowiednich rejestrów ISER. Czy to możliwe że przerwania działają przy debugowaniu a przy normalnym wykonywaniu kodu już nie nawet jakby nie były włączone...
Dla pewności można określić typ jako "uint_fast8_t" z "stdint.h". Nie zawsze będzie to szybsze niż zwykły uin8_t, ale na pewno nie wolniejsze. Co do polityki cenowej Atmela i ST, to różnica w cenie w przypadku debugowania jest kolosalna.
przerwania Freddie mi juz dobrze działaja, ale co rozumiesz mowiąc ze debugowanie ich jest problematyczne? mozesz rozwinąć myśl? jak ustawie brakepoin w przerwaniu to po odpaleniu debugowania odrazu mnie przenosci do tego przerwania i opcja play nie wraca do maina.
Witam, jak przerwać zapętloną naprawę na Windows 10? Próbowałem wszelkich możliwości znalezionych w internecie - tryb debugowania, tryb awaryjny, wiersz poleceń - bcdedit /set {current} recoveryenabled /nie. Windows nie znajduje takiej komendy. System Windows 10 32-bit. Czy ktoś wie, jak to przerwać?
Masz debugger to sprawdź jaką wartość ma IPSR. Będziesz wiedział które przerwanie powoduje wywołanie Default_Handler(). W NVICu też są rejestry które dużo mówią o stanie procesora. Sprawdź stos - ostatnie 8 dword-ów będzie wiadomo w którym momencie zostało wywołane przerwanie (PC)
zawiesic procesor można zawsze - a nie możesz debugować?
(at)Freddie: problem występował nadal, przy kolejnych próbach debugowania. (at)Krauser: faktycznie przerwanie nazywało się USB_LP_CAN1_RX0_IRQHandler, i USB_LP_CAN_RX0_IRQHandler w pliku vector.c Dopisałem 1 w pliku vector.c i coś ruszyło - PC rozpoznał wirtualny COM. Natomiast teraz (w mniej więcej losowych momentach - przeważnie niedługo po inicjalizacji...
Tylko ja nie mowie o żadnych flagach sprzętowych, a o zmiennej "straznik". Sorry. Źle zrozumiałem. Faktycznie 'straznik' jest tylko zainicjowany z wartością 1, a później tylko zerowany w przerwaniu. Tego nie zauważyłem :)
Nigdy nie używałem Eclips-a to nie wiem, ale co do kosztów środowiska pracy to nie ma to znaczenia dla jego jakości. Na gcc+gdb zawsze i wszyscy narzekają i narzekali (łącznie ze mną) a mimo wszystko i tak większość tego używa. Bo darmowe ktoś zaraz doda. Może i tak ale w mojej firmie przerobiliśmy kilka środowisk, łącznie ze wspominanym, również takich...
Bufor jest odczytywany w procedurze i wszystko raczej dziala, ale mam problem z debugowaniem bo ciagle wyskakuje to przerwanie. Bit UDRIE w UCSRB jet caly czas wyzerowany. Bit RXC w UCSRA jest caly czas ustawiony, nawet jak go recznie wyzeruje to natychmiast ustawia sie ponownie.
To tylko tekst debugowania, usunę go w następnej kompilacji. Myślę, że potrzebujemy więcej testów. A może uruchamiasz coś w tle, np. przerwanie IR?
Czy ktoś może wskazać mi właściwy kierunek, aby uzyskać więcej informacji na temat #6 w przewodniku - Jak debugować sterowniki (w systemie Windows)? Mam sklonowany projekt, otwarty w Visual Studio 2022 i ustawioną gałąź z moimi aktualizacjami kodu. Jak go uruchomić, aby móc go debugować, wchodzić w niego i ustawiać punkty przerwania? Jestem nowy w kodowaniu...
Niby, bo nie wiem nic więcej poza tym, że nie wywala errorów. To może napisz program który coś robi to wtedy będziesz wiedział czy jest OK. Widzę że używasz JTAG'a....co stoi na przeszkodzie żeby uruchomić debugowanie ? Skoro się wszystko poprawnie kompiluje i wgrywa, wystarczy napisać inicjalizację peryferii dla LPC'ka i zweryfikować plik z mapą przerwań.
Jestem na O0, breakpointy mam w pierwszych liniach main, program działa tak: Przede wszystkim przejdź do widoku asemblera i tam zobacz jak wygląda wykonywanie programu. Breakpointy też postaw na instrukcjach asemblera, przed main. Czasami informacje o debugowaniu, pomiędzy C a asemblerem się rozjeżdżają, chociaż dla O0 nie powinno mieć to miejsca....
- zapis do rejestru TCCR0B lepiej zrobić w jednym podejściu i bez OR. To samo tyczy się każdego innego rejestru. W jaki sposób? "=" zamiast "|=". korzystałem z poradników mirekk36 Dlaczego więc tam nie założyłeś tematu? Ban za złe przekonania, spojrzenie lub inny banał? W przypadku TCCR i nie tylko "=" zamiast "|=" daje krótszy i pewniejszy kod. Co...
Nigdy nie używałem debug_printf i w ogóle raczej mało debuguje w ten sposób ale FreeRTOS przejmuje systemowe przerwanie w SAM7X coby wykryć przerwanie od PITa. Poza tym jeżeli debug_printf w ogóle korzysta z przerwań to nie będzie działać bo we FreeRTOS przerwania muszą być odpowiednio "spreparowane". Popatrz sobie na przykładowe przerwania od UARTa.
W aplikacji wystąpił wyjątek unkown software exeception (0xc000001d) pod adresem 0x05d17170. Kliknij ok aby przerwać Kliknij anuluj żeby debugować program To pojawia się gdy tylko chce włączyć origin i przy włączeniu kompa. Gdy klikam otwórz jako administrator to pisze błąd aktualizacji choć mam najnowszą wersję. Licze na pomoc w problemie
Zakładam, że program działa tak jak chcesz, a chodzi o optymalizację, niekoniecznie permanentną. Pierwsza uwaga dotyczy startu programu. Mimo, że w aktualnej wersji programu nie wykorzystujesz przerwań proponuję przesunąć kod programu (etykietę START) powyżej adresu zarezerwowanego na przerwania (4) zostawiając miejsce przynajmniej na skok do podprogramu...
Nie przepełniasz go jednym znakiem, a składowaniem kontekstu przy przerwaniu - być może. Zacznij od prostego echa - co odbierzesz, to natychmiast nadawaj z powrotem. Zwykle tak się właśnie uruchamiało transmisję, kiedy nie było możliwości debugowania. Najpierw zrób to w pętli, potem w przerwaniu - będziesz wiedział, że przerwania działają.
A po co dokonywać takiego spisu w Startupie albo podczas debugowania? Rozumiem, że lubisz, jak procesor sypie wyjątkami podczas debuggowania? ;-) Niestety dwa przerwania to dla mnie za mało. Wygląda na to że muszę mieć z 6. No problem. I wymagane jest zagnieżdżanie. A przed tym zawsze trzy razy sprawdzam, czy nie da się inaczej. Więc ponawiam pytanie:...
Owszem CooCox pozwala szybko rozpocząć zabawę z ARM-ami, ale ma też swoje wady. Niedawno postanowiłem przetestować to środowisko i szybko zraziła mnie wada serwera GDB, którą openOCD miało w wersjach starszych niż 0.5.0 (ponad 2 lata temu). Brak automatycznego maskowania przerwań podczas debugowania skutecznie utrudnia śledzenie krokowe programu - nadejście...
Ja się już zastanawiałem czy nie zrobić zmiennej volatile czy coś, ale to jest zwykły synchroniczny kod. Nie ma żadnych przerwań itp. Jakby to występowało w miarę często, to można aby to jakoś debugować. A jak mam to np raz na dwa dni to ....
Jak Ci przestanie działać bez niego, to będziesz wiedział, do czego służy. ;) Chodzi właśnie o wejście w tryb debugowania po tym, kiedy programista wyłączył SWD, ale nie tylko, np. STM32F4 bardzo często nie chce wejść w debugowane bez tego.
Przy tych częstotliwościach raczej też się powinno dać. Tylko w klasycznej atmedze wiele z tego będziesz musiał sam oprogramować. Najlepiej pewnie mierzyć czas na przerwaniach, z tego uzyskasz częstotliwość i wypełnienie. Atmegi mają sprzętowe timery więc pewnie jest jakaś nota aplikacyjna jak generować PWM o zadanych parametrach. Skalowanie to proste...
Uważaj kolego ;) włączasz przerwania a nie zainicjalizowałeś wogóle wektorów przerwań w tym tego od Timera0 ;)
Może na początek zaktualizuj w Microchip Studio w Tools ---->Device Pack Manager--->I zainstaluj najnowszy Pack dla Dx. Czyli Atmel AVR-Dx Series Device Support 2.7.321 (2025-02-19). Albo jak go nie widzi to go ręcznie pobierz zstąd: http://packs.download.atmel.com/ I potem go zainstaluj Tools ---->Device Pack Manager--->Instal-->Browse...
1. Uruchomienie timera z nazwami symbolicznymi bitów: TIM3->CR1 = TIM_CR1_ARPE | TIM_CR1_CEN; Popatrz w plik stm32f05xx.h - masz tam definicje bitów dla każdego rejestru, m.in. TIM_DIER_UIF i całe mnóstwo innych. Nazwy bitów są poprzedzone nazwami rejestrów. 3. Do kasowania znacznika przerwania wystarczy podstawienie - nie potrzeba &=. Np. TIM3->SR...
Ja to zabezpieczałem, ale już nie pamiętam dokładnie jak, a źródła są na jakichś dyskietkach, o ile ich jeszcze nie zutylizowałem, a i tak nie mam ich czym odczytać. Pamiętam zasadę: sprawdzałem kilka wybranych znaków, czy są na swoich miejscach - teraz bym sprawdzał jakieś CRC. W obsłudze jakiegoś przerwania (trudniej debugować), bez którego ta aplikacja...
Spróbuj najpierw zweryfikować działanie przerwań od portów bez włączania przerwania timera, a jeśli nie działają - zdebugować i uruchomić je. Nie zdziwiłbym się, gdyby się okazało, że przerwanie timera jest ciągle aktywne i procesor nic innego nie ma szansy zrobić. Co ma u Ciebie robić funkcja NVIC_Configuration? Zwróć uwagę, że włącza ona przerwanie,...
Zbych_: Tylko dlaczego zależało to od stopia optymalizacji i co najdziwniejsze, im mniej optymalizował tym gorzej (zazwyczaj problemy się robią przy zwiększaniu stopnia optymalizacji). Niestety moja szklana kula jest w naprawie. Skoro masz możliwość debugowania, to czemu nie sprawdzisz, które przerwanie/wyjątek jest wywoływany i która instrukcja to...
1. Ta płytka nie ma wbudowanego JTAGa. W przeciwnym wypadku po do by jej było złącze JTAG 20-pin? 2 + 3. Na stronce dostępny jest trial wersji "rozbudowanej", w darmowej musisz sam zadbać o skrypt linkera i startup. Wbrew pozorom nie jest to takie trudne - dobry przykład (polecam te z mojej stronki dla stm32 - http://www.elektroda.pl/rtvforum/topic13...
Szukam sposobu na wywołanie przerwania z programu. W ARM sprawa prosta, wpis do NVIC i mam dowolne przerwanie. W AVR rozwiązywałem to przez wolny pin GPIO. Ustawiałem jako PCINT, gdy potrzebowałem przerwania, ustawiałem GPIO w stan niski. W przerwaniu PCINT przywracałem poziom wysoki. Niestety nie mam wolnych pinów. Jest w AVR rozkaz BRK generujący...
Jeżeli chodzi o debugowanie w Keil, to odmawia mi posłuszeństwa. Debugowałem w Eclipse korzystając z jakiegoś znalezionego serwera to zawsze wpadał mi w Reset_Handler czyli prawdopodobnie się restartuje. Na początku nie brałem tego poważnie pod uwagę stwierdziłem, że proces debugowania jest niepoprawny, lecz teraz widzę, że to chyba nie tylko w debugowaniu...
Stos, pamięć, kto to wie? Raczej HAL-a nikt nie będzie debugował. Takie podmianki część plików stąd część nie wiadomo skąd - raczej nigdy nie działają. Zrób sobie projekt z Cube i zaimportuj. Nie sądze abyś miał problemy. Albo napisz sobie to samo na rejestrach i zobacz. Praca na 10 minut.
a mam jeszcze jedno pytanko, jak to zrobić, żeby zmieniać szybkość wyświetlania tej zmiennej z wyświetlacza, chcę robić coś ala zegarek, wiem że powinienem użyć RTC, ale dla sprawdzenia siebie chciałem zrobić to na przerwaniu i timerze. i tu też pojawił się problem, bo jak zmieniam zawartość T0MRO, to się zmienia, zmienia się szybkość wyświetlania,...
Tak, stworzyłem OpenBeken i zrobiłem symulator. To moje narzędzie służące do przyspieszenia rozwoju OpenBeken. Nie dostaję błędów autotestu, więc to dziwne, warto to sprawdzić, ale może zrobimy to później. W symulatorze rzeczywiście nie ma komponentu rejestru przesuwnego, ale nadal możesz bawić się wszystkimi innymi funkcjami OBK, w tym MQTT i Hass...
Witam, Mam Atmege88 i chciałem spróbować napisać obsługę przerwania wew. zegara 16bitowego. Korzystając z książki, która traktuje o atmedze8 i dokumentacji do atmegi88 udało mi się napisać taki oto mnw. kod: #include<avr/io.h> #include<avr/interrupt.h> //(...) ISR(TIMER1_OVF_vect) { // moj kod przerwania } ISR(BADISR_vect)...
witam! U mnie też wystąpił ten problem. dostałem od znajomego link: www . sealtech-inc . com / index2 . php Jako ze to zaufany znajomy, klilknalem, pojawilo sie okienko dosowe w ktorym nic nie pisało. po jakims czasie okazalo sie ze powysylalem ten link do wszystkich na liście, i zaczelo mi to przychodzic od innych ludzi (pewnie tych co klikneli) ale...
Właśnie problem w tym że przy debugowaniu po zakończeniu jednego przerwania kolejne nie było wykonane(chyba że coś źle zinterpretowałem)... Tak czy inaczej jutro spróbuje to zasymulować jeszcze raz bo dziś mam napięty dzień i o efektach poinformuje. Puki co priorytet przerwań nie ma większego znaczenia tak więc nie daje sei w przerwaniu. Dzięki za wskazówkę...
Ja programuje troche ARMy i ani razu nie uzylem debugera (tez mam Jtaga Krictecha i musze przyznac ze debugowanie programu ktory wykorzystuje przerwania nie jest dobrym pomyslem). Dobrą metodą jest uzycie jednego z UARTow (np DBGU) do wysylania interesujacych nas danych na terminal. W ten sposob mozna podejrzec konkretne zmienne czy rejestry w interesujacych...
Aajednak nie działa. Akurat trafiłem na dobrą passę, że działało;/ Źadnych przerwań zewnętrznych nie ma, w ogóle w sumie nie ma przerwań..
Nie znam się LPC2138, ale jeśli jest tak jak mówisz pod adresem 0x0000001C jest wektor jakiegoś przerwania to znaczy, że występuje to przerwanie i zdaje się nie jest obsługiwane przez Twój kod. Wygląda na to, że skacze pod adres 0x0000001C i tam są jakieś śmieci.
Zanim będziemy dalej debugować, czy możesz nam powiedzieć, czy używasz PowerSave, tak zwanego dynamicznego uśpienia? Mieliśmy już raporty mówiące, że PowerSave łamie precyzję BL0937, ponieważ BL0937 działa poprzez wysyłanie impulsów zliczanych przez przerwanie GPIO, a dynamiczny sen ma z tym problemy... Mimo to, sądząc po opisie problemu, nie sądzę,...
Mam nadzieję, że to ostatnie pytanie w tym temacie. Przedefiniowałem w config.h wyjście diody na PB14, oraz podłączyłem odpowiednio. Nadal jednak dioda nie miga. Z http://obrazki.elektroda.pl/5101784800_1... Any ideas ? :D
Mam taki proble kiedy włączam np. GG i chce napisac do kogoś wyskakuje mi taki błąd Instrukcja Spod "0x003e553c" odwołuje się do pamięci pod adresem "0x003e553c". Pamięć nie może być "read" Kliknij Przycisk OK, aby przerwać działanie aplikacji Kliknij Przycisk Anuluj, aby rozpocząć debugowanie programu z góry dzięki za odpowiedż:cry::cry::cry:
kompilacji oczywiście podlega bo inne procedury w nim umieszczone są wykonywane. Żadnych błędów podczas kompilacji lub linkowania nie ma, jedna sama procedura przerwania nie chce się wykonywać, podglądam to podczas debugowania w uVision
M128 to ATmega128, tmf się chyba pomylił. Nawiasem mówiąc ATmega16 też można debugować przez JTAG, ale trzeba by go najpierw mieć.
Nie wiemy jakich bibliotek używasz i w jakich wersjach - trudno powiedzieć. Problemem mogą być też zakłócenia bezpośrednie w komunikacji radiowej. De debugowania używaj terminala szeregowego.
Włączony systick. Wchodzi w niego. Bez debugowania zdąży 2 razy się uruchomić. Z debugowaniem po pierwszej instrukcji jest Hard Fault.
No ale co ten problem ma wspólnego z NVIC? Jak nie korzystasz z przerwań to nie występuje? 4\/3!!
Słuchaj kolego istotnie miałeś rację bo codevision nie generuje kodu przy gdy używasz przerwań od UART-a, ale nie ma problemu. Wytrzymaj do jutra wieczora to wygeneruję tobie kod w pełnej wersji. Niestety nie mam jej na komputerzez z którego piszę. Jednak zawsze możesz kod wygenerować i zaprogramować procka bez użycia przerwań. Niestety musisz go zaprogramować...
Program zachowuje się gdyby chciał a nie mógł skorzystać z SysTick_Handler. Najpierw kod: http://obrazki.elektroda.pl/6717645500_1... Przy zmniejszeniu ilości taktów na przerwanie w systicku i debugowaniu po kroku przerwanie w ogóle nie występuje. A gdy przy w/w kodzie ma być wywołane przerwane (via step to line) program wiesza się w...
Pojawił mi się ten komunikat kilka dni wcześniej nie pomaga skanowanie ani przywracanie systemu z innego dnia. można wszystko robić na komputerze,tylko przy zamykaniu systemu wyskakuje okienko ,odlicza 1min i następuje ponowne załączenie. Sprawdzałem dzisiaj i bez podłączonego internetu /radiowy/ wszystko jest OK. Komunikatu brak. /Instrukcja spod"0x00bf3f3b"...
Witam Siedzę już kilka dni nad tym i się poddałem. otóż napisałem prościutki program skonfigurowałem RTC i przerwanie w którym ma gasić lub zapalać diodę. konfiguracja RTC raczej poprawna bo korzystam w większym projekcie z LCD i zegar pracuje 3s ma nastąpić przerwanie i stoi. Przerwanie jest tylko z niewiadomego mi powodu przy debugowaniu pokazuje...
Wygląda na to że mamy progress :D Wielkie wirtualne piwo wędruje do Ciebie ;) I oczywiście "pomógł" ;) A masz może jakiś przykładowy projekt w Keilu ? Bo docelowo jego chciał bym używać ;) Ale tam nie moge opanować debugowania nawet :/ Może to wina wigglera i H-Jtaga ? Używałeś może takiej konfiguracji ?
A ja zapytam o schemat, bo skoro masz problemy z błędami transmisji to tutaj może leżeć przyczyna którą trzeba znaleźć, by nie musieć robić obsługi na przerwaniach, gdyż to nie jest tak proste zadanie, jak już zaimplementowane rozwiązanie, które masz. Choć oczywiście przerwania rulez!
Użytkuję płytkę STM32F429-Discovery, środowisko budowałem w oparciu o poradnik od Freddiego, makefile oraz skrypt linkera także od Freddiego, tak słowem wstępu. Problem który napotykam jest związany z powrotem z przerwania EXTI0. Jeżeli przerwanie zostanie wyzwolone, w tym przypadku pojawi się zbocze narastające na PA0 do którego mam podpięty przycisk,...
Tak mnie właśnie olśniło (a może i nie ..:) ). Może problem nie leży w błednej obsłudze przerwania tylko w zachowaniu debuggera ? :) Jeśli uruchomię program w gdb komendą "continue" a następnie przerywam CRTL-C dostaje komunikat: Continuing. Program received signal SIGINT, Interrupt. __Default_Handler () at vectors.c:24 (gdb) Czy...
Witam! Kilka dni temu kolega przeinstalował mi Windows XP Professional. Podczas pracy na różnych programach wyświetla mi się błąd : Instrukcja spod "0x60641983" odwołuje się do pamięci pod adresem "0x00000000".Pamięć nie może być "read" Kliknij przycisk OK , aby przerwać działanie aplikacji Kliknij przycisk Anuluj , aby rozpocząć debugowanie programu...
obsługa przerwania timera nie może też trwać zbyt długo żeby nie było "przerwania w przerwaniu" - kilka tyknięć zegarka i masz zawalony stos adresami powrotu (zwiecha) Nie. Jeźeli przerwanie jest aktualnie wykonywane, to drugie takie samo przerwanie poczeka grzecznie aż zakończy się pierwsze. Jeżeli w tym czesie jeszcze wystąpi trzecie przerwanie to...
Ja po prostu stosuję -Os, ponieważ ta opcja włącza dziesiątki różnych przełączników optymalizacji, nigdy nie miałem dosyć samozaparcia, aby to analizować. Jednak pamiętaj, aby nie debugować przy -O0 (wyłączonej optymalizacji) - wtedy generowany kod jest tak znacząco różny, że debugowanie traci sens. Najniższym akceptowalnym poziomem jest -O1. Z drugiej...
W załączniku przesyłam przykładowy projekt. Czy ktoś używający tego środowiska jest w stanie pomóc? EDIT: Po dłuższych poszukiwaniach udało mi się dojść do przyczyny. Okazało się, że winowajcą jest linijka z [syntax=c]printf("Demo\n\r");[/syntax] Jak rozumiem jest to jakiś debugowy printf, tak? Tylko dlaczego wcześniej użyty w linii 43 nie sprawiał...
Dzięki za podpowiedź.Faktycznie nie doczytałem że jest bufor na tylko trzy wiadomości - myślałem na podstawie dokumentacji jakoś że ich jest 8 lub 64 nawet. Finalnie udało mi się to uruchomić - nie wiem czy na 100% zgodnie ze sztuką programowania - ale kod który pokazałem finalnie okazał się być działającym. Problemem było debugowanie samo w sobie -...
A propos tych breakpointów - AS z pewnością zaznaczył, że breakpoint jest nieaktywny - ze względu na optymalizację nie w każdym miejscu da się go założyć. W takiej sytuacji wystarczy przejść w okno disasemblera i tam założyć breakpointa - to zawsze zadziała. Poza tym AS z pewnością się nie zawiesił, po prostu symulował program, który się nie przerywał....
Tu możemy użyć takiego uproszczenia, bo adres jest parzysty i w LSB ma pełne zero, a danych jest mniej niż 255. Zatem sprawdzenie czy Zl==100 (r18) jaki robi CPSE już po postinkrementacji w LPM dokładnie odliczy 100 przerwań.
nie wiem jeszcze jak włączyć generowanie listingu w SW4STM32 Co IDE to inaczej. Możesz też włączyć debugowanie. Przy pracy krokowej widać jakie rozkazy ASM sa wykonywane.
Jak to ta sama seria to nie musisz zmieniać wektora przerwań, ale w skrypcie linkera wypadało by pozmieniać rozmiary pamięci i powinno być ok.
Witam! Ustawiłem wiele przerwań w apce, wszystko smiaga PCINT-a nie mogę. Przeczytalem datashita o tym 20 razy wszystko wygląda ok a nie rzuca przerwania. inicjalizacja: [syntax=c]DDRC &= ~(1 << PC7); //pc7 as input (PCINT15) PCMSK1 |= (1 << PCINT15); // port PCINT15 PCICR |= (1 << PCIE0); [/syntax] obsluga przerwania - czyli na...
Cześć i czołem. Od dwóch tygodni walczę na noże z stmem 32f429 i nie bardzo chce cokolwiek działać. Problem jest dość trywialny: nie działają przerwania. Jedynie projekt wygenerowany przy pomocy CubeMX'a potrafi zrobić przerwania, ale znowu nie chce przyjmować klas etc. Zresztą, wolę unikać tego narzędzia, wolę rozumieć co gdzie jest i dlaczego. Próbuję...
(...) czas odcięta przy użyciu inwertera z bramką NAND (np. 74LS00). Jeśli chcesz dodatkowo zobrazować dane na magistrali w trakcie pracy, proponuję zainstalowanie matrycy LED sterowanej przez rejestry przesuwne, co pozwoli na wizualne monitorowanie aktywności sygnałów. W razie problemów pytaj śmiało nas i Wstępna ocena dostępnych informacji Analizując...
Zrobiłem aktulizację emulatora: https://github.com/andrzejlisek/Cobra1/r... Widzę kawał dobrej roboty... Jak tylko uruchomię egzemplarz z działającymi przerwaniami INT uruchomię plajera PT3, takiego z podskakującymi paskami i opisówką. Patrząc na emulator w sumie brakuje mi okna stanu CPU oraz podglądu pamięci RAM i ROM. To już byłoby...
Z programowaniem to już jest tak że ja np sam jak piszę coś i ma to być z zalożenia coś nie skomplikowanego, to sobie wszystko zaplanuje tak, że mam wszystko fanie w modułach, różnych plikach itd itp. Najgorzej jest później jak nagle klient, chce mieć coś tam więcej, albo inaczej. W tedy często się robi coś na szybko i już to często nie jest best practice,...
Nie bardzo rozumiem. Jak to zrobić? Cache jest przy core. DMA zapisuje w SRAM. Jezeli DMA zapisze coś a akurat core ma to cache to core tego nie będzie widział. Tak samo jak procesor cos zapisze w pamięci (ale jeszcze to nie "wyszło" z cache to DMA odczytując dane zobaczy tylko to co jest naprawdę w SRAM). DMA pisze i czyta ze SRAM ale nie aktualizuje...
Mam taki komunikat przy włączaniu komputera [po hibernacji nie występuje]. Drażni mnie to i bez przyczyny komunikat nie występuje, oznacza to błąd. Szukałem błędu w sieci ale nie znalazłem odpowiedzi na dręczący mnie problem. ati video bios poller client ati2evxx exe - Błąd alikacji. Instrukcja spod "0x00000000" odwołuje się do adresu pamięci "0x00000000"....
U mnie kod: .org 0 start: inc r1 rjmp start działa poprawnie (AVR Studio 4, ver 4.12 sp1 build 462). No wiec asemblacja przebiega prawidlowo, lecz podczas debugowania program wyskakuje z obiegu. Tzn. co się dzieje ? Co do eeprom, spróbuj tak: .ESEG eevar1: .DW 0x1234 Po asemblacji wygenerowany zostanie plik nazwa_projektu.eep, wrzucasz go za pomoca...
Witam mam problem z w\w grą. Wa początku gra sie włącza normalnie naciskam nowa gra i tu zaczyna sie problem podczas jej wczytywania wyskakuje mi błąd w aplikacji wystąpił wyjątek unknow software exception (0x80000003) pod adresem 0x009326a5 Kliknij przycisk OK, aby przerwać działanie aplikacji Kliknij przycisk Anuluj, aby rozpocząć debugowanie...
Jak kod generujesz w CubeMX to daj breakpoint w pliku stm32...xx_it.c w funkcji: [syntax=c]/** * (at)brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_HardFault_IRQn 0 */ /* USER CODE END W1_HardFault_IRQn 0...
Środowisko: - LPC2148 na płytce ZL9ARM Kamami - JTAG Freediego - Eclipse Luna - Open On-Chip Debugger 0.8.0 (2014-04-28-08:42) - GNU gdb (GNU Tools for ARM Embedded Processors / bleeding-edge-toolchain-140708) 7.8.50.20140708-cvs - projekt łopatologiczny (Timer0 +miganie diodą) W sytuacji, gdy jednocześnie programuję procka i chcę debugować, po pierwszym...
Zawartość ekranu nie znajduje się w RAMie, tylko pamięci wideo GPU (VRAM) jednak dostęp do niej z poziomu user-mode jest niemożliwy. Chyba że skompilujesz sobie własny sterownik, albo wykorzystasz jakieś przerwania GPU, o ile będziesz w trybie debugowania. Nie mam prostego rozwiązania, jednak możesz spróbować zdumpować wszystkie elementy w /dev/ do...
Jak więc jest z tymi: __main_stack_size __process_stack_size Czy muszą być obydwa tworzone jeśli stosuję przerwania i nie mam OSa ? Jak już wyżej napisano można pracować na jednym. Ale ma to dwie poważne wady: 1. nie mamy gwarancji że zapełnionego stosu aplikacji wystarczy na obsługę przerwania, 2. jeśli stosy msp i psp są rozłączne to debugowanie...
Witam wszystkich i proszę o pomoc. Kilka dni temu kupiłem sobie właśnie grę Mount Blade Warband na steam. Zainstalowałem wszystko dobrze, fajnie się grało ale po 2 dniach czyli dzisiaj gdy próbuję włączyć wyskakuje mi taki komunikat: MountBladeWarband" mp_warband.axe- błąd aplikacji Instrukcja spod ''0x7c919af2'' odwołuję się do pamięci pod adresem...
Problem polega na tym że przy wielu programach, grach i innych aplikacjach podczas włączania pojawia się komunikat "w aplikacji wystąpił wyjątek unknown software exception (0x000001d) pod adresem (tu bywają różne kody). Kiknij ok aby przerwać, kliknij anuluj aby debugować". Przy uruchomieniu systemu pojawia się podobny problem tylko ma kod 0x00000010....
Przykład kursu C :[url=https://www.youtube.com/watch?v=Ya... Debugger służy nie tylko do wykrywania błędów. Przed rozpoczęciem debugowania, można zdefiniować miejsca w kodzie, w których wykonywanie oprogramowania powinno zostać wstrzymane: punkty przerwania lub punkty przerwania. Z jednej strony można...
Witam Jakiś czas temu wdarł mi się trojan i trochę mi napsocił: w czasie pracy systemu (czasami zaraz po zalogowaniu) wyskakuje mi informacja: svchost.exe - Błąd aplikacji Instrukcja spod "0x00000000" odwołuje się do pamięci pod adresem "0x00000000". Pamięć nie może być "written". Kliknij przycisk OK, aby przerwać działania aplikacji Kliknij przycisk...
Inżynierowie oprogramowania wbudowanego uwielbiają rozwiązywać problemy. To właśnie podstawa, tego, co robią. Niestety jednym z największych ich mankamentów jest to, że tworzą oni wiele niedoskonałości, aby następnie stać się bohaterami, spędzając ogromną ilość czasu na ich usprawnieniu (debugowanie!). To dość typowe, bez przeszkód można znaleźć firmy,...
Witam, podepnę się pod temat bo w podobnej konfiguracji działam ze swoją płytką, czyli (całość na x64, win7): - Eclipse Kepler (z GDB Hardware Debugging 7.2.0 + Zylin 4.18.1) - BET-131005 od Freddiego - Coreutils - openocd-x64-0.7.0 - płytka STM32F4Discovery Zaimportowany i skompilowany przykład od Freddiego (stm32f4_blink_led). Mój problem dotyczy...
no już Ci to napisałem. jezeli chcesz robić prawdziwe delaye to zrób sobie przerwanie timera (czy systicka) i inkrementuj jakąś zmienną w znanym sobie okresie czasu. Jak chcesz napisać sobie taką blokująca funkcję delay - to raczej w asemblerze, czy też inline asemblerze, aby nie byc zależnym od kompilatora jezeli chodzi o długość iteracji i optymalizacje,.
tablet debugowanie debugowanie biosu debugowanie laptop
stlink firmware zmiana oprogramowania philips pokrywa rozrządu oznaczenia
toshiba 32l4353d toshiba 32l4353d
Inwerter off-grid nie ładuje akumulatora 48V 860Ah Renault Midlum 180 dCi - trudny rozruch po regeneracji pompy i wtrysków