Od kilku dni "walczę" z dość ciekawym zagadnieniem. Mianowicie, próbuję debugować aplikację używającą interfejsu USB do komunikacji z użytkownikiem. Mikrokontroler to Xmega serii A3U, debugerem jest Dragon a łączę się za pomocą JTAG.
Problem polega na tym, że kiedy ustawiam pułapkę (breakpoint) i podczas pracy programu trafiam w nią cała komunikacja USB "zamiera". Oczywiście ma to sens, ponieważ praca kontrolera i jego peryferiów jest wstrzymana, więc nie reaguje na pakiety wysyłane przez PC. W instrukcji znalazłem następujący fragment :
Czy ktoś z was może wie, jak ten tryb uruchomić ? Być może ma ktoś doświadczenie z debugowaniem tego typu aplikacji i zna jakieś sprytne sztuczki ?
Problem polega na tym, że kiedy ustawiam pułapkę (breakpoint) i podczas pracy programu trafiam w nią cała komunikacja USB "zamiera". Oczywiście ma to sens, ponieważ praca kontrolera i jego peryferiów jest wstrzymana, więc nie reaguje na pakiety wysyłane przez PC. W instrukcji znalazłem następujący fragment :
Cytat:20.12 On-chip Debug
When a break point is reached during on-chip debug (OCD) sessions, the CPU clock can be below 12MHz. If this
happens, the USB module will behave as follows:
USB OCD break mode disabled: The USB module immediately acknowledges any OCD break request. The USB module
will not be able to follow up on transactions received from the USB host, and its behaviour from the host point of view is
not predictable.
USB OCD break mode enabled: The USB module will immediately acknowledge any OCD break request only if there are
no ongoing USB transactions. If there is an ongoing USB transaction, the USB module will acknowledge any OCD break
request only when the ongoing USB transaction has been completed. The USB module will NACK any further
transactions received from the USB host, whether they are SETUP, IN (ISO, BULK), or OUT (ISO, BULK).
Czy ktoś z was może wie, jak ten tryb uruchomić ? Być może ma ktoś doświadczenie z debugowaniem tego typu aplikacji i zna jakieś sprytne sztuczki ?