NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on The site is now set to read only.

MCSDK HUA Demonstration Guide

From Texas Instruments Wiki
Jump to: navigation, search


The High-Performance DSP Utility Application (HUA) is the Out-of-Box (OOB) demonstration for the Multicore Software Development Kit (MCSDK) which demonstrates, through illustrative code and web pages, how you can interface your own DSP application to the various TI MCSDK software elements including SYS/BIOS, Network Development Kit (NDK), the Chip Support Library (CSL), and Platform Library. The purpose of the demonstration is to illustrates the integration of key components in MCSDK and provide a multicore software development framework on an evaluation module (EVM.)

This document covers various aspects of the demonstration, including a discussion on the requirements, software design, instructions to build and run the application, and troubleshooting steps. Currently, only SYS/BIOS is supported as the embedded OS.

Access to the demo application is done through a PC web browser. The welcome web page provides a starting point with links to more information on TI multicore DSPs and support forums.

In addition at the top of the web page are a number of tabs which implement basic functionality including:

  • Information: Generates a page displaying a collection of information related to the platform and its operation such as system up time, platform settings, device type, number of cores, core speeds, software element versions, and network stack information. All this information is collected using API calls to the various MCSDK software elements.
  • Statistics: Generates a page reporting standard Ethernet statistics from the networking stack.
  • Task List: generates a page reporting the current active SYS/BIOS tasks on the device including information such as Task Priority, Task State, Stack Size Allocated, and Stack Size Used for each task.
  • Benchmarks: Takes the user to a web page with a list of supported benchmarks that a the user can run on the platform.
  • Diagnostics: Takes the user to a web page that allows the user to execute a range of platform diagnostics tests.
  • Flash: Takes the user to a web page that display flash hardware information and allows the user to read and write the flash on the platform.
  • EEPROM: Takes the user to a web page that allows the user to read the EEPROM.


The Benchmark tab takes the user to a page with a list of supported benchmarks that the user can run on the platform. Currently there are two supported benchmarks for release 2.0.

  • Network Throughput Test/Benchmark: Allows the user to configure and execute a network throughput test between the PC and the EVM. The user can configure direction (Transmit or Receive); Protocol (UDP, TCP); and amount of data to send. Upon completion test results will be displayed, e.g., data loss, test time, and effective throughput.
  • Network Loopback Test/Benchmark: Allows the user to configure and execute UDP and TCP network loopback throughput test between a test equipment and the EVM. A UDP packet generator (Smartbits) is required to measure UDP throughput.

UDP test setup is depicted below:

UDP loopback diagram.JPG

TCP test setup is depicted below:

TCP loopback diagram.jpg

An example of IPERF command used for testing this setup: iperf -c -i 10 -t 600 -w 64K -d

Note: TCP test can also be run with just one computer connected to the EVM by ethernet and without the need for IPERF.


The Diagnostics tab allows the user to execute a range of platform diagnostics tests. These are diagnostics provided as part of the platform library.

The diagnostic tests supported include:

  • External RAM Test: Tests a defined section of external RAM through a process of writing and reading back a series of patterns. The diagnostic will display a PASS/FAIL indication after the test executes.
  • Processor Internal Memory Test: Test the internal memory associated with a user specified processing core through a process of writing and reading back a series of patterns. The diagnostic will display a PASS/FAIL indication after the test executes. This diagnostic can only be executed for processing cores other than 0 and is not applicable to single core devices.
  • Flash LED: Allows the user to turn ON and OFF specified platform LEDs
  • UART Test: Allows the user to send a text message to the UART port. For this test the user must have a PC connected to the UART port on the platform.


The Flash page displays information related to the Flash hardware and allows the user to read and write to the flash. For reading, the user can specify a block to read from flash and then page through the data. For writing the user can either write an arbitrary file (binary blob) or a bootable image. The bootable image option allows you to write an image the EEPROM boot loader can load and execute.


The EEPROM page allows a user to read the EEPROM paging through the data in 1K blocks.


The following materials are required to run this demonstration:

  • TMS320C6x low cost EVMs [Check MCSDK release notes for supported platforms]
  • Power cable
  • Ethernet cable
  • Windows PC with CCSv5

Software Design


The high level software architecture for the HUA is shown below.

