Dear all:
My OS has the following appearance:
- Calibration.exe is running
- Press "Suspend" button
Then the OS(WinCE50) will be crashed!!
Only crushed while the Calibration.exe is running.
Does anyone has the problem?


Refer the link:
http://msdn2.microsoft.com/en-us/library/ms900951.aspx

In the step2:
2. Abort calibration if the calibration screen is up and in one of
the following states:
^^^^^^^^^^^^^^^^^^^^

How to abort the calibration? Please give me some hint, Thanks first.

Re: WinCE50 crashes while the Calibration.exe is running by Dogfu

Dogfu
Thu Apr 12 09:31:37 CDT 2007

When I press the "suspend" button, it will call
SetSystemPowerState( NULL, POWER_STATE_SUSPEND
, POWER_FORCE ); But the OEMPowerOff() isn't called.

SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
called

I try to exclude other drivers: Uart, Audio,.....But include Touch,
Display drivers.
Is there any debug method advanced? Thanks a lot.




Re: WinCE50 crashes while the Calibration.exe is running by CharlesWang

CharlesWang
Thu Apr 12 09:54:03 CDT 2007

what dose your calibration.exe do?
The 'suspend' button you pressed is the in Start button of CE or your GUI
application?


Charles

"Dogfu" wrote:

> When I press the "suspend" button, it will call
> SetSystemPowerState( NULL, POWER_STATE_SUSPEND
> , POWER_FORCE ); But the OEMPowerOff() isn't called.
>
> SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
> called
>
> I try to exclude other drivers: Uart, Audio,.....But include Touch,
> Display drivers.
> Is there any debug method advanced? Thanks a lot.
>
>
>
>

Re: WinCE50 crashes while the Calibration.exe is running by Dogfu

Dogfu
Thu Apr 12 20:00:10 CDT 2007

On Apr 12, 10:54 pm, Charles Wang
<CharlesW...@discussions.microsoft.com> wrote:
> what dose your calibration.exe do?
> The 'suspend' button you pressed is the in Start button of CE or your GUI
> application?
>
> Charles
>
> "Dogfu" wrote:
> > When I press the "suspend" button, it will call
> > SetSystemPowerState( NULL, POWER_STATE_SUSPEND
> > , POWER_FORCE ); But the OEMPowerOff() isn't called.
>
> > SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
> > called
>
> > I try to exclude other drivers: Uart, Audio,.....But include Touch,
> > Display drivers.
> > Is there any debug method advanced? Thanks a lot.

When my OS starts, it auto launches the Calibration.exe
[HKEY_LOCAL_MACHINE\init]
"Launch90"="Calibration.exe"
"Depend90"=hex:14,00

Then Press physical button which causes external interrupt and call
SetSystemPowerState( ).....
Then the system crushes....


Re: WinCE50 crashes while the Calibration.exe is running by CharlesWang

CharlesWang
Mon Apr 16 16:04:01 CDT 2007

Where you got this calibration.exe? from third party or it's your code?

"Dogfu" wrote:

> On Apr 12, 10:54 pm, Charles Wang
> <CharlesW...@discussions.microsoft.com> wrote:
> > what dose your calibration.exe do?
> > The 'suspend' button you pressed is the in Start button of CE or your GUI
> > application?
> >
> > Charles
> >
> > "Dogfu" wrote:
> > > When I press the "suspend" button, it will call
> > > SetSystemPowerState( NULL, POWER_STATE_SUSPEND
> > > , POWER_FORCE ); But the OEMPowerOff() isn't called.
> >
> > > SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
> > > called
> >
> > > I try to exclude other drivers: Uart, Audio,.....But include Touch,
> > > Display drivers.
> > > Is there any debug method advanced? Thanks a lot.
>
> When my OS starts, it auto launches the Calibration.exe
> [HKEY_LOCAL_MACHINE\init]
> "Launch90"="Calibration.exe"
> "Depend90"=hex:14,00
>
> Then Press physical button which causes external interrupt and call
> SetSystemPowerState( ).....
> Then the system crushes....
>
>

