PerformanceOptimization

Nokia 770 uses 250MHz clocked OMAP 1710 dualcore cpu. One core is ARM926EJ-S (general purpose ARM core which supports ARMv5TE instructions set), the other is TMS320C55x (specialized DSP core).

One of the ways of improving performance is to use assembler for time critical parts of code. In on order to get started with ARM assembler programming you need some set of documentation. A lot of such documentation is available at http://www.arm.com

The most important documents that you would want to read first are probably the following: * ARM Architecture Reference Manual from http://www.arm.com/community/academy/resources.html * Instructions timings and optimization guide for ARM core used in Nokia 770: http://www.arm.com/pdfs/DDI0222B_9EJS_r1p2.pdf

These are just reference guides, for better understanding and actually starting to write some code it is a good idea to have a look at some already existing sources. Many multimedia libraries (ffmpeg for example) use a lot of assembler optimizations for various architectures.

The other way is probably to utilize the DSP core and perform some of your tasks using it.

Other potentially useful resources include:

  • ARM Assembler programming (for RISC OS on Acorn machines, but still contains a lot of useful introductory material and tutorials)
  • ARM Assembly Language Programming - Peter Cockerell's definitive introduction and reference to to the ARM 3. Would make a useful starting point for anyone interested in getting started with ARM assembly programming.