Main Site Documentation

G30TH watchdog exception


#1

Hi,

i get this error when trying to use the watchdog on G30TH module:

NETMF Version: v4.3
Device and TinyCLR version: 4.3.8.1

Output:

The thread ‘’ (0x2) has exited with code 0 (0x0).
A first chance exception of type ‘System.InvalidOperationException’ occurred in GHI.Hardware.dll
An unhandled exception of type ‘System.InvalidOperationException’ occurred in GHI.Hardware.dll

Call stack:

TisakG30THK14.exe!TisakG30THK14.Program.Main() Line 47 + 0x41 bytes C#


#2

Can you post a small but complete example the shows the issue?


#3

An example from here
http://old.ghielectronics.com/docs/31/watchdog
1st deploy and debug works, every other afterwards throws an exception
then I have to use FEZ config to erase the app so that I can debug again.

found a semi-workaround here:

I have 30 unattended devices rolled out two weeks ago that started freezing, couldn’t get the watchdog to work.

also as a side problem I cannot get the new TinyCLR OS to work on G30TH, I know its still alpha release but the new config tool does not work at all.


#4

So we’re clear and we don’t miss any steps, can you start with a freshly flashed device and list here every step you take that reproduces the exception? Include everything like reset the board, apply power, deploy a given program, and so on.

For other issues you may have, like the TinyCLR OS on G30, that is also best done in it’s own thread.


#5
  1. Connect a fresh device to USB and FEZ config ping it
  2. Select the device in VS
  3. Debug the app
  4. Works OK!
  5. Stop Debug
  6. Start Debug again
  7. Exception!

A first chance exception of type ‘System.InvalidOperationException’ occurred in GHI.Hardware.dll
An unhandled exception of type ‘System.InvalidOperationException’ occurred in GHI.Hardware.dll

Only thing that works is:

8.Erase app with FEZ config
9.Disconnect USB
10.Connect USB
11.Debug the app
12.Repeat 8-11 every time


#6

We were able to reproduce the issue with the G30, but we do not have a fix at this time. You may be able to work around it by using the Register class to access the processor watchdog registers directly instead of using our class.