Re: WinCE50 crashes while the Calibration.exe is running by Dogfu

Dogfu
Tue Apr 17 03:00:25 CDT 2007

On Apr 17, 5:04 am, Charles Wang
<CharlesW...@discussions.microsoft.com> wrote:
> Where you got this calibration.exe? from third party or it's your code?
>
> "Dogfu" wrote:
> > On Apr 12, 10:54 pm, Charles Wang
> > <CharlesW...@discussions.microsoft.com> wrote:
> > > what dose your calibration.exe do?
> > > The 'suspend' button you pressed is the in Start button of CE or your GUI
> > > application?
>
> > > Charles
>
> > > "Dogfu" wrote:
> > > > When I press the "suspend" button, it will call
> > > > SetSystemPowerState( NULL, POWER_STATE_SUSPEND
> > > > , POWER_FORCE ); But the OEMPowerOff() isn't called.
>
> > > > SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
> > > > called
>
> > > > I try to exclude other drivers: Uart, Audio,.....But include Touch,
> > > > Display drivers.
> > > > Is there any debug method advanced? Thanks a lot.
>
> > When my OS starts, it auto launches the Calibration.exe
> > [HKEY_LOCAL_MACHINE\init]
> > "Launch90"="Calibration.exe"
> > "Depend90"=hex:14,00
>
> > Then Press physical button which causes external interrupt and call
> > SetSystemPowerState( ).....
> > Then the system crushes....

I try to use "Control Panel" --> "Stylus"
http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_01.jpg

When I press "Suspend button"( it will call SetSystemPowerState( NULL,
POWER_STATE_SUSPEND, POWER_FORCE ) )
Then the system will be crashed, it looks

http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_02.jpg


Re: WinCE50 crashes while the Calibration.exe is running by Dogfu

Dogfu
Tue Apr 17 05:06:43 CDT 2007

On Apr 17, 4:00 pm, Dogfu <aur...@gmail.com> wrote:
> On Apr 17, 5:04 am, Charles Wang
>
>
>
>
>
> <CharlesW...@discussions.microsoft.com> wrote:
> > Where you got this calibration.exe? from third party or it's your code?
>
> > "Dogfu" wrote:
> > > On Apr 12, 10:54 pm, Charles Wang
> > > <CharlesW...@discussions.microsoft.com> wrote:
> > > > what dose your calibration.exe do?
> > > > The 'suspend' button you pressed is the in Start button of CE or your GUI
> > > > application?
>
> > > > Charles
>
> > > > "Dogfu" wrote:
> > > > > When I press the "suspend" button, it will call
> > > > > SetSystemPowerState( NULL, POWER_STATE_SUSPEND
> > > > > , POWER_FORCE ); But the OEMPowerOff() isn't called.
>
> > > > > SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
> > > > > called
>
> > > > > I try to exclude other drivers: Uart, Audio,.....But include Touch,
> > > > > Display drivers.
> > > > > Is there any debug method advanced? Thanks a lot.
>
> > > When my OS starts, it auto launches the Calibration.exe
> > > [HKEY_LOCAL_MACHINE\init]
> > > "Launch90"="Calibration.exe"
> > > "Depend90"=hex:14,00
>
> > > Then Press physical button which causes external interrupt and call
> > > SetSystemPowerState( ).....
> > > Then the system crushes....
>
> I try to use "Control Panel" --> "Stylus"http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_01.jpg
>
> When I press "Suspend button"( it will call SetSystemPowerState( NULL,
> POWER_STATE_SUSPEND, POWER_FORCE ) )
> Then the system will be crashed, it looks
>
> http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_02.jpg- Hide quoted text -
>
> - Show quoted text -

I found that call TouchCalibrate( ), and then system goes to SUSPEND,
then the system will be crash .....