As can be seen in the diagram, the Utility provides an HTTP and Telnet Server. These servers use standard socket interfaces to the IP stack (NDK) which in turn interfaces to the Ethernet through the NIMU and EMAC Driver components.

The HTTP server serves pages that allow either various operations to be performed on the EVM (e.g., diagnostics) or provide information (e.g., statistics). The web pages are either dynamically created through a CGI-BIN interface (.cgi) or are static pages that are served directly back (.html).


As this is an embedded system, it uses SYS/BIOS to provide tasking and OS primitives such as semaphores, timers and so forth. The main thread is the task hpdspuaStart. This task will configure the IP stack and bring the system up into a free running state.

NoteNote: The main for the Utility simply start SYS/BIOS. SYS/BIOS in turn will run the task.

Platform Initialization

Platform initialization is performed by a function within the utility called EVM_init(). This function is configured to be called by SYS/BIOS before it starts up. Platform initialization configures DDR, the I2C bus, clocking and all other items that are platform dependent.

Build Instructions

Please follow the steps below to re-compile the libraries (These steps assume you have installed the MCSDK and all the dependent packages).

  • Open CCS->Import Existing... tab and import project from C:\Program Files\Texas Instruments\mcsdk_2_00_00_xx\demos\hua.
  • It should import two projects hua_evmc6678l and hua_evmc6670l.
  • Right click on each project->Properties to open up the properties window.
  • Right click on the project in the project workspace and navigate to Properties -> General -> RTSC -> Products and Repositories -> Other Repositories and verify that $(PROJECT_ROOT)/.. is present.
  • The project should build fine.

Run Instructions

The pre-compiled libraries are provided as a part of MCSDK release.

Please follow the procedures below to load images using CCS and run the demo.

Please refer to the hardware setup guide for further setup details.

  • Connect the board to a Ethernet hub or PC using Ethernet cable.
  • The demo runs in Static IP mode if User Switch 1 is OFF else if it is ON then it runs in DHCP mode. See the Hardware Setup section for the location of User Switch 1.
  • If it is configured in static IP mode, the board will come up with IP address, GW IP address and subnet mask
  • If it is configures in DHCP mode, it would send out DHCP request to get the IP address from a DHCP server in the network.
  • Connect the debugger and power on the board.
  • In CCS window, launch the target configuration file for the board.
  • It should open debug perspective and open debug window with all the cores.
  • Connect to core 0 and load demos\hua\evmc66xxl\Debug\hua_evmc66xxl.out.
  • Run HUA on core 0, in the CIO console window, the board should print IP address information (for eg: Network Added: If-1:
  • Open a web browser in the PC connected to the HUB or the board.
  • Enter the IP address of the board, it should open up the HUA demo web page.
  • Please follow the instructions in the web page to run the demo.

NoteNote: If you want to run the demo in static IP address mode, make sure the host PC is in same subnet or can reach the gateway. A sample setup configuration is shown below.

In Windows environment
Set up TCP/IP configuration of ‘Wired Network Connection’ as shown in Wired Network Connection in Windows.
In Linux environment
Run following command to set the static IP address for the current login session on a typical Linux setup.

<syntaxhighlight lang="bash"> sudo ifconfig eth0 netmask </syntaxhighlight>


Data verification error when using CCS to load HUA

Check if the EVM GEL is properly configured and run when CCS connects the target. The GEL will initialize the PLL and external memory so that HUA can be loaded and run from external memory.

The CIO console window does not show the IP address

Check if the EVM is connected to a network with DHCP server running.

The CIO console window shows the static IP address, but can not ping it

Check if the EVM is connected to a static network, and the PC that is used to ping the EVM has the same subnet address as the EVM does.

The TCP Transmit Test will start but never display results on either console or webpage

Ensure that firewall is disabled as well as any other network protection (such as Symantec). Additionally, make sure that only one instance of the website is running.

The TCP Receive Test will start but never display results on either console or webpage

Similar to above, ensure firewall and network protection are disabled. Additionally, this test can sometimes take an extended period of time (sometimes 10 minutes or slightly more) so make sure to let it run. Lastly, if unsure that traffic is actually occuring between EVM and computer, Wireshark is a handy tool to monitor that traffic.