What is new in CodeWarrior for Palm OS Platform Version 8?
A few days ago, I posted a long list of changes made from CWPalm 7 and CWPalm 8. In case you don't read the palm-dev list, here is what I posted:
Here are the new features in V8, written off the top of my head with some reference to our release notes.
- We updated the IDE from 4.1 to 4.2.5. There are few new features in the 4.2.5 IDE that users will use, but there are lots of bug fixes, and there are some infrastructure changes that enabled other things we do in this release.
- We decided to fully support PilRC. The plugin is installed by
default along with the rest of the Metrowerks tools. We also wrote an editor plugin so you get syntax coloring for .rcp files. CW Palm 8 still uses Constructor as its primary resource editor, but you can use any of the free PilRC editing tools that are out there as an alternative now.
- We updated the debugger to handle USB communications with Palm's
m500, m505, and m125 devices. This required working closely with Palm and doing lots of rewrites of the debugger communication engine. In the process, we maintained compatibility with Handspring's older USB driver, and we improved some communications issues in the serial driver.
- We added new debugger features: watchpoint support for finding where data is corrupted (when used with POSE 3.3), automated memory handle dereferencing (you enter a handle, it tells you where to look in memory for that handle's contents)
- We also added more caching in the debugger to improve stepping speed.
- We negotiated with Palm and got the rights to take their SDK
Reference and turn it into an online help file on both Macintosh and Windows. We've used IDE 4.2.5's support for context help to enable instant lookup of API function documentation.
- We implemented a new mode in the compiler called expanded mode. This puts compiler-generated data like virtual tables and exception tables into a special data section that is stored on the storage heap instead of the dynamic heap. This means that you have more room for other global variables or MemPtrNew/MemHandleNew allocations when you're programming in C++, reducing the penalty for using the more advanced language for Palm OS programs. Expanded mode also has support, through an extra call to the runtime library, for using some C++ features (like virtual function calls) when handling non-global launches.
- We re-ported MSL, the Metrowerks Standard Library, to Palm OS. MSL C++ was already in CW Palm 7, but now we have both the C and C++
libraries. Neither library is 100%, but large portions are there. One of our beta users already used this to get zlib running in CodeWarrior in less than 30 minutes.
- We revamped all of the 68K pref panels, revising the user interface to make them easier to understand for Palm OS developers. We moved Macintosh-related options to other panels or disabled their controls when doing Palm work. We made the default values better fit what is expected in Palm OS programming. You can't make stupid mistakes now like forgetting to set the FP option to Palm OS and having your floating point code fail.
- We added new compiler pragmas that let you have the compiler warn you when you try to use global variables or when you have a stack frame that is too large. These can show latent problems in your code that you might not hit during normal testing.
- The debugger now can launch programs with a non-standard launch code and parameter block. This lets you easily test your program against alarm situations, try out Clipper plugins, or see how you will react to a system reset.
- Macintosh users will find all of the Metrowerks supplied components Carbonized to work on both Mac OS Classic and Mac OS X. CWPalm 8 will provide a complete Palm development environment on OS X once Palm delivers Carbonized versions of the PalmRez post-linker and its preference panels.
- We ported Handspring's ROM builder tool into a CodeWarrior plugin and we provide stationery that you can customize to produce Palm OS programs that will reprogram Springboard Flash modules.
- Heather Tufts has written a new, over-100-page tutorial that walks new Palm OS developers all the way through the process, from creating their first project, to making a complex application with bitmap resources and multiple forms.
- We've added links to the major Palm OS development resource sites to the help menu.
- We now have an new application wizard. This gives you a series of dialogs for creating a new project, letting you designate the name, creator code, application language, minimum OS version, and more. It also lets you automatically add support for a variety of SDKs, including all major Palm OS licensees, the Palm OS glue library, the MSL C/C++ library, and MathLib. The wizard uses that input to make a new application, with customized source code, resources, and debug/release targets.
- We also have a new shared library wizard. This works like the
application wizard, but you also get to specify the names of all of the APIs that the shared library should export. The wizard then does the work of setting up the boilerplate code and dispatch tables, giving you an functional library that you can then immediately modify and use.
- There is a new project, automatically linked to wizard created
projects, that provides several precompiled headers for you to use. By default, new applications use a precompiled header that uses the strict mode in the 4.0 SDK to help you guarantee that applications you write now will work when Palm introduces ARM-based devices. Your debug targets use the strict header, but with the debug level set to full to help you catch more errors.
- Did I mention that the wizards are driven off template files and
projects that are easily customizable for your own needs, even allowing you to setup a standard boilerplate for your workflow?
- The debugger can now connect to your device or emulator without
launching a new program. You can use this to activate the debugger when you hit a problem in POSE without having had originally started a debug session. You also can restart debugging without downloading again, which is great for when you have large programs and haven't done a recompilation.

Send feedback to combee@techwood.org
Copyright © 2004 Benjamin L. Combee
Palm OS is a registered trademark of PalmSource, Inc.
Metrowerks and CodeWarrior are registered trademarks of Metrowerks Inc.
The views expressed on this website/weblog are those of mine alone and do not necessarily reflect the views of PalmSource or Metrowerks.

qwertYAK / frobnovich
|