diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-5CCF303A-B7D5-570D-9BE8-29DFBE184995.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-5CCF303A-B7D5-570D-9BE8-29DFBE184995.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,79 @@ + + + + + +Porting OverviewThis topic describes the typical steps that you will need +to do to create a base port. +

The easiest way to create a base port is to take the supplied template +port and expand it to suit your own hardware configuration(s). The +template port, is an outline, but working, framework that you can +modify to suit your own hardware.

+

The template port can be found under the sf/os/kernelhwsrv/bsptemplate/ directory. For more information about the template port see Kernel & Hardware Quick Start Guide.

+
Set +up the environment

The first thing to do is to set up your +environment for building, downloading onto your hardware, and testing +that the port works.

+
Build, +download, and test the supplied template port

As supplied, +the template port is designed to boot on any hardware. It should boot +successfully, but clearly, the system can do nothing more at this +time. A successful boot shows that your build environment has been +set up correctly.

+
Copy +and rename the Template port

When porting the base to a +new platform, you will need to code and build the Variant. This provides +those hardware dependent services required by the kernel. In nearly +all ports, this is split into an ASSP DLL and a Variant DLL. We usually +refer to the ASSP layer and the Variant layer.

It is desirable +that code that depends only on the properties of the ASSP be segregated +from code that depends on details of the system outside the ASSP, +so that multiple systems that use the same ASSP can share common code.

For example, in the template reference port, the ..\template_assp\... directory contains source code that contains the ASSP code, whereas +the ...\template_variant\... directory contains +the code specific to the template board.

+
Code +the Bootstrap

The bootstrap consists of several generic +source and header files supplied as part of Symbian platform, and +a set of platform specific files. You need to create these platform +specific files as part of a base port.

For details, see Bootstrap.

The updated port can then be built, downloaded and tested.

+
Implement +the interrupt dispatcher

An interrupt is a condition that +causes the CPU to suspend normal execution, enter interrupt handling +state and jump to a section of code called an interrupt handler. The +ASSP/Variant part of the base port must implement an interrupt dispatcher +class to manage interrupts.

For details, see the Interrupt Dispatcher +Implementation Tutorial.

The updated port can then +be built, downloaded and tested.

+
Implement +the Asic class

The Kernel requires that the ASSP/Variant +part of the base port provides an implementation of the Asic interface. This defines a small number of hardware-specific functions +that are used by the Kernel.

For details, see the Asic Class Tutorial.

The updated port can then be +built, downloaded and tested.

+
Port +the User-Side Hardware Abstraction (HAL)

The User-Side +Hardware Abstraction (HAL) component provides a simple interface for +programs to read and set hardware-specific settings, for example, +the display contrast. A base port must define the attributes that +clients can use on a phone, and implement any functions that are required +to get and set the attributes.

For details, see User-Side Hardware Abstraction.

+
Port +the other drivers

The remaining drivers can now be ported. +Go and see:

    +
  • DMA Framework

  • +
  • Digitizer Driver

  • +
  • Keyboard Driver

  • +
  • LCD Extension

  • +
  • Local Media Subsystem

  • +
  • Power Management

  • +
  • Serial Port Driver

  • +
  • Sound Driver

  • +
  • USB Client Driver +Technology

  • +
+
\ No newline at end of file