Re: WinCE50 crashes while the Calibration.exe is running by CharlesWang

CharlesWang
Tue Apr 17 14:50:01 CDT 2007

after you doulbe click Recalibartion button in Control Panel->Stylus,
How do you clcik Suspend button on Windows to suspend the device,
Do you have a progam running to watch a GPIO toggling to suspend your device?

What's in your debug message? How do you know the CE crash instead of only
display fades out?

Charles





"Dogfu" wrote:

> On Apr 17, 4:00 pm, Dogfu <aur...@gmail.com> wrote:
> > On Apr 17, 5:04 am, Charles Wang
> >
> >
> >
> >
> >
> > <CharlesW...@discussions.microsoft.com> wrote:
> > > Where you got this calibration.exe? from third party or it's your code?
> >
> > > "Dogfu" wrote:
> > > > On Apr 12, 10:54 pm, Charles Wang
> > > > <CharlesW...@discussions.microsoft.com> wrote:
> > > > > what dose your calibration.exe do?
> > > > > The 'suspend' button you pressed is the in Start button of CE or your GUI
> > > > > application?
> >
> > > > > Charles
> >
> > > > > "Dogfu" wrote:
> > > > > > When I press the "suspend" button, it will call
> > > > > > SetSystemPowerState( NULL, POWER_STATE_SUSPEND
> > > > > > , POWER_FORCE ); But the OEMPowerOff() isn't called.
> >
> > > > > > SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
> > > > > > called
> >
> > > > > > I try to exclude other drivers: Uart, Audio,.....But include Touch,
> > > > > > Display drivers.
> > > > > > Is there any debug method advanced? Thanks a lot.
> >
> > > > When my OS starts, it auto launches the Calibration.exe
> > > > [HKEY_LOCAL_MACHINE\init]
> > > > "Launch90"="Calibration.exe"
> > > > "Depend90"=hex:14,00
> >
> > > > Then Press physical button which causes external interrupt and call
> > > > SetSystemPowerState( ).....
> > > > Then the system crushes....
> >
> > I try to use "Control Panel" --> "Stylus"http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_01.jpg
> >
> > When I press "Suspend button"( it will call SetSystemPowerState( NULL,
> > POWER_STATE_SUSPEND, POWER_FORCE ) )
> > Then the system will be crashed, it looks
> >
> > http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_02.jpg- Hide quoted text -
> >
> > - Show quoted text -
>
> I found that call TouchCalibrate( ), and then system goes to SUSPEND,
> then the system will be crash .....
>
>

Re: WinCE50 crashes while the Calibration.exe is running by CharlesWang

CharlesWang
Tue Apr 17 15:16:05 CDT 2007

Do you have the FLASH storage ready for registry? do you have the correct
component added into your image for registry?

Charles


"Dogfu" wrote:

> On Apr 17, 4:00 pm, Dogfu <aur...@gmail.com> wrote:
> > On Apr 17, 5:04 am, Charles Wang
> >
> >
> >
> >
> >
> > <CharlesW...@discussions.microsoft.com> wrote:
> > > Where you got this calibration.exe? from third party or it's your code?
> >
> > > "Dogfu" wrote:
> > > > On Apr 12, 10:54 pm, Charles Wang
> > > > <CharlesW...@discussions.microsoft.com> wrote:
> > > > > what dose your calibration.exe do?
> > > > > The 'suspend' button you pressed is the in Start button of CE or your GUI
> > > > > application?
> >
> > > > > Charles
> >
> > > > > "Dogfu" wrote:
> > > > > > When I press the "suspend" button, it will call
> > > > > > SetSystemPowerState( NULL, POWER_STATE_SUSPEND
> > > > > > , POWER_FORCE ); But the OEMPowerOff() isn't called.
> >
> > > > > > SetSystemPowerState( ) ----> ???Crash ??? ---> OEMPowerOff() isn't
> > > > > > called
> >
> > > > > > I try to exclude other drivers: Uart, Audio,.....But include Touch,
> > > > > > Display drivers.
> > > > > > Is there any debug method advanced? Thanks a lot.
> >
> > > > When my OS starts, it auto launches the Calibration.exe
> > > > [HKEY_LOCAL_MACHINE\init]
> > > > "Launch90"="Calibration.exe"
> > > > "Depend90"=hex:14,00
> >
> > > > Then Press physical button which causes external interrupt and call
> > > > SetSystemPowerState( ).....
> > > > Then the system crushes....
> >
> > I try to use "Control Panel" --> "Stylus"http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_01.jpg
> >
> > When I press "Suspend button"( it will call SetSystemPowerState( NULL,
> > POWER_STATE_SUSPEND, POWER_FORCE ) )
> > Then the system will be crashed, it looks
> >
> > http://img.photobucket.com/albums/v231/auronc/2007-04-17_154645_02.jpg- Hide quoted text -
> >
> > - Show quoted text -
>
> I found that call TouchCalibrate( ), and then system goes to SUSPEND,
> then the system will be crash .....
>
>

