Witam.
Uruchomiona komunikacja po UART - komputer PC - urządzenie na Atmega32.
Z poziomu klawiatury PC wysyłam znaki. Po odebraniu przez urządzenie kodu klawisza enter urządzenie wykonuje polecenie (złożone z uprzednio wysłanych znaków).
W celu wygodnego debugowania softu (bez tworzenia celowych pułapek, ponownej kompilacji kodu i programowania uP) chciałbym zrealizować komendę debug, która zwróci wartość zmiennej o którą pytam: debug [nazwa zmiennej].
Np. jeśli zmienna_byte$ jest w danej chwili równa 5, chciałbym, aby komenda:
debug zmienna_byte$ spowodowało, że urządzenie na Atmega32 odeśle po UART znak "5".
Wydaje mi się, że nie jest to możliwe. Co najwyżej można by zrobić pamięciożerny case:
Załóżmy, że program wykorzystuje 300 różnych zmiennych. Case byłoby długie i pamięciożerne. Chodzi właśnie o to by uniknąć zużycia pamięci.
Uruchomiona komunikacja po UART - komputer PC - urządzenie na Atmega32.
Z poziomu klawiatury PC wysyłam znaki. Po odebraniu przez urządzenie kodu klawisza enter urządzenie wykonuje polecenie (złożone z uprzednio wysłanych znaków).
W celu wygodnego debugowania softu (bez tworzenia celowych pułapek, ponownej kompilacji kodu i programowania uP) chciałbym zrealizować komendę debug, która zwróci wartość zmiennej o którą pytam: debug [nazwa zmiennej].
Np. jeśli zmienna_byte$ jest w danej chwili równa 5, chciałbym, aby komenda:
debug zmienna_byte$ spowodowało, że urządzenie na Atmega32 odeśle po UART znak "5".
Wydaje mi się, że nie jest to możliwe. Co najwyżej można by zrobić pamięciożerny case:
Select Case zapytanie
Case "zmienna_byte$" : Call print zmienna_byte$
Case "zmienna_byte$2" : Call print zmienna_byte2$
Case "zmienna_byte$3" : Call print zmienna_byte3$
...
Case "zmienna_byte$n" : Call print zmienna_byten$
End SelectZałóżmy, że program wykorzystuje 300 różnych zmiennych. Case byłoby długie i pamięciożerne. Chodzi właśnie o to by uniknąć zużycia pamięci.


