NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

IPC Users Guide/Tests

From Texas Instruments Wiki
Jump to: navigation, search


Table of Contents IPC User's Guide Previous; Examples


This page provides information about unit tests in IPC.

Overview[edit]

The IPC product contains unit tests under the following directories.

  • linux/src/tests
  • qnx/src/tests
  • packages/ti/ipc/tests

These are meant to be used as unit tests and documentation of the tests are currently sparse.

Linux Unit tests[edit]

These tests under linux/src/tests have a Linux host application binary and the binaries for the respective slave cores used in the test are located under packages/ti/ipc/tests.

NOTE: Loading of the slave cores in general is achieved by using remoteproc or MPM control procedures, which are specific to the platform and are out of scope for this page.

Single thread MessageQ tests[edit]

MessageQApp: Sends single messages to slave cores and gets messages sent back from slave cores.

Msgq100: Specific unit test to test MessageQ_get when messages are available from more than one remote core.

MessageQBench: Send and get back single messages and measures round trip delay.

These unit test binaries can be built with the following commands ( See http://processors.wiki.ti.com/index.php/IPC_Install_Guide_Linux for more details on setting up variables)

   make -f ipc-linux.mak config
   make
   make install

NOTE: The Host linux binaries are located at the DESTDIR/bin.


All these tests use the messageq_single.* binaries loaded on the slave cores.

For example:

For the ipu1 core on AM57x/DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/messageq_single.xem4

For all the DSP cores on K2HK use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmTCI6638K2K_core0/messageq_single.xe66

Running single Message tests[edit]

The following procedures assume that all the relevant slave cores are already loaded and running.

MessageQApp

Syntax:

   MessageQApp <number of Messages> <Core num>

(e.g)

   MessageQApp 100 1

Msgq

   Msgq100 [-l|h] procId1 procId2 ....

(e.g)

   Prints list of available remote processors
   Msgq100 -l
   Run test with remote processor with id 1
   Msgq100 1
   Run test with remote processors with id 1 and 2
   Msgq100 1 2

MessageQBench

Syntax:

   MessageQBench <number of Messages> <Core num>

(e.g)

   MessageQBench 100 1


ping_rpmsg[edit]

./linux/src/tests/usr/bin/ping_rpmsg: Sends ping messages and receives back messages.

This test uses ping_rpmsg.* binaries loaded on the slave cores.

For example for the ipu1 core on AM57x/DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/ping_rpmsg.xem4

Run ping_rpmsg[edit]

On the linux console run the following command

syntax:

   ping_rpmsg [num_iterations]

(e.g)

   ping_rpmsg
   ping_rpmsg 100


NameServerApp[edit]

./linux/src/tests/.libs/NameServerApp: NameServer test

This test uses NameServerApp.* binaries loaded on the slave cores.

For example for the ipu1 core on AM57x/DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/NameServerApp.xem4

Run NameServerApp[edit]

With the slave processors loaded execute the following command.

   NameServerApp


MessageQMulti[edit]

./linux/src/tests/.libs/MessageQMulti: Sends and receives with multiple threads

This test uses messageq_multi.* images loaded on the slave cores.

For example for the ipu1 core on AM57x/DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/messageq_multi.xem4

Running MessageQMulti[edit]

With the slave cores loaded and running. Use the following command to run the Linux application.

(e.g)

   MessageQMulti


MessageQMultiMulti[edit]

./linux/src/tests/.libs/MessageQMultiMulti: Sends and receives multiple messages with multiple threads to multiple cores.

NOTE: This test needs all the slave cores in the SOC to be loaded and running.

This uses messageq_multimulti.* images loaded on the slave cores.

For example for the ipu1 core on AM57x/DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/messageq_multimulti.xem4

Running MessageQMultiMulti[edit]

With all the slave cores loaded and running. Use the following command to run the Linux application.

(e.g)

   MessageQMultiMulti


fault[edit]

./linux/src/tests/.libs/fault: Test fault handling

NOTE: This test needs all the slave cores in the SOC to be loaded and running.

This uses fault.* images loaded on the slave cores.

For example for the ipu1 core on AM57x/DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/fault.xem4

Running fault[edit]

With all the slave cores loaded and running. Use the following command to run the Linux application.

(e.g)

   fault


Qnx Unit tests[edit]

NOTE: This page is under construction.

These tests under qnx/src/tests have a Qnx host application binary and the binaries for the respective slave cores used in the test are located under packages/ti/ipc/tests.

NOTE: Loading of the slave cores in general is achieved by using the ipc binary.

Single thread MessageQ tests[edit]

MessageQApp: Sends single messages to slave cores and gets messages sent back from slave cores.

MessageQBench: Send and get back single messages and measures round trip delay.

These unit test binaries can be built with the following commands ( See http://processors.wiki.ti.com/index.php/IPC_Install_Guide_QNX for more details on setting up variables)

   make -f ipc-qnx.mak all
   make -f ipc-qnx.mak install


All these tests use the messageq_single.* binaries loaded on the slave cores.

For example:

For the ipu1 core on DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/messageq_single.xem4

Follow the instructions in the Install Guide for how to load images to the remote cores.

Running single Message tests[edit]

The following procedures assume that all the relevant slave cores are already loaded and running.

MessageQApp

Syntax:

   MessageQApp <number of Messages> <Core num>

(e.g)

   MessageQApp 100 1

MessageQBench

Syntax:

   MessageQBench <number of Messages> <Core num>

(e.g)

   MessageQBench 100 1

NameServerApp[edit]

./qnx/src/tests/NameServerApp: NameServer test

This test uses NameServerApp.* binaries loaded on the slave cores.

For example for the ipu1 core on DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/NameServerApp.xem4

Run NameServerApp[edit]

With the slave processors loaded execute the following command.

   NameServerApp


MessageQMulti[edit]

./qnx/src/tests/MessageQMulti: Sends and receives with multiple threads

This test uses messageq_multi.* images loaded on the slave cores.

For example for the ipu1 core on DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/messageq_multi.xem4

Running MessageQMulti[edit]

With the slave cores loaded and running. Use the following command to run the Qnx application.

Syntax:

   Usage: MessageQMulti <number of threads> <number of loops> <number of processes>
   Defaults: number of threads: 10
             number of loops: 1000
             number of processes: 1
   Note: If number of processes is set, number of threads is forced to 1

(e.g)

   MessageQMulti 10 10

Fault[edit]

./qnx/src/tests/Fault: Test fault handling

This uses fault.* images loaded on the slave cores.

For example for the ipu1 core on DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_ipu1/fault.xem4

Running fault[edit]

With all the slave cores loaded and running. Use the following command to run the Qnx application.

Syntax:

   Fault <-f <fault_num>> <number of loops> <core num>
   Where <fault num> is:
       0: No fault
       1: MMU read fault
       2: MMU write fault
       3: MMU program fault
       4: Exception
       5: Watchdog

(e.g)

   Fault -f1 10 2

GateMPApp[edit]

./qnx/src/tests/GateMPApp: Test the GateMP Module

This uses the gatempapp.xe66 image loaded on the DSP1 slave core.

For example for the dsp1 core on DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_dsp1/gatempapp.xe66

Running GateMPApp[edit]

With the DSP1 slave core loaded and running. Use the following command to run the Qnx application.

Syntax:

   GateMPApp 

mmrpc_test[edit]

./qnx/src/tests/mmrpc_test: Test the MmRpc API

This uses the test_omx_<core>_vayu.* images loaded on the slave cores.

For example for the dsp1 core on DRA7xx use:

   ./packages/ti/ipc/tests/bin/ti_platforms_evmDRA7XX_dsp1/test_omx_ipu1_vayu.xem4

Running mmrpc_test[edit]

With the slave cores loaded and running. Use the following command to run the Qnx application.

Syntax:

   mmrpc_test <Core num>

(e.g.)

   mmrpc_test 1


Table of Contents IPC User's Guide Previous; Examples
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article IPC Users Guide/Tests here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article IPC Users Guide/Tests here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article IPC Users Guide/Tests here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article IPC Users Guide/Tests here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article IPC Users Guide/Tests here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article IPC Users Guide/Tests here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article IPC Users Guide/Tests here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article IPC Users Guide/Tests here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article IPC Users Guide/Tests here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity