Migrating from DSPLink 1 40 to 1 50

From Texas Instruments Embedded Processors Wiki

Jump to: navigation, search
Translate this page to   

Contents

Introduction

This page gives information for users attempting to move applications from DSPLink v1.40.xx to v1.5x.

New features in v1.50

Overview

Major feature additions in DSPLink v1.50 are:

Other minor enhancements include:

Details of Major feature additions

Enhanced multi-process and multi-application support

For Operating Systems such as Linux with a user-kernel boundary, the enhanced multi-process and multi-application support adds the following new features into DSPLink:

Before this feature, the applications were required to follow the flow given in the below figure: Required application flow before v1.50
After the addition of the enhanced multi-process and multi-application support, the applications can now use the simplified flow given below:

Possible application flow from v1.50
In addition to this new flow, the previous control flow is still supported for backward compatibility, and to support fully static systems. However, for easier integration of different applications, the new flow is much more convenient, and enables applications to easily come and go irrespective of other applications that may or may not be already running and using DSPLink.

Multi-process cleanup support

Prior to DSPLink v1.50, the PROC, MSGQ and POOL startup & shutdown resources (e.g. PROC_setup, MSGQ_transportOpen, POOL_open etc.) were associated with the thread ID of the calling thread. Due to this, when Ctrl C was used to kill the application process, or there was an abnormal termination, it was possible that any thread within the process could catch the signal. In such cases, the cleanup would be insufficient, since the thread ID of the thread that had caught the signal, was used for verification of ownership. In v1.50, this association has now been changed to process ID, allowing any thread within the process to make the cleanup calls on termination.

In addition, the signal handling on Linux for cleanup is now dynamically configurable through a newly added OS-specific dynamic configuration file: $(DSPLINK)/config/all/CFG_<GPPOS>.c. The following items are now configurable:

With this configuration, the user no longer needs to make modifications within DSPLink code, or build it with a different compiler define (previously required as DSPLINK_HANDLE_SIGNALS), but can simply make the required changes in the dynamic configuration file.
In case the exiting application does not call all required DSPLink shutdown APIs, DSPLink now internally ensures proper cleanup by registering atexit handler by default.
Note: While DSPLink provides basic cleanup functionality on abnormal termination through the signal handling, doing the right cleanup on exit is actually the purview of the application. Hence it is advised that the DSPLink signal handling mechanism should simply be used during development of the application to avoid having to re-boot the hardware on error.

However, in the production system, the applications should use an appropriate signal handling mechanism to cleanup all application resources, followed by DSPLink (and other driver) resources on exit, possibly through a different signal handling thread.

Intra-GPP MSGQ

Intra-GPP MSGQ support has been added into DSPLink. With this, applications can now use MSGQ to communicate between:

While using DSPLink MSGQ may not be the most efficient way for communication within the GPP (OS-provided messaging mechanisms will be most efficient), intra-GPP MSGQ would be useful if portable applications are to be written, where the tasks should be easily movable between the GPP and the DSP.

Addition of Programmer's Guide

A new Programmer's Guide document has been added into DSPLink in v1.50. This document:


Other minor changes

Dynamic configuration of DSP clock rate

The DSP clock rate can now be configured through DSPLink dynamic configuration file $(DSPLINK)/config/all/CFG_<PLATFORM>.c. This enables the same DSP executable to be used on platforms running at different frequencies.

Statically linked archive on Linux

In addition to .lib file, .a archive file is also generated. This saves footprint.

Removal of MSGQ and CHNL transfer serialization

If messages or data buffers are sent at high frequency, this change allows multiple messages/buffers to be sent simultaneously through the driver without serialization. This results in more efficient message and data transfers.

Addition of RingIO helper macros

NOTIFY thread wait instead of poll

DSP-side MPCS enhancement for interrupt latency reduction

Make system enhancement

Support for platform variant to minimize porting effort

Support for new platform/GPP OS configurations

Upgrade and compatibility information

This section gives the details of backward compatibility and upgrade information for applications to move to DSPLink v1.50

from the previous release v1.40.05 with latest patch p4.

For full details, refer to Release Notes section on “Upgrade and compatibility information”

Leave a Comment
Personal tools
Namespaces
Variants
Actions
Navigation
Print/export
Toolbox