Ross
Mon Nov 05 14:52:10 PST 2007
This is indeed a kernel bug. Basically its a race condition between
PagePoolInit and initializing pCleanupThread. We've fixed this in our
current code base to do the initialize 1st. That said, you are getting low
on memory at a very early stage and there will likely be other issues due to
low memory if you got passed this one. You can workaround the issue by 1)
Adding memory memory, or 2) Reducing your memory footprint. If you'd like to
see a fix for this (QFE), please open a support request. You can do this by
either contacting whomever you obtained Windows CE from or you can use the
following link:
http://support.microsoft.com/oas/default.aspx?&c1=509&gprid=12015&
You can mention this thread / my name to expedite your request.
Thanks for reporting this,
Ross Jordan
Windows CE kernel team
"Jason Ni" <Jason Ni@discussions.microsoft.com> wrote in message
news:F07AD114-ED44-4CE2-AA87-BA500E5EB124@microsoft.com...
> My platform is ARM926 and only has 8 MB memory .
> The WinCE 6.0 Kernel always read address: 0x41 to cause data abort when
> booting.
> I try to trace the kernel code and find out the issue.
> SystemStartupFunc => PagePoolInit => InitPoolFromParameters => HoldPages
> The data abort is issued by HoldPages function in following code:
> physmem.c Line 689
> if (GET_CPRIO(pCurThread) < GET_CPRIO(pCleanupThread))
> The value of pCleanupThread is NULL at this time.
>
> The value of pCleanupThread wiil be assigned to pCurThread after
> PagePoolInit function.
>
> How to fix the issue?
> Assign the value for pCleanupThread before call PagePoolInit ?
> Or check if the pCleanupThread is NULL in physmem.c Line 689?
>
> Or that isn't a bug! Is it caused by other issue?
>
> Best Regards,
> Jason Ni