O'Reilly logo

Palm OS Programming, 2nd Edition by Neil Rhodes, Julie McKeehan

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Stack Space

Prior to OS 3.0, the stack space was fixed at about 2.5 KB. For OS 3.0 and beyond, an application can provide a resource specifying a desired stack size. If no such resource is defined, the default stack size is 4 KB.

Keep in mind that stack space is used by all of the following:

  • Your application code directly

  • The OS, whenever you call an OS routine

  • Other applications when called by the OS (e.g., during a Find, a Beam Receive, or an Alarm)

For those launch codes where the OS provides a new stack to an application (like sysAppLaunchCmdNormalLaunch), it does so by allocating a nonrelocatable memory block, and setting up the processor’s stack pointer to the last byte of that memory block. On the processors currently used by the Palm OS, the stack grows down (as items are pushed on the stack, the stack pointer points to lower memory addresses).

In order to specify a stack size other than the default, you’ll need a `pref' resource, with ID 0. The resource consists of the following:

Priority

A 2-byte integer specifying the priority of this application. It is currently unused, but you should set it to 30.

stackSize

A 4-byte desired stack size (in bytes). The default, if you don’t provide a stack size is 0xD00 (3.25 KB) for OS 3.0 to OS 3.3, and 3.5 KB for OS 3.5 and OS 4.0.

minHeapSpace

A 4-byte minimum heap size necessary for this application to run. It is currently unused, but you should set it to 0x1000 (4 KB).

APIs

There is a single API that returns information about ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required