Thursday, August 4, 2005


Error installing Series 60 MIDP SDK for Symbian OS

Interesting times ahead; it looks like I will be working on a location aware application for Nokia Series 60 phones. It will involve a lot of interesting technologies like Bluetooth, GPS, Symbian OS, SMS Messaging etc.

I downloaded both the C++ and the Java version of the Series 60 SDK to evaluate which technology is better suited to implement the application. The C++ version installed without problems but "scared" me a bit as the APIs are very different from programming under Windows or Palm. The J2ME version looks a lot simpler but the installation bombed with this nasty message:

The instruction at 0x00421cb0 referenced memory at "0x00000000". The memory could not be "written"

The message rang a bell, but I didn't remember what it was until I rebooted my PC and got this message:

The problem is the Data Execution Protection included in Windows 2003 Service Pack 1. It may be a great technology but it is the second time it gives me problems. The fix is simple:

  • Open System Properties, click Start, click Control Panel, and then double-click System.

  • Click the Advanced tab and, under Performance, click Settings.

  • Click the Data Execution Prevention tab.

  • Select “InstallAnywhere Self Extractor“ in the “Turn on DEP for all programs and services except those I select“ list

Run the Java SDK setup another time and it works.

These are the pieces I will use for the application:

I cannot wait to get started...


  1. If you wish you can disable DEP at all via boot.ini configuration (As I did).

    You have to put a new parameter in you boot.ini file:


    The meaning of each value is below:


    This setting is the default configuration. On systems with processors that can implement hardware-enforced data

    execution prevention (DEP), DEP is enabled by default for limited system binaries and programs that opt in. With this

    option, only Windows system binaries are covered by DEP by default.


    DEP is enabled by default for all processes. You can manually create a list of specific programs that don't have DEP

    applied by using the System Control Panel applet. You can use the Microsoft Windows Application Compatibility

    Toolkit to opt out one or more programs from DEP protection. System-compatibility fixes for DEP do take effect.


    This setting provides full DEP coverage for the entire system. All processes always run with DEP applied. No exceptions

    are possible. System-compatibility fixes for DEP don't take effect. Programs that have been opted out by using the

    Windows Application Compatibility Toolkit still run with DEP applied.


    This setting doesn't provide any DEP coverage for any part of the system, regardless of hardware DEP support. The

    processor doesn't run in Physical Address Extension (PAE) mode unless the /PAE option is present in the boot.ini file.