What about ARM chips?
What do we know about Palm's switch to ARM processors?
Note: Obviously, with many new ARM-based Palms, we now know quite a bit more than we did back when this article was last updated. This article is in dire need of a rewrite to any enterprising young editor out there.
Palm has only made a few specific details public, but they were quite open about some things at PalmSource 2000, mostly to warn developers about behavior that would be unsafe when porting code to the new devices.
First, Palm isn't switching to ARM as a way to improve device speed. That is a nice side effect, but the primary reasons are:
- lower power consumption for an equivalent speed device
- multiple CPU suppliers for ARM versus just one (Motorola) for Dragonball
- compatibility with the CPUs used in many cell phones
Palm said they would be building the new PalmOS for the ARM 4 architecture. This is the native architecture of the ARM7 series, and its instructions are supported by the ARM9 and StrongARM cores. Palm will not be supporting the Thumb extension, which means that applications will be 32-bit only. The new PalmOS will have an emulation mode for 68K applications.
At PalmSource 2000, Palm demonstrated PalmOS 3.5 running on a Cirrus Logic ARM7 evaluation board. They had IR working on the board, and the demonstrator beamed a 68K chess program from a Palm V to the ARM unit where it executed under emulation.
The new PalmOS will have the OS core implemented in native ARM code and will switch out of the emulator on system traps. Because of this, code that patches system traps may not run on the ARM-based devices. Palm has not announced any workaround for programs that rely on patching system calls.
Palm representatives have indicated that the ARM cores will work in little-endian mode (least significant byte first). This is opposite to the 68K's big-endian mode (most significant byte first). Some system data structures that are exposed through system calls will be byteswapped when called from 68K code, but not all. Applications are expected to use the new accessor calls in PalmOS 4.0 to get access to any structure members, and those that aren't updated to use these calls (or their glue equivalents) may crash hard on a ARM-based unit. Some data structures will also have to be reworked to account for the ARM's 32-bit alignment requirement for 4-byte data.
There will be a new shared library model for ARM that supports library features from larger operating systems, including global variables and automatic loading.
The new OS introduced for ARM will have enhanced PIM applications with different data formats.
Palm expects to ship an ARM-based OS in 2002. Speculation would be early 2002, since the 2001 PalmSource is in late October, and usually Palm likes to give their developers a two to three month headstart on new technologies before products are available.