At 12:54 PM -0500 8/28/02, Ben Combee wrote:
>I didn't think POSE would let the device go to sleep.

Yes, Poser lets the device go to sleep.  Just try pressing the Power 
button.  :-)

One thing that Poser does in this area is set the auto-sleep timeout 
value to <never> when it boots a device.  However, it lets that value 
be changed (for example, with the General preferences panel).

>Unfortunately, the debug protocol between CodeWarrior's debugger and 
>POSE doesn't allow complicated retries.  The TCP/IP channel they use 
>is open all the time, and I think it is POSE that is hanging when it 
>tries to modify memory on the device.

Yes, I'm pretty sure it's Poser that's hanging, too.  The problem is 
that in order to handle the incoming debugger packet, Poser needs to 
synchronize the thread handling the packet with the thread performing 
the CPU emulation.  With the CPU thread "sleeping", the 
synchronization process hangs.  This problem is not insoluble, but 
occurs so infrequently (Kevin's experience aside) that I never got 
around to fixing it.

Fixing the problem may be tricky.  Some debugger packets have 
different requirements from others.  For instance, handling a "set 
breakpoint" packet should be pretty simple to handle, and doesn't 
require much synchronization with the sleeping CPU thread.  However, 
other packets (such as RCP packets) require a fully awake and running 
CPU thread.  Either that second problem would have to be solved in 
order to even handle "set breakpoint" packets, or the packets would 
have to be classified according to which could be handled when the 
device was asleep or not.

If anyone wants to take this on, I can lead them around the source code.

-- Keith Rollin
-- Palm OS Emulator engineer

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to