Porting Embedded Windows CE 6.0 R2 to the OMAP-L138: Part 2
DSPLink communications/loading options
When developing electronic devices, there are a number of ways to lower the cost and simplify the whole system. But in the majority of cases, the use of multicores offers many advantages, especially as it relates to media-intensive embedded designs.
In the design we were considering, using multicores allowed us to create two and more independent cores that shared a common multilayer bus, common multiple DMA channels, a common set of peripherals, and to use a communications channel that could be shared between the cores.
The DSP subsystem in SoC OMAP-L138 includes a TMS320C674x processor core with the option of operation at the frequency of 450 MHz, cache memory (instructions and data), L2 RAM, and integrated debugging tools (Advanced Event Triggering - AET). Such calculation options allow implementation of algorithms for processing of images.
From the point of view of Windows CE 6.0 OS, the DSP core itself is of no interest since ОС Windows CE 6.0 code cannot be started by the DSP core. Instead it is more beneficial to use the DSP core for unrelated operations, such as resolution of complex tasks involving video data decoding and encoding.
The DSP core can perform floating point mathematical operations, which allows the developer to eliminate porting the necessary DSP algorithms generated by a Matlab program. Otherwise, it would be necessary to have them executed in software by the main ARM processor.
For example, in the case of signal processing operations such as fixed point mathematical calculations, it would be necessary translate the algorithm first into the floating point code, debug it, and then, observing numerous restrictions, port it to the DSP core.
Subsequent to floating point operations in applications such as video decoding and encoding, two different tasks arise. The first is to encode and decode video and audio data flows. The second is to implement an independent algorithm at the DSP core. The latter task can also be divided into two branches. The first is to use DSP/BIOS OS by the SoC manufacturer or some other OS, the second is to develop a program that does not depend upon an OS (bare metal code).
Windows CE 6.0 OS allows implementation of either or both variants, especially with the provision on the TI OMAP of a ready communications channel between the cores using DSPLink, a library for the arrangement of interaction between processors (ARM<->DSP) using an already existing API. However, DSPLink presupposes using TI’s DSP/BIOS OS on the DSP side.
Figure 9 shows the structure of the interaction between ARM and DSP subsystems with the use of the above DSPLink library. The OMAP-L138 SoC has no Inter-Processor Communication (IPC) module. Instead, the device‘s L2 DSP RAM, shared RAM (Shared RAM), or mDDR/DDR2 RAM are used for information exchange between the cores.

Click on image to enlarge.
Figure 9: Interaction of ARM and DSP subsystems with the use of DSPLink library
With the DSPLink library it is possible to load a code into the DSP core and execute it (and, of course, arranging for a channel for data exchange with the ARM core using ready API.) This API not only allows execution of the current state of the DSP core, but is also used to arrange message exchanges between the cores (MSGQ), exchange flow data (CHNL), and create circular buffers (RingIO).
The basic purpose of these mechanisms is to create an ecosystem for working with encoding and decoding of audio and video data. TI provides codecs (in the form of binary libraries) for decoding and encoding of audio data (AAC, MP3 - decoding only, WMA), voice data (G.711, G.722, G.726), video data (H.264, MPEG2 - decoding only, MPEG4), and images (JPEG).
To read Part 1, go to "The basics of the two platforms"
To read Part 3, go to "Using the Windows 6.0 Board Support Package."
Artsiom Staliarou and Denis Mihaevich are founders of the AXONIM Devices Company, a Microsoft Embedded Partner and independent embedded electronics system design center and system integrator with 25 engineers based in Minsk, Belarus. E-mail: info@axonim.by, Skype: axonim.by.
Artsiom has a degree in radiophysics and has more than 10 years of experience in embedded system design based on ARM/Blackfin/TI DSP C2x/C5x/C6x)/x86 devices and using Embedded Linux/Windows Embedded OSes.
Denis also has a degree in radiophysics and more than 12 years of experience in embedded system design and video analysis algorithm development, and has a certificate in optoelectronics.


Loading comments... Write a comment