On NetMF v4.3, RebootDevice(false) seems to be causing the G120 SOM to hang- the code doesn’t run past that point.
Using NetMF v4.2, I was able to disable the display and use P1_21 and P1_22 as digital inputs. I used the RebootDevice(false) call if a reboot was indicated by the return from Display.Disable().
Thanks for the attention to this issue- by your question I’m assuming this is not a “known issue” so I am evaluating work-around options.
However, it would be great to get this working the same way as it does on NetMF v4.2 so that we don’t have to change our PCB to reroute to different pins.
First, the symptoms of the problem:
A manual power cycle is required after erasing the G120’s accessible memory and reloading the loader, firmware, and application.
A manual power cycle is required after an in-field update after the device loads the new code, resets, and runs the application. The applicatoin is hanging up when the reboot command is issued.
Next- context of the issue:
We do an in-field update, which clears the display configuration.
The reboot out of the in-field-update works fine.
It is my understanding that we need to configure the display as “headless” to use the P1_21 and P1_22 pins as inputs.
So, we use Display.Disable() and then check the boolean return to see if we need to reboot the G120.
If the display is already disabled, the application runs fine.
However, if the application does the RebootDevice(false) call, the G120 locks up.
The references we make:
using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using GHI.Processor;
The code we run:
bool bReset = Display.Disable();
if (bReset)
{
PowerState.RebootDevice(false);
}
@ SecretSquirrel - We have not seen it before, no. Which 4.3 SDK are you using? Ideally can you create an entire but minimal program that shows that issue so we can run it unchanged here? It may be as short as the code you posted put in Main(). We just want to have something that is verified to fail on your end that we can also test here.
Thanks for all the replies- I worked based on them and determined that RebootDevice() is not the problem. The reboot still hangs after an in-field update (manual power cycle required) so I will continue from there and start another thread if I have another question.