diff -r 5072524fcc79 -r 80ef3a206772 Symbian3/PDK/Source/GUID-5CCF303A-B7D5-570D-9BE8-29DFBE184995.dita --- a/Symbian3/PDK/Source/GUID-5CCF303A-B7D5-570D-9BE8-29DFBE184995.dita Fri Jul 02 12:51:36 2010 +0100 +++ b/Symbian3/PDK/Source/GUID-5CCF303A-B7D5-570D-9BE8-29DFBE184995.dita Fri Jul 16 17:23:46 2010 +0100 @@ -1,87 +1,80 @@ - - - - - -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 suppplied 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

  • -
  • Media -Drivers

  • -
  • Power -Management

  • -
  • Serial Port Driver

  • -
  • Sound -Driver

  • -
  • USB -Client Driver Technology

  • -
+ + + + + +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 suppplied 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

  • +
  • Media Drivers

  • +
  • Power Management

  • +
  • Serial Port Driver

  • +
  • Sound Driver

  • +
  • USB Client Driver +Technology

  • +
\ No newline at end of file