NDK
Support Package for TCI6484
Version
2.00.00 Release (Revision History)
This
software package contains NDK support package files for TCI6484 platform. It contains NDK required drivers, and
examples.
NDK Support Package Overview
The TMS320C6000 NDK is a platform
for development and demonstration of network enabled applications on the
TMS320C6000 DSP family. The NDK
core package consists of the platform independent libraries, source files, and drivers.
The platform specific portion of the stack is delivered as a separate package
per platform basis.
The NDK Support Package includes
demonstration software showcasing TCI6484 DSP capabilities across a range of
network enabled applications. In addition, the stack serves as a rapid
prototype platform for the development of network and packet processing
applications, or to add network connectivity to existing DSP applications for
communications, configuration, and control.
Using the components provided in
the NDK, developers can quickly move from development concepts to working
implementations attached to the network.
System Requirements
To install the NDK Support
Package, a desktop or laptop PC is needed with the following requirements:
Minimum
- 1Ghz PentiumTM-compatible CPU
- 600MB of free hard disk space
- 1GB of RAM
- Internet ExplorerTM (6.0 or
later) or Netscape NavigatorTM (6.0 or
later)
- Local CD-ROM Drive
Recommended
- 2Ghz PentiumTM-compatible CPU
- 2GB of RAM
- 16-bit color
Supported
Operating Systems
- WindowsTM 2000 Service Pack 1 or higher
- WindowsTM XP
Required Hardware
The NDK Support Package is
supported on the following platforms:
In addition to this hardware, a
compatible emulator connection to CCS is required.
Required
Software
- Code Composer Studio Version 3.3 or higher
- DSP/BIOS 5.33.04 or higher.
- Obtain the Board Support Library (BSL) package from the EVM vendor, Lyrtech's CD/website
and extract it to a convenient place on your PC.
- The BSL installation comes with a defualt Chip Support Library (CSL) software package.
By default the CSL installs to C:\Lyrtech\evmc6484\csl_c6484.
To use a different version of the software, obtain the Chip Support Library (CSL) package and
extract it to a suitable location.
- Add the gel file from Lyrtech BSL installation in your CCS
configuration to initialize the boards, prior to running any example
applications.
- NDK V2.00.00.
NDK Support Package Software Components
- The NDK Support Package libraries are built by using DSP/BIOS 5.33.04,
and NDK 2.00.00 libraries and CodeGen Tool V6.1.5. It contains the following
software components:
- HAL libraries and source files for TCI6484
platform (eth_c6484).
Important Note:
Please note that the Ethernet drivers provided
in this release are built using NIMU architecture only. LL packet drivers are
not packaged in this release. The NDK 2.0.0 release is not compatible
with any of the older releases.
- “Hello
World” network example which contains the minimum setup necessary for a
networking application with DSP/BIOS. It can serve as a skeleton project, ready
for the application programmer to start adding code.
- Network
client demonstration shows DHCP client, HTTP server, Telnet client, and
multiple data servers for benchmarking.It now demonstrates the use
of Raw ethernet sockets also.
- Configuration
demo illustrates how a "network appliance" can be installed and
configured on the home network without using DHCP.
Software Installation
Follow the steps below for NDK
Support Package software installation:
- If not installed yet, install the Code Composer Studio (CCS) using
the CCS CD. It must be installed before the NDK Support Package software.
- If not installed yet, install the NDK v2.0.0 software. NDK by default
installs to the active CCS installation directory, for example as : <CCS_INSTALL_DIR\ndk_2_0_0\packages>.
If choosing an alternative custom location for the NDK installation, the user needs to bear
in mind that the NDK applications expect NDK to be always rooted at "packages" directory in the custom location. For example,
if the custom location chosen by the user is <Custom_NDK_Install_Dir>, then for all the NDK
applications to work properly, the destination location to choose during installation must be
<Custom_NDK_Install_Dir>\packages.
- Obtain the Board Support Library (BSL) package from the EVM vendor, Lyrtech's CD/website
and extract it to a convenient place on your PC. By default the BSL
installs to C:\Lyrtech\evmc6484.
Setup an environment variable EVMC6484LOC
on your PC to point to this root installation folder of EVM software. .
The BSL installation comes with a defualt Chip Support Library (CSL) software package.
By default the CSL installs to C:\Lyrtech\evmc6484\csl_c6484.
To use a different version of the software, obtain the Chip Support Library (CSL) package and
extract it to a suitable location. Setup an environment variable C6484_CSL_DIR
on your PC to point to the CSL installation folder.
By default, BSL for TCI6484 is located under the directory
C:\Lyrtech\evmc6484,
then the CSL for the EVM could be placed under the directory
C:\Lyrtech\evmc6484\csl_c6484.
Thus configure the environment variable C6484_CSL_DIR to point to
C:\Lyrtech\evmc6484\csl_c6484.
The CSL header files and library are used by the ethernet driver in configuring
the EMAC peripheral.
- Set environment variable NDK_INSTALL_DIR to the root folder of NDK
package installation, for example: <CCS_INSTALL_DIR\ndk_2_0_0>
- Copy the “ti.ndk.platforms.tci6484_2_0_0.tar” under
NDK_INSTALL_DIR\packages directory, and untar it.
A new folder tci6484 can be seen now.
Copy over the directory and contents of NDK_INSTALL_DIR\packages\tci6484\ti to
NDK_INSTALL_DIR\packages directory.
- After installation, all NDK Support Package related files are located
under NDK_INSTALL_DIR\packages\ti\ndk
directory, and organized in subdirectories. These
subdirectories can be summarized as follows:
[\example]
The EXAMPLE directory contains sample source code for a variety of
applications. Included here are demos that work on Ethernet port. These include
initialization examples, HTTP and Telnet servers,and configuration examples.
|
[\example\network\<example_name>\tci6484]
Examples using an Ethernet network.
[\example\tools\tci6484]
TCI6484 platform initialization files which are used by all TCI6484 example
programs.
|
[\lib]
|
[\lib\hal\tci6484]
This directory contains the NDK Support Package for TCI6484 HAL library
files.
|
[\src]
The SRC directory is the location of the source code to the sample drivers
included with the TCP/IP Stack.
|
[\src\hal\tci6484\eth_c6484]
This directory contains the TCI6484 EMAC ethernet driver source files.
|
[\doc\tci6484]
The DOC directory contains a copy of the NDK Support Package for TCI6484
documents and the doxygen output of APIs and data structures in the ethernet driver.
- Several builds of the libraries are provided with NIMU architecture
for Big and Little Endian architectures under [\lib\hal\tci6484].
The libraries are named as <lib_name>.lib for little endian and
<lib_name>e.lib for big endian.
The user needs to choose the most appropriate version of the library based on the
endianness and copy over the library to just
<lib_name>.lib before using it with any example projects.
For example: If an application requires NIMU big endian HAL ethernet driver,
copy over [lib\hal\tci6484\hal_eth_c6484e.lib]
to [lib\hal\tci6484\hal_eth_c6484.lib] and recompile
the example project.
Important Note:
Please note that this version of NSP does not include ethernet drivers with
LL packet architecture.
- To build applications for Big Endian, please ensure that the following compilation flag
is defined: BIGENDIAN
- All the examples for this platform are compiled with IPv6 support
enabled. To do so, the projects have been compiled with the following
compilation flag defined: _INCLUDE_IPv6_CODE.
If IPv6 support is not desired, please ensure that this compilation flag
is undefined for all the example projects, NSP libraries and NDK core libraries
and recompile them to reflect the same.
- To enable Jumbo Frame Support, the application/driver needs to be
recmompiled with the following flag defined: _INCLUDE_JUMBOFRAME_SUPPORT.
The "Jumbo Frame Support" enabled version of the NetControl (netctrl_jumbo.lib), NetTools (nettool_jumbo.lib),
OS (os_jumbo.lib)and stack (stk6_jumbo.lib) libraries must be linked in to the application in place
of the default ones used by the application additionally. Also, ensure that appropriate MTU is
configured on the interface as per the PHY's Jumbo frame size restriction in the Ethernet driver code.
If jumbo frame support is not desired, please ensure that this compilation flag is undefined for all
the example projects, NSP libraries and NDK core libraries and recompile them to reflect the same.
Important Note: The number of Receive Buffer Descriptors to use
(PKT_MAX variable in the driver code), and the jumbo buffer allocation code
itself needs to be adjusted according to the customer's application needs,
memory and performance constraints. The code provided here is a mere illustration
of the Jumbo Frame Feature in the EMAC.
- The ethernet driver code by default configures the PHYs on the EVM in
autonegotiation mode. The ethernet driver has been tested for both 100Mbps and
1000Mbps link speeds.
Important First Steps
New users should
familiarize themselves with the contents of the NDK User's Guide, test
their hardware, and try out some of the example applications described within.
The individual NSP User Guides have been replaced
with a generic NSP Ethernet Driver Design Guide from this release onwards. This document
describes the ethernet driver design packaged in this release. Furthermore, all the APIs and data structures
in the Ethernet driver are documented using "doxygen" style commenting and default doxygen output is provided for
API and data structure referencing sake.
Additional Information
NDK Benchmarking for TCI6484
Performance benchmarks are at
the same time an objective and subjective measurement for performance. They are
objective in the sense that the performance is measured using benchmark tools
that yield reproducible results, but they are subjective in that there are so
many variables involved that any one performance measurement is only a
guideline to overall performance in a diverse set of operating environments.
The following factors can have a
significant influence on performance:
- Socket API: The NDK includes support for classical buffer based sockets (for
transactions involving small payloads like Telnet), packet queue based
sockets (non-copy), enhancements to the sockets API to allow the
application to directly receive non-copy TCP data, and Raw ethernet socket APIs to
send / receive data using custom L3 types and by bypassing IP stack processing. Performance varies
depending on what features are used.
- Socket Buffers: The socket buffer size affects the TCP send and receive window
size, and determines how much data can be sent in one burst. This can have
a dramatic effect on performance.
- CPU(DSP) Speed: Given sufficient cache is present, the networking performance has
an approximately linear relation to CPU speed.
- CPU(DSP) Cache: The amount of CPU cache used can have a dramatic influence on
overall performance.
- Network Hardware: The design of the Ethernet hardware and how it
interfaces to the DSP has a large impact on performance.
- EMIF speed: For designs where the Ethernet interface is connected to the
EMIF, the EMIF speed as well as the external decode logic has an
additional affect on speed.
For detailed information, please
see the benchmark results..