Re: WinCE50 crashes while the Calibration.exe is running by Dogfu

Dogfu
Tue Apr 17 21:09:04 CDT 2007

My device has physical button which makes an external interrupt while
it is pressed.
After I click Recalibartion button in Control Panel->Stylus, I can
press the physical button and it will call SetSystemPowerState( NULL,
POWER_STATE_SUSPEND, POWER_FORCE ).

When the display is crashed, the ActiveSync will be disconnected, So I
think the OS is crashed.


Re: WinCE50 crashes while the Calibration.exe is running by CharlesWang

CharlesWang
Fri Apr 20 09:04:03 CDT 2007

The ActiveSync should be disconnected during suspend, that's normal.
Double check the registry storage running good and also the correct
component is added into image correctly.

better way to dig out the root cause is to make a DEBUG build to look
thorough the messages when you think the os "CRASH".




"Dogfu" wrote:

> My device has physical button which makes an external interrupt while
> it is pressed.
> After I click Recalibartion button in Control Panel->Stylus, I can
> press the physical button and it will call SetSystemPowerState( NULL,
> POWER_STATE_SUSPEND, POWER_FORCE ).
>
> When the display is crashed, the ActiveSync will be disconnected, So I
> think the OS is crashed.
>
>

Re: WinCE50 crashes while the Calibration.exe is running by Dogfu

Dogfu
Fri Apr 20 20:36:19 CDT 2007

On Apr 20, 10:04 pm, Charles Wang
<CharlesW...@discussions.microsoft.com> wrote:
> The ActiveSync should be disconnected during suspend, that's normal.
> Double check the registry storage running good and also the correct
> component is added into image correctly.
>
> better way to dig out the root cause is to make a DEBUG build to look
> thorough the messages when you think the os "CRASH".
>
> "Dogfu" wrote:
> > My device has physical button which makes an external interrupt while
> > it is pressed.
> > After I click Recalibartion button in Control Panel->Stylus, I can
> > press the physical button and it will call SetSystemPowerState( NULL,
> > POWER_STATE_SUSPEND, POWER_FORCE ).
>
> > When the display is crashed, the ActiveSync will be disconnected, So I
> > think the OS is crashed.

Hi Charles:
I found the problem.
1. When I press physical button which makes an external interrupt. The
code flow :
Power Button Event
|
V
v_GPIO->Status = 0x2bed;
|
V
SetSystemPowerState( NULL,POWER_STATE_SUSPEND, POWER_FORCE )


2. At the same time, the Kernel function, ODMIdle( )
ODMIdle( )
{
while( v_GPIO->Status == 0x2bed ) ;

// go to idle...
}

The crash problem seems the wile loop always runs while the system
goes to suspend state.
I don't know why the BSP provider uses the trick.
I set v_GPIO->Status = 0, the problem disappeared.