Emulator BSP Overview

The emulator board support package (BSP) provides the variant kernel, executables, debugging framework and device drivers for the Symbian platform (Epoc) emulator.

Purpose

The emulator is a port of Symbian platform on the Win32 platform. It allows developers to try things out in an inexpensive development environment and to test and debug code before running it on target hardware. When attempting to implement some new and perhaps unproven functionality developers can learn much from running the application in the emulator.

The emulator is used for:

  • testing new code ideas,

  • debugging code before trying it on target hardware or a hardware BSP such as OMAP H4,

  • running Symbian platform reference implementations and test code,

  • learning to develop for Symbian platform — through formal Symbian platform developer training courses.

This document describes the composition of the Symbian platform (Epoc) emulator in the Emulator BSP Summary.

Required background

There is no formal background required for this section; except perhaps curiosity or a need to know more about the emulator.

Key concepts and terms

The following concepts and terms are used in the context of the emulator:

Bootstrap

The first task of Symbian platform is to run the bootstrap application, which performs various initialization tasks on the hardware before starting the kernel. Since emulator does not have to intialize the hardware, its startup application directly starts the kernel. The remainder of the boot process is the same on the emulator as well.

File system support

During run time, the emulator emulates the Symbian platform file system onto the file system on a PC. This enables the application to use the file system drives without interfering with the drives on the PC. Performance and size of such drives may not be the same as it would be for the actual hardware.

Floating point behaviour

The emulator is implemented on the Intel x86 processors which has floating point hardware as opposed to IEEE-754 single precision and double precision floating point values used by Symbian platform. So the user has to be careful in using floating-point functions where the target hardware does not have hardware support.

Machine word alignment

Since ARM uses a 32-bit RISC architecture, the 32-bit quantities must be aligned to a 32-bit machine word boundary only. In other words, the address is a multiplier of 4. This may or may not work with an emulator. For more details see Machine word alignment.

Memory constraints

The emulator emulates a device with a total heap size of 64MB. The initial and maximum size for the default heap for an individual process on the emulator (EKA2) can be set, in the same way as for a process on a native target.

Process emulation

The EKA2 kernel provides a good emulation of Symbian platform processes on the emulator with some limitations. For more details see Process emulation section.

Scheduling

The thread scheduling functionality has been faithfully emulated by the emulator on the target hardware.

Serial ports

The serial ports are emulated through Windows serial ports. This is adequate for most purposes, but may not provide the same performance as UARTs on a real device.

Timer

The standard timer resolution is 1/64th second on all platforms and also on the emulator.

USB

The emulator does not provide USB client support on reference hardware.

Emulator BSP Summary

Emulator BSP provides the following executables, device drivers (PDD and LDD) and utility applications:

  • Emulator kernel

    _h4hrp_ekern.exe

    The emulator specific variant of the kernel.

  • Emulator Internal RAM media driver

    _h4hrp_medint.pdd

    The physical device driver (PDD) for the internal RAM media for the emulator.

  • Kernel Trace Tool

    _integrator_cm1136_btracex.ldd

    The emulator variant kernel trace tool.

  • Epoc boot library

    _integrator_cm920_kc_exe.lib

    Provides the bootup for Epoc.

  • Display Device Driver

    display0.ldd

    The logical device driver (LDD) for the emulator display.

  • Symbian platform Startup

    e32strt.exe

    The Symbian platform startup process for the emulator.

  • Serial Device Driver

    ecdrv.pdd

    The physical driver for the emulator serial device.

  • Serial Port Driver

    ecomm.ldd

    The logical device driver (LDD) for the emulator serial port.

  • Console

    econsnogui.dll

    The emulator console. Provides an RConsole.

  • Variant Specific Debugging Customizations

    ecust.dll

    Debugging customizations for the emulator.

  • Keyboard Data

    ekdata.dll

    Provides keyboard mapping behaviours.

  • MMC / SD Card Configuration

    epbusv.dll

    Provides the MMC / SD Card configuration for the emulator.

  • Sound Device Driver

    esdrv.pdd

    The physical device driver (PDD) for the sound device.

  • Ethernet Device Driver

    ethernet.pdd

    The physical device driver (PDD) for the Ethernet under the windows emulator.

  • Hardware Abstraction

    hal.dll

    The hardware abstraction that is used to configure hardware settings for the emulator. Specifically the CPU speed and the display settings are configured with the emulator HAL.

  • Flash Media Driver

    medlfs.pdd

    The physical device driver (PDD) for the Flash Media Driver.

  • NAND Media Driver

    mednand.pdd

    The physical device driver (PDD) for the NAND Media Driver.

  • Shared Chunk Sound Driver

    soundsc.pdd

    Emulator playback functions for the shared chunk sound driver PDD.

  • File Server

    win_drive.fxt

    The test File Server extension for the emulator.

  • Windows GUI Settings

    winsgui.dll

    The standard emulator GUI and keyboard settings.

Related information
Media Drivers
Device Driver Guide