-
31. Data: 2009-10-14 19:25:59
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: "MiSTER" <1...@p...onet.pl>
> Na tyle są bliźniacze, że mają treść w zasadzie taką samą, ale wszelkie
> dane, parametry, flagi stanów i tabele na których operują pamiętane są w
> innym zestawie (A lub B). Jakby się uprzeć, to może dałoby się napisać
> jedną procedurę, która co chwila musiałaby się pytać, który kanał jest w
> tym momencie obrabiany albo jako parametry trzeba by przesłać
> kilkadziesiąt zmiennych. A większość tych parametrów i tak jest globalnych
> i znów przy wyjściu trzeba by je odzyskiwać z procedury.
W kwestii ogólnej:
To przeciez przesyła się do procedury wskaznik na strukturę i po sprawie.
Zamiast kilkudziesięciu zmiennych tylko jeden parametr, nic nie trzeba
zwracać, procesor nie musi mielić danych etc
Strukturę też mozna banalnie powielać - same plusy.
A zwracać procedura powinna tylko char lub int syknalizującego OK lub ERROR
Pozdrawiam
MiSter
-
32. Data: 2009-10-14 20:10:54
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: John Smith <d...@b...pl>
>
> Bo to wcale nie jest takie super narzedzie. Wyobraz sobie, ze zmienna
> ktora sledzisz jest modyfikowana w wielu miejscach i ciagle twoj program
> jest przerywany, mozna zeswierowac sledzac cos takiego.
Zawsze da się rozwiązać problem, albo ustawiając pułapkę warunkową,
a jeśli takiej nie można, to można wyłączyć, na czas debugowania,
zapis do zmiennej ze znanych miejsc, a ustawić pułapke na zapis
na zmienną.
Przepelnienie stosu jest o tyle proste do wykrycia, że często jest
nie używany obszar między stertą a zadeklarowanym stosem. Tu
ustawia się pułapke na zapis i po sprawie.
K.
-
33. Data: 2009-10-14 20:19:47
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: "T.M.F." <t...@n...mp.pl>
> Nie odpowiedziałeś na pytanie, to ja spróbuję.
> Twoja miłość do JTAG-a chyba nie jest odwzajemniona, nie widzę
> możliwości aby samodzielnie łącze JTAG-a miało możliwości
> debugowania w systemie uC. W ATMega jest dodatkowo
> moduł OCD w MSP430 jest moduł EEM.
> Sugeruję zapoznać się z dokumentem SLAA263B, mozliwości tego modułu
> są niesamowite i znacznie przerastają założenie prostej pułapki.
Wszyscy sie niesamowicie z tego powodu cieszymy. ATMega tez umozliwia
zalozenie pulapki warunkowej.
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
-
34. Data: 2009-10-14 20:28:41
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: "T.M.F." <t...@n...mp.pl>
> Zawsze da się rozwiązać problem, albo ustawiając pułapkę warunkową,
Jaki warunek proponujesz tu zastosowac, zeby wyeliminowac zapisy, ktore
nas nie interesuja?
> a jeśli takiej nie można, to można wyłączyć, na czas debugowania,
> zapis do zmiennej ze znanych miejsc, a ustawić pułapke na zapis
> na zmienną.
Zartujesz, prawda?
> Przepelnienie stosu jest o tyle proste do wykrycia, że często jest
> nie używany obszar między stertą a zadeklarowanym stosem. Tu
> ustawia się pułapke na zapis i po sprawie.
To bys musial ustawic pulapke na zakres adresow, bo przeciez one nie
musza byc zapisywane sekwencyjnie.
Prosciej to zrobic wpisujac do pamieci jakis wzor i sprawdzac okresowo
czy sie nie zmienil.
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
-
35. Data: 2009-10-14 20:41:54
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: John Smith <d...@b...pl>
>> Zawsze da się rozwiązać problem, albo ustawiając pułapkę warunkową,
>
>
> Jaki warunek proponujesz tu zastosowac, zeby wyeliminowac zapisy, ktore
> nas nie interesuja?
Tak złożonych warunków nie musiałem stosować w EEM ale z dokumentacji widzę,
że to możliwe. Przetestuję w wolnej chwili. Do tej pory nie miałem
takiego problemu programistycznego a więc debugowania. Programy
od początku piszę starannie.
>> a jeśli takiej nie można, to można wyłączyć, na czas debugowania,
>> zapis do zmiennej ze znanych miejsc, a ustawić pułapke na zapis
>> na zmienną.
>
> Zartujesz, prawda?
Nie, to jest proteza na _chwilę_. Program w tym czasie nie musi działać
zgodnie z założeniami. Trzeba wykryć gdzie jest problem i to jest celem.
Sam opis problemu przez Autora wątku, sugeruje radosną twórczość,
w takiej też stylistyce działania powinien szukać błędów.
>> Przepelnienie stosu jest o tyle proste do wykrycia, że często jest
>> nie używany obszar między stertą a zadeklarowanym stosem. Tu
>> ustawia się pułapke na zapis i po sprawie.
>
>
> To bys musial ustawic pulapke na zakres adresow, bo przeciez one nie
> musza byc zapisywane sekwencyjnie.
> Prosciej to zrobic wpisujac do pamieci jakis wzor i sprawdzac okresowo
> czy sie nie zmienil.
W EEM mam ustawioną taką pułapkę (na zapis do obszaru) od początku i wiem
gdzie nawala stos. Zresztą zdarza mi się to tylko z funkcjami bibliotecznymi.
K.
-
36. Data: 2009-10-14 20:42:27
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: John Smith <d...@b...pl>
>> Nie odpowiedziałeś na pytanie, to ja spróbuję.
>> Twoja miłość do JTAG-a chyba nie jest odwzajemniona, nie widzę
>> możliwości aby samodzielnie łącze JTAG-a miało możliwości
>> debugowania w systemie uC. W ATMega jest dodatkowo
>> moduł OCD w MSP430 jest moduł EEM.
>> Sugeruję zapoznać się z dokumentem SLAA263B, mozliwości tego modułu
>> są niesamowite i znacznie przerastają założenie prostej pułapki.
>
>
> Wszyscy sie niesamowicie z tego powodu cieszymy. ATMega tez umozliwia
> zalozenie pulapki warunkowej.
Jednej?
K.
-
37. Data: 2009-10-14 21:19:51
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: "T.M.F." <t...@n...mp.pl>
>>> Nie odpowiedziałeś na pytanie, to ja spróbuję.
>>> Twoja miłość do JTAG-a chyba nie jest odwzajemniona, nie widzę
>>> możliwości aby samodzielnie łącze JTAG-a miało możliwości
>>> debugowania w systemie uC. W ATMega jest dodatkowo
>>> moduł OCD w MSP430 jest moduł EEM.
>>> Sugeruję zapoznać się z dokumentem SLAA263B, mozliwości tego modułu
>>> są niesamowite i znacznie przerastają założenie prostej pułapki.
>>
>>
>> Wszyscy sie niesamowicie z tego powodu cieszymy. ATMega tez umozliwia
>> zalozenie pulapki warunkowej.
>
> Jednej?
Czterech.
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
-
38. Data: 2009-10-14 21:27:59
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: John Smith <d...@b...pl>
T.M.F. wrote:
>>>> Nie odpowiedziałeś na pytanie, to ja spróbuję.
>>>> Twoja miłość do JTAG-a chyba nie jest odwzajemniona, nie widzę
>>>> możliwości aby samodzielnie łącze JTAG-a miało możliwości
>>>> debugowania w systemie uC. W ATMega jest dodatkowo
>>>> moduł OCD w MSP430 jest moduł EEM.
>>>> Sugeruję zapoznać się z dokumentem SLAA263B, mozliwości tego modułu
>>>> są niesamowite i znacznie przerastają założenie prostej pułapki.
>>>
>>>
>>>
>>> Wszyscy sie niesamowicie z tego powodu cieszymy. ATMega tez umozliwia
>>> zalozenie pulapki warunkowej.
>>
>>
>> Jednej?
>
>
> Czterech.
>
Masz dokument opisujący OCD w ATMega?
K.
-
39. Data: 2009-10-14 21:38:41
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: Adam Dybkowski <a...@4...pl>
T.M.F. pisze:
>> Przepelnienie stosu jest o tyle proste do wykrycia, że często jest
>> nie używany obszar między stertą a zadeklarowanym stosem. Tu
>> ustawia się pułapke na zapis i po sprawie.
>
> To bys musial ustawic pulapke na zakres adresow, bo przeciez one nie
> musza byc zapisywane sekwencyjnie.
> Prosciej to zrobic wpisujac do pamieci jakis wzor i sprawdzac okresowo
> czy sie nie zmienil.
Taaa. Tylko od chwili przekroczenia stosu do momentu sprawdzenia, czy
wzór nie został nadpisany (choćbyś to robił nawet co 1 ms), mija
wystarczająco dużo czasu aby program skutecznie poszedł w maliny. Bo
raczej nie ustawiasz ograniczenia małego stosu gdy masz dużo RAMu.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
40. Data: 2009-10-14 21:45:05
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: "T.M.F." <t...@n...mp.pl>
W dniu 14.10.2009 23:38, Adam Dybkowski pisze:
> T.M.F. pisze:
>
>>> Przepelnienie stosu jest o tyle proste do wykrycia, że często jest
>>> nie używany obszar między stertą a zadeklarowanym stosem. Tu
>>> ustawia się pułapke na zapis i po sprawie.
>>
>> To bys musial ustawic pulapke na zakres adresow, bo przeciez one nie
>> musza byc zapisywane sekwencyjnie.
>> Prosciej to zrobic wpisujac do pamieci jakis wzor i sprawdzac okresowo
>> czy sie nie zmienil.
>
> Taaa. Tylko od chwili przekroczenia stosu do momentu sprawdzenia, czy
> wzór nie został nadpisany (choćbyś to robił nawet co 1 ms), mija
> wystarczająco dużo czasu aby program skutecznie poszedł w maliny. Bo
> raczej nie ustawiasz ograniczenia małego stosu gdy masz dużo RAMu.
>
To prawda, ale juz bede wiedzial w czym jest problem. W tym przypadku
identyfikacja problemu == jego rozwiazanie.
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.