BLAS 3.11.0 Release
authorunknown <a0868762@LTA0868762B.am.dhcp.ti.com>
Wed, 18 Sep 2013 18:03:59 +0000 (13:03 -0500)
committerunknown <a0868762@LTA0868762B.am.dhcp.ti.com>
Wed, 18 Sep 2013 18:03:59 +0000 (13:03 -0500)
215 files changed:
Manifest_BLAS_3.11.0.pdf [new file with mode: 0644]
blas-lib-3.11.0.pdf [new file with mode: 0644]
blas/example/C6678_unified.cmd [new file with mode: 0644]
blas/example/Makefile [new file with mode: 0644]
blas/example/README.txt [new file with mode: 0644]
blas/example/Setup_ECPY/alg/algLoc.h [new file with mode: 0644]
blas/example/Setup_ECPY/alg/ecpy/algEcpy.h [new file with mode: 0644]
blas/example/Setup_ECPY/alg/ires/algIres.c [new file with mode: 0644]
blas/example/Setup_ECPY/alg/ires/algIres.h [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/ccs/.ccsproject [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/ccs/.cproject [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/ccs/.project [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/fcConfig.cfg [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/make/Makefile [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/make/Makefile_cfg [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/make/algLoc.h [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/make/config.bld [new file with mode: 0644]
blas/example/Setup_ECPY/app/build/make/help.txt [new file with mode: 0644]
blas/example/Setup_ECPY/app/src/platform/c6678/appEdmaConfig.c [new file with mode: 0644]
blas/example/Setup_ECPY/app/src/rman/appRman.c [new file with mode: 0644]
blas/example/Setup_ECPY/app/src/rman/appRman.h [new file with mode: 0644]
blas/example/Setup_ECPY/app/src/setup_ECPY.c [new file with mode: 0644]
blas/example/Setup_ECPY/inc/alg.h [new file with mode: 0644]
blas/example/matrix_vector.c [new file with mode: 0644]
blas/example/sgemm.c [new file with mode: 0644]
blas/example/sourceme.sh [new file with mode: 0644]
blas/inc/cblas.h [new file with mode: 0644]
blas/lib/libatlas.a [new file with mode: 0644]
blas/lib/libcblas.a [new file with mode: 0644]
blas/lib/liblapack.a [new file with mode: 0644]
blas/lib/libtstatlas.a [new file with mode: 0644]
blas/releasenote.txt [new file with mode: 0644]
blas/runscript/.bin-files,cmds [new file with mode: 0644]
blas/runscript/.dlls [new file with mode: 0644]
blas/runscript/.executables [new file with mode: 0644]
blas/runscript/.interfaces [new file with mode: 0644]
blas/runscript/.libraries [new file with mode: 0644]
blas/runscript/.src-files [new file with mode: 0644]
blas/runscript/.xdcenv.mak [new file with mode: 0644]
blas/runscript/EVM.ccxml [new file with mode: 0644]
blas/runscript/Main.xdc [new file with mode: 0644]
blas/runscript/Main.xs [new file with mode: 0644]
blas/runscript/README [new file with mode: 0644]
blas/runscript/Run.xdc [new file with mode: 0644]
blas/runscript/Run.xs [new file with mode: 0644]
blas/runscript/batch.xml [new file with mode: 0644]
blas/runscript/common_variables.bat [new file with mode: 0644]
blas/runscript/hs_err_pid3699.log [new file with mode: 0644]
blas/runscript/main - Copy.xs [new file with mode: 0644]
blas/runscript/mmrun [new file with mode: 0644]
blas/runscript/mmsetup [new file with mode: 0644]
blas/runscript/mmterminate [new file with mode: 0644]
blas/runscript/package.bld [new file with mode: 0644]
blas/runscript/package.mak [new file with mode: 0644]
blas/runscript/package.xdc [new file with mode: 0644]
blas/runscript/package/.vers_b150 [new file with mode: 0644]
blas/runscript/package/.vers_g180 [new file with mode: 0644]
blas/runscript/package/.vers_r170 [new file with mode: 0644]
blas/runscript/package/.xdc-x14 [new file with mode: 0644]
blas/runscript/package/CVS/Entries [new file with mode: 0644]
blas/runscript/package/CVS/Repository [new file with mode: 0644]
blas/runscript/package/CVS/Root [new file with mode: 0644]
blas/runscript/package/build.cfg [new file with mode: 0644]
blas/runscript/package/cfg/CVS/Entries [new file with mode: 0644]
blas/runscript/package/cfg/CVS/Repository [new file with mode: 0644]
blas/runscript/package/cfg/CVS/Root [new file with mode: 0644]
blas/runscript/package/external/CVS/Entries [new file with mode: 0644]
blas/runscript/package/external/CVS/Repository [new file with mode: 0644]
blas/runscript/package/external/CVS/Root [new file with mode: 0644]
blas/runscript/package/internal/CVS/Entries [new file with mode: 0644]
blas/runscript/package/internal/CVS/Repository [new file with mode: 0644]
blas/runscript/package/internal/CVS/Root [new file with mode: 0644]
blas/runscript/package/lib/CVS/Entries [new file with mode: 0644]
blas/runscript/package/lib/CVS/Repository [new file with mode: 0644]
blas/runscript/package/lib/CVS/Root [new file with mode: 0644]
blas/runscript/package/package.bld.xml [new file with mode: 0644]
blas/runscript/package/package.cfg.dep [new file with mode: 0644]
blas/runscript/package/package.cfg.xdc.inc [new file with mode: 0644]
blas/runscript/package/package.defs.h [new file with mode: 0644]
blas/runscript/package/package.ext.xml [new file with mode: 0644]
blas/runscript/package/package.rel.dot [new file with mode: 0644]
blas/runscript/package/package.xdc.dep [new file with mode: 0644]
blas/runscript/package/package.xdc.inc [new file with mode: 0644]
blas/runscript/package/package_runscript.c [new file with mode: 0644]
blas/runscript/package/rel/CVS/Entries [new file with mode: 0644]
blas/runscript/package/rel/CVS/Repository [new file with mode: 0644]
blas/runscript/package/rel/CVS/Root [new file with mode: 0644]
blas/runscript/package/rel/runscript.tar.gz.dep [new file with mode: 0644]
blas/runscript/package/rel/runscript.xdc.inc [new file with mode: 0644]
blas/runscript/package/rel/runscript.xdc.inc.manifest [new file with mode: 0644]
blas/runscript/package/rel/runscript.xdc.ninc [new file with mode: 0644]
blas/runscript/package/rel/runscript/CVS/Entries [new file with mode: 0644]
blas/runscript/package/rel/runscript/CVS/Repository [new file with mode: 0644]
blas/runscript/package/rel/runscript/CVS/Root [new file with mode: 0644]
blas/runscript/package/rel/runscript/runscript/CVS/Entries [new file with mode: 0644]
blas/runscript/package/rel/runscript/runscript/CVS/Repository [new file with mode: 0644]
blas/runscript/package/rel/runscript/runscript/CVS/Root [new file with mode: 0644]
blas/runscript/package/rel/runscript/runscript/package/CVS/Entries [new file with mode: 0644]
blas/runscript/package/rel/runscript/runscript/package/CVS/Repository [new file with mode: 0644]
blas/runscript/package/rel/runscript/runscript/package/CVS/Root [new file with mode: 0644]
blas/runscript/package/rel/runscript/runscript/package/package.rel.xml [new file with mode: 0644]
blas/runscript/package/runscript.ccs [new file with mode: 0644]
blas/runscript/package/runscript.class [new file with mode: 0644]
blas/runscript/package/runscript.java [new file with mode: 0644]
blas/runscript/package/runscript.sch [new file with mode: 0644]
blas/runscript/platforms/CVS/Entries [new file with mode: 0644]
blas/runscript/platforms/CVS/Repository [new file with mode: 0644]
blas/runscript/platforms/CVS/Root [new file with mode: 0644]
blas/runscript/platforms/evm6678_xds100.xs [new file with mode: 0644]
blas/runscript/platforms/evm6678_xds560.xs [new file with mode: 0644]
blas/runscript/platforms/evm6678_xds560v2.xs [new file with mode: 0644]
blas/runscript/platforms/evm6678_xds560v2.xs.ORG [new file with mode: 0644]
blas/runscript/run.bat [new file with mode: 0644]
blas/runscript/run.sh [new file with mode: 0644]
blas/runscript/run.sh~ [new file with mode: 0644]
blas/runscript/settings.xs [new file with mode: 0644]
blas/runscript/tmpoutput_0.txt [new file with mode: 0644]
blas_bm/example/C6678_unified.cmd [new file with mode: 0644]
blas_bm/example/Makefile [new file with mode: 0644]
blas_bm/example/README.txt [new file with mode: 0644]
blas_bm/example/cache_setup.c [new file with mode: 0644]
blas_bm/example/hello.c [new file with mode: 0644]
blas_bm/example/matrix_vector.c [new file with mode: 0644]
blas_bm/example/sgemm.c [new file with mode: 0644]
blas_bm/example/sourceme.sh [new file with mode: 0644]
blas_bm/inc/cblas.h [new file with mode: 0644]
blas_bm/lib/libatlas.a [new file with mode: 0644]
blas_bm/lib/libcblas.a [new file with mode: 0644]
blas_bm/lib/liblapack.a [new file with mode: 0644]
blas_bm/lib/libtstatlas.a [new file with mode: 0644]
blas_bm/releasenote_bm.txt [new file with mode: 0644]
blas_bm/runscript/.bin-files,cmds [new file with mode: 0644]
blas_bm/runscript/.dlls [new file with mode: 0644]
blas_bm/runscript/.executables [new file with mode: 0644]
blas_bm/runscript/.interfaces [new file with mode: 0644]
blas_bm/runscript/.libraries [new file with mode: 0644]
blas_bm/runscript/.src-files [new file with mode: 0644]
blas_bm/runscript/.xdcenv.mak [new file with mode: 0644]
blas_bm/runscript/EVM.ccxml [new file with mode: 0644]
blas_bm/runscript/Main.xdc [new file with mode: 0644]
blas_bm/runscript/Main.xs [new file with mode: 0644]
blas_bm/runscript/README [new file with mode: 0644]
blas_bm/runscript/Run.xdc [new file with mode: 0644]
blas_bm/runscript/Run.xs [new file with mode: 0644]
blas_bm/runscript/batch.xml [new file with mode: 0644]
blas_bm/runscript/common_variables.bat [new file with mode: 0644]
blas_bm/runscript/hs_err_pid3699.log [new file with mode: 0644]
blas_bm/runscript/mmrun [new file with mode: 0644]
blas_bm/runscript/mmsetup [new file with mode: 0644]
blas_bm/runscript/mmsetup.bak [new file with mode: 0644]
blas_bm/runscript/mmterminate [new file with mode: 0644]
blas_bm/runscript/package.bld [new file with mode: 0644]
blas_bm/runscript/package.mak [new file with mode: 0644]
blas_bm/runscript/package.xdc [new file with mode: 0644]
blas_bm/runscript/package/.vers_b150 [new file with mode: 0644]
blas_bm/runscript/package/.vers_g180 [new file with mode: 0644]
blas_bm/runscript/package/.vers_r170 [new file with mode: 0644]
blas_bm/runscript/package/.xdc-x14 [new file with mode: 0644]
blas_bm/runscript/package/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/build.cfg [new file with mode: 0644]
blas_bm/runscript/package/cfg/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/cfg/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/cfg/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/external/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/external/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/external/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/internal/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/internal/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/internal/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/lib/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/lib/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/lib/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/package.bld.xml [new file with mode: 0644]
blas_bm/runscript/package/package.cfg.dep [new file with mode: 0644]
blas_bm/runscript/package/package.cfg.xdc.inc [new file with mode: 0644]
blas_bm/runscript/package/package.defs.h [new file with mode: 0644]
blas_bm/runscript/package/package.ext.xml [new file with mode: 0644]
blas_bm/runscript/package/package.rel.dot [new file with mode: 0644]
blas_bm/runscript/package/package.xdc.dep [new file with mode: 0644]
blas_bm/runscript/package/package.xdc.inc [new file with mode: 0644]
blas_bm/runscript/package/package_runscript.c [new file with mode: 0644]
blas_bm/runscript/package/rel/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/rel/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/rel/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript.tar.gz.dep [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript.xdc.inc [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript.xdc.inc.manifest [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript.xdc.ninc [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/runscript/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/runscript/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/runscript/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/runscript/package/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/runscript/package/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/runscript/package/CVS/Root [new file with mode: 0644]
blas_bm/runscript/package/rel/runscript/runscript/package/package.rel.xml [new file with mode: 0644]
blas_bm/runscript/package/runscript.ccs [new file with mode: 0644]
blas_bm/runscript/package/runscript.class [new file with mode: 0644]
blas_bm/runscript/package/runscript.java [new file with mode: 0644]
blas_bm/runscript/package/runscript.sch [new file with mode: 0644]
blas_bm/runscript/platforms/CVS/Entries [new file with mode: 0644]
blas_bm/runscript/platforms/CVS/Repository [new file with mode: 0644]
blas_bm/runscript/platforms/CVS/Root [new file with mode: 0644]
blas_bm/runscript/platforms/evm6678_xds100.xs [new file with mode: 0644]
blas_bm/runscript/platforms/evm6678_xds560.xs [new file with mode: 0644]
blas_bm/runscript/platforms/evm6678_xds560v2.xs [new file with mode: 0644]
blas_bm/runscript/platforms/evm6678_xds560v2.xs.ORG [new file with mode: 0644]
blas_bm/runscript/run.bat [new file with mode: 0644]
blas_bm/runscript/run.sh [new file with mode: 0644]
blas_bm/runscript/settings.xs [new file with mode: 0644]
blas_bm/runscript/tmpoutput_0.txt [new file with mode: 0644]

diff --git a/Manifest_BLAS_3.11.0.pdf b/Manifest_BLAS_3.11.0.pdf
new file mode 100644 (file)
index 0000000..f63ed81
Binary files /dev/null and b/Manifest_BLAS_3.11.0.pdf differ
diff --git a/blas-lib-3.11.0.pdf b/blas-lib-3.11.0.pdf
new file mode 100644 (file)
index 0000000..a439545
Binary files /dev/null and b/blas-lib-3.11.0.pdf differ
diff --git a/blas/example/C6678_unified.cmd b/blas/example/C6678_unified.cmd
new file mode 100644 (file)
index 0000000..c7dbc90
--- /dev/null
@@ -0,0 +1,60 @@
+/****************************************************************************/
+/*  C6678_unified.cmd                                                       */
+/*  Copyright (c) 2011 Texas Instruments Incorporated                       */
+/*                                                                                                                                                 */
+/*    Description: This file is a sample linker command file that can be    */
+/*                 used for linking programs built with the C compiler and  */
+/*                 running the resulting .out file on an C6678              */
+/*                 device.  Use it as a guideline.  You will want to        */
+/*                 change the memory layout to match your specific C6xxx    */
+/*                 target system.  You may want to change the allocation    */
+/*                 scheme according to the size of your program.            */
+/*                                                                          */
+/****************************************************************************/
+
+-stack 0x00001000   /* 64K (0x1000 is 4K). */
+-heap  0x20000000   /* 512 MB heap.  */
+
+MEMORY
+{
+  LOCAL_L2_SRAM:  origin = 0x00800000 length = 0x00080000   /* 512kB LOCAL L2/SRAM     */
+  FAST_L1P_SRAM:  origin = 0x00E00000 length = 0x00008000   /* 32kB LOCAL L1P/cache    */
+  LOCAL_L1D_SRAM: origin = 0x00F00000 length = 0x00008000   /* 32kB LOCAL L1Data Cache */
+  SHRAM:          origin = 0x0C000000 length = 0x00400000   /* 4MB MSM (Multicore Shared Memory) */
+  
+  EMIF16_CS2:     origin = 0x70000000 length = 0x04000000   /* 64MB EMIF16 CS2 Data Memory */
+  EMIF16_CS3:     origin = 0x74000000 length = 0x04000000   /* 64MB EMIF16 CS3 Data Memory */
+  EMIF16_CS4:     origin = 0x78000000 length = 0x04000000   /* 64MB EMIF16 CS4 Data Memory */
+  EMIF16_CS5:     origin = 0x7C000000 length = 0x04000000   /* 64MB EMIF16 CS5 Data Memory */
+
+  DDR3:           origin = 0x80000000 length = 0x20000000   /* 512MB CE0 and CE1 external DDR3 SDRAM */
+}
+SECTIONS
+{
+       .text          >  SHRAM
+       .stack         >  SHRAM 
+       .bss           >  SHRAM 
+       .cio           >  SHRAM
+       .const         >  SHRAM
+       .data          >  SHRAM 
+       .switch        >  SHRAM
+       .sysmem        >  DDR3  
+       .far           >  SHRAM 
+       .args          >  SHRAM 
+       .ppinfo        >  SHRAM
+       .ppdata        >  SHRAM
+
+  /* COFF sections */
+       .pinit         >  SHRAM
+       .cinit         >  SHRAM
+
+  /* EABI sections */
+   .binit         >  SHRAM
+       .init_array    >  SHRAM
+   .neardata      >  SHRAM
+       .fardata       >  SHRAM
+       .rodata        >  SHRAM
+       .c6xabi.exidx  >  SHRAM
+       .c6xabi.extab  >  SHRAM
+}
diff --git a/blas/example/Makefile b/blas/example/Makefile
new file mode 100644 (file)
index 0000000..1a317f0
--- /dev/null
@@ -0,0 +1,24 @@
+all: sgemm.out matrix_vector.out
+
+ECPY_OBJS = algIres.obj  appEdmaConfig.obj  appRman.obj  setup_ECPY.obj
+ECPY_LINKER_CMDFILE = C6678_ECPY.cmd
+
+$(ECPY_OBJS) $(ECPY_LINKER_CMDFILE):
+       cd  Setup_ECPY/app/build/make; make
+
+%.o: %.c
+       cl6x -mv6600 -q --gcc -I=$(COMPILER_BASE_DIR)/include/ -I=../inc/ --opt_level=2 -Dmain=main_C6678 -c --output_file $@ $^
+
+%.out: %.o $(ECPY_OBJS) $(ECPY_CMDFILE)
+       lnk6x -o $@ -x -c --args=512 $(ECPY_LINKER_CMDFILE) --search_path=$(COMPILER_BASE_DIR)/lib/ $< ../lib/libcblas.a ../lib/libtstatlas.a ../lib/libatlas.a $(COMPILER_BASE_DIR)/lib/libc.a $(ECPY_OBJS)
+
+clean:
+       cd  Setup_ECPY/app/build/make; make clean
+       rm -fv *.o *.out *.map /tmp/evm-* $(ECPY_OBJS) $(ECPY_LINKER_CMDFILE)
+       while pidof xs.x86U > /dev/null; do killall xs.x86U; done
+
+run: sgemm.out matrix_vector.out
+       cd ../runscript; ./mmsetup
+       cd ../runscript; echo "Running sgemm.out"; ./mmrun ../example/sgemm.out
+       cd ../runscript; echo "Running matrix vector multiply"; ./mmrun ../example/matrix_vector.out
+       cd ../runscript; ./mmterminate
diff --git a/blas/example/README.txt b/blas/example/README.txt
new file mode 100644 (file)
index 0000000..71622f6
--- /dev/null
@@ -0,0 +1,32 @@
+cblas Tests
+===========
+
+Requisites:
+----------
+Copy the ATLAS libraries into the ../lib folder:
+
+$ ls ../lib/
+libatlas.a  libcblas.a  liblapack.a  libtstatlas.a
+
+
+Building and running simple tests:
+---------------------------------
+
+Edit sourceme.sh to suit your environment
+$ source sourceme.sh
+$ make clean
+$ make all
+$ make run
+
+sgemm expected output:
+ [ 367.76, 368.12
+   674.06, 674.72 ]
+
+matrix_vector expected output:
+3.0  1.0  3.0
+1.0  5.0  9.0
+2.0  6.0  5.0
+-1.0
+ 3.0
+-3.0
+
diff --git a/blas/example/Setup_ECPY/alg/algLoc.h b/blas/example/Setup_ECPY/alg/algLoc.h
new file mode 100644 (file)
index 0000000..33d583b
--- /dev/null
@@ -0,0 +1,52 @@
+/******************************************************************************
+ * FILE NAME:   algLoc.h
+ *
+ * (C) Copyright 2013, Texas Instruments Incorporated
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+#ifndef _ALG_LOC_H
+#define _ALG_LOC_H
+
+#include "algIres.h"
+#include "algEcpy.h"
+
+#define CHANNEL0       0
+#define CHANNEL1       1
+#define CHANNEL2       2
+#define CHANNEL3       3
+\r
+typedef struct algInst_s\r
+{\r
+   ALG_EDMA_Struct alg_edma_state;\r
+} algInst_t;
+
+#endif
+/* nothing after this point */
diff --git a/blas/example/Setup_ECPY/alg/ecpy/algEcpy.h b/blas/example/Setup_ECPY/alg/ecpy/algEcpy.h
new file mode 100644 (file)
index 0000000..c13d0f3
--- /dev/null
@@ -0,0 +1,652 @@
+/******************************************************************************
+ * FILE PURPOSE: ECPY Wrapper for DMA transfer in Framework
+ ******************************************************************************
+ * FILE NAME:   algEcpy.h
+ *
+ * (C) Copyright 2013, Texas Instruments Incorporated
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+#ifndef _EDMA_ECPY_H
+#define _EDMA_ECPY_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <c6x.h>
+
+#include <ti/sdo/fc/ecpy/ecpy.h>
+
+/*---------------------------------------------------------------*/
+/* This function convert single local address to global addresse */
+/*---------------------------------------------------------------*/
+extern cregister volatile unsigned int DNUM;
+static inline void *restrict EDMA_ADDR_LOC_TO_GLOB(void *restrict loc_addr)
+{
+   unsigned int tmp = (unsigned int)loc_addr;
+
+   if((tmp & 0xFF000000) == 0)
+   {
+      return (void *)((1 << 28) | (DNUM << 24) | tmp);
+   } else return loc_addr;
+}
+
+
+/*-----------------------------------------------------------*/
+/*  This function activates ECPY and then disables early     */
+/*  completion mode                                          */
+/*-----------------------------------------------------------*/
+static inline void ALG_EDMA_HW_assign (ALG_ECPY_Channel *ecpyChannel)
+{
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+
+    /* Activate ECPY */
+    ECPY_activate(dmaHandle);
+    /* Do not use early completion mode */
+    ECPY_setEarlyCompletionMode(dmaHandle, FALSE);
+}
+
+/*-----------------------------------------------------------*/
+/*  This function waits for all transfers on a specific      */
+/*  ECPY channel to complete. It is a blocking call          */
+/*  in the sense that CPU will wait until all transfers      */
+/*  are completed.                                           */
+/*-----------------------------------------------------------*/
+
+static inline void ALG_EDMA_wait(ALG_ECPY_Channel *ecpyChannel)
+{
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+
+    if (ecpyChannel->xferPending) {
+      ECPY_directWait(dmaHandle);
+      ecpyChannel->xferPending = FALSE;
+    }
+    return;
+}
+
+/*------------------------------------------------------------*/
+/* The following function performs a single 1D->1D transfer   */
+/* transferring "num_bytes" bytes from "src" which is the     */
+/* source address to "dst" which is the destination. This     */
+/* function uses the channel number "chan_num". It is assumed */
+/* by this function that there are no pending transfers on    */
+/* "chan_num".                                                */ 
+/*------------------------------------------------------------*/
+
+static inline int ALG_EDMA_copy1D1D
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src,
+    void     *restrict        dst,
+    int                       num_bytes
+)
+{
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+#if 1
+    unsigned int r, n = 0, a_cnt = num_bytes, i = 0;
+    char *c_src = (char *)src, *c_dst = (char *)dst;
+
+    /*
+     * This abstracts an effective 1D1D transfer which can transfer more than the 16-bit limit set by the HW.
+     *
+     * This is done by splitting the transfer into 2 transfers:
+     *   - One 2D1D transfer.
+     *   - One 1D1D transfer for the remainder.
+     */
+
+    while ( a_cnt > 0xFFFF )
+    {
+      a_cnt >>= 1;
+      n++;
+    }
+
+    r = num_bytes - (a_cnt << n);
+
+    if ( r > 0 )
+    {
+      src = (void *)c_src;
+      dst = (void *)c_dst;
+
+      memset(&p, 0, sizeof(ECPY_Params));
+      p.transferType = ECPY_1D1D;
+      p.dstAddr     = (void *)EDMA_ADDR_LOC_TO_GLOB(dst);
+      p.srcAddr     = (void *)EDMA_ADDR_LOC_TO_GLOB(src);
+      p.elementSize = r;
+      p.numElements = 1;
+      p.numFrames   = 1;
+
+      i++;
+      ECPY_directConfigure(dmaHandle, &p, i);
+
+      ECPY_directSetFinal(dmaHandle, i);
+      ECPY_directStartEdma(dmaHandle);
+
+      c_src += r;
+      c_dst += r;
+
+      src = (void *)c_src;
+      dst = (void *)c_dst;
+
+      ECPY_directWait(dmaHandle);
+      i = 0;
+    }
+
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_2D1D;
+    p.dstAddr     = (void *)EDMA_ADDR_LOC_TO_GLOB(dst);
+    p.srcAddr     = (void *)EDMA_ADDR_LOC_TO_GLOB(src);
+    p.elementSize = (1<<n);
+    p.numElements = a_cnt;
+    p.numFrames   = 1;
+    p.srcElementIndex = (1<<n);
+    p.dstElementIndex = (1<<n);
+
+    i++;
+    ECPY_directConfigure(dmaHandle, &p, i);
+
+    ECPY_directSetFinal(dmaHandle, i);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+#else
+    /* 
+     *  Single 1D1D transfer. 
+     *
+     *  NOTE: Max size of transfer is limited by 16-bit integer (65535 bytes)
+     */
+
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_1D1D;
+    p.dstAddr     = (void *)EDMA_ADDR_LOC_TO_GLOB(dst);
+    p.srcAddr     = (void *)EDMA_ADDR_LOC_TO_GLOB(src);
+    p.elementSize = num_bytes;
+    p.numElements = 1;
+    p.numFrames   = 1;
+
+    ECPY_directConfigure(dmaHandle, &p, 1);
+
+    ECPY_directSetFinal(dmaHandle, 1);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+#endif
+    return(chan_num);
+}
+
+/*----------------------------------------------------------*/
+/*  The following function performs a 1D->2D transfer       */
+/*  where the source is 1D one dimensional and destination  */
+/*  is 2D two dimensional. This function uses channel       */
+/*  number "chan_num" to transfer "num_lines" lines         */
+/*  each of "num_bytes" bytes. In this case after every     */
+/*  line of "num_bytes" is transferred, "src" source is     */
+/*  incremeneted by "num_bytes" and "dst" destination is    */
+/*  incremenetd by "pitch" bytes.                           */
+/*----------------------------------------------------------*/
+static inline int ALG_EDMA_copy1D2D
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src,
+    void     *restrict        dst,
+    int                       num_bytes,
+    int                       num_lines,
+    int                       pitch
+)
+{
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_1D2D;
+    p.numFrames    = 1;
+    p.elementSize = num_bytes;
+    p.numElements  = num_lines;
+    p.srcElementIndex = num_bytes;
+    p.dstElementIndex = pitch;
+    p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src);
+    p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst);
+
+    ECPY_directConfigure(dmaHandle, &p, 1);
+
+    ECPY_directSetFinal(dmaHandle, 1);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+
+/*----------------------------------------------------------*/
+/* This function performs a 2D->1D transfer by usinng the   */
+/* channel number "chan_num" by performing a transfer from  */
+/* source "src" to destination "dst", "num_lines" lines     */
+/* each of "num_bytes" bytes. At the end of transferring    */
+/* "num_bytes" bytes per line, the source is incremented    */
+/* by "pitch" bytes and the destination is incremented by   */
+/* "num_bytes" bytes as "src" is 2D and "dst" is 1D.        */
+/*----------------------------------------------------------*/
+static inline int ALG_EDMA_copy2D1D
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src,
+    void     *restrict        dst,
+    int                       num_bytes,
+    int                       num_lines,
+    int                       pitch
+)
+{
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the first transfer (data grp 1) */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_2D1D;
+    p.numFrames    = 1;
+    p.elementSize = num_bytes;
+    p.numElements  = num_lines;
+    p.srcElementIndex = pitch;
+    p.dstElementIndex = num_bytes;
+    p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src);
+    p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst);
+
+    ECPY_directConfigure(dmaHandle, &p, 1);
+
+    ECPY_directSetFinal(dmaHandle, 1);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+
+/*----------------------------------------------------------*/
+/* This function performs a 2D->2D transfer by using the    */
+/* channel number "chan_num" by performing a transfer from  */
+/* source "src" to destination "dst", "num_lines" lines     */
+/* each of "num_bytes" bytes. At the end of transferring    */
+/* "num_bytes" bytes per line, the source is incremented    */
+/* by "pitch" bytes and the destination is incremented by   */
+/* "pitch" bytes as well as "src" is 2D and "dst" is 2D.    */
+/*----------------------------------------------------------*/
+static inline int ALG_EDMA_copy2D2D
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src,
+    void     *restrict        dst,
+    int                       num_bytes,
+    int                       num_lines,
+    int                       pitch
+)
+{
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_2D2D;
+    p.numFrames    = 1;
+    p.elementSize = num_bytes;
+    p.numElements  = num_lines;
+    p.srcElementIndex = pitch;
+    p.dstElementIndex = pitch;
+    p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src);
+    p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst);
+
+    ECPY_directConfigure(dmaHandle, &p, 1);
+
+    ECPY_directSetFinal(dmaHandle, 1);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+
+/*----------------------------------------------------------*/
+/* This function performs a 2D->2D transfer by usinng the   */
+/* channel number "chan_num" by performing a transfer from  */
+/* source "src" to destination "dst", "num_lines" lines     */
+/* each of "num_bytes" bytes. At the end of transferring    */
+/* "num_bytes" bytes per line, the source is incremented    */
+/* by "dst_pitch" bytes and the destination is incremented  */
+/* by "src_pitch" bytes as well as "src" is 2D and "dst"    */
+/* is 2D. This function thus allows independent "src" and   */
+/* "dst" pitches.                                           */
+/*----------------------------------------------------------*/
+static inline int ALG_EDMA_copy2D2D_sep
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src,
+    void     *restrict        dst,
+    int                       num_bytes,
+    int                       num_lines,
+    int                       src_pitch,
+    int                       dst_pitch
+)
+{
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_2D2D;
+    p.numFrames    = 1;
+    p.elementSize = num_bytes;
+    p.numElements  = num_lines;
+    p.srcElementIndex = src_pitch;
+    p.dstElementIndex = dst_pitch;
+    p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src);
+    p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst);
+
+    ECPY_directConfigure(dmaHandle, &p, 1);
+
+    ECPY_directSetFinal(dmaHandle, 1);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+
+/*-----------------------------------------------------------*/
+/*  This function accepts an array of transfer parameters    */
+/*  and performs a group of 1D->1D linked transfers.         */ 
+/*                                                           */
+/*  ecpyChannel: pointer to ALG ECPY channel data structure. */
+/*  chan_num: Channel number on which transfer is issued.    */
+/*  src: Array of source addresses.                          */
+/*  dst: Array of destination addresses.                     */
+/*  num_bytes: Array of the number of bytes to transfer.     */
+/*  num_transfers: The number of transfers to perform.       */
+/*-----------------------------------------------------------*/
+static inline int ALG_EDMA_copy1D1D_linked
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src[],
+    void     *restrict        dst[],
+    int                       num_bytes[],
+    int                       num_transfers
+)
+{
+    int         i, j;
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_1D1D;
+    p.numFrames    = 1;
+    p.numElements  = 1;
+
+    for (i=0; i<num_transfers; i++) 
+    {
+        j = i+1;
+        p.elementSize = num_bytes[i];
+        p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src[i]);
+        p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst[i]);
+        ECPY_directConfigure(dmaHandle, &p, j);
+    }
+    ECPY_directSetFinal(dmaHandle, num_transfers);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+/*-----------------------------------------------------------*/
+/*  This function accepts an array of transfer parameters    */
+/*  and performs a group of src 1D-> dst 2D linked transfers */
+/*                                                           */
+/*  ecpyChannel: pointer to ALG ECPY channel data structure. */
+/*  chan_num:   Channel number to use for transfer.          */
+/*  src     :   Array of source addresses to use.            */
+/*  dst     :   Array of destination addresses to use.       */
+/*  num_bytes:  Number of bytes to transfer per line.        */
+/*  num_lines:  Number of such lines to transfer.            */
+/*  pitch:      Destination pitch to use between lines.      */
+/*  num_tfrs:   Number of transfers.                         */
+/*-----------------------------------------------------------*/
+
+
+static inline int ALG_EDMA_copy1D2D_linked
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src[],
+    void     *restrict        dst[],
+    int                       num_bytes[],
+    int                       num_lines[],
+    int                       pitch[],
+    int                       num_transfers
+)
+{
+    int         i, j;
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_1D2D;
+    p.numFrames    = 1;
+
+    for (i=0; i<num_transfers; i++) 
+    {
+        j = i+1;
+        p.elementSize = num_bytes[i];
+        p.numElements  = num_lines[i];
+        p.srcElementIndex = num_bytes[i];
+        p.dstElementIndex = pitch[i];
+        p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src[i]);
+        p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst[i]);
+        ECPY_directConfigure(dmaHandle, &p, j);
+    }
+    ECPY_directSetFinal(dmaHandle, num_transfers);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+
+
+/*-----------------------------------------------------------*/
+/*  This function accepts an array of transfer parameters    */
+/*  and performs a group of src 2D-> dst 1D linked transfers */
+/*                                                           */
+/*  ecpyChannel: pointer to ALG ECPY channel data structure. */
+/*  chan_num:   Channel number to use for transfer.          */
+/*  src     :   Array of source addresses to use.            */
+/*  dst     :   Array of destination addresses to use.       */
+/*  num_bytes:  Number of bytes to transfer per line.        */
+/*  num_lines:  Number of such lines to transfer.            */
+/*  pitch:      Source pitch to use between lines.           */
+/*  num_tfrs:   Number of transfers.                         */
+/*-----------------------------------------------------------*/
+static inline int ALG_EDMA_copy2D1D_linked
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src[],
+    void     *restrict        dst[],
+    int                       num_bytes[],
+    int                       num_lines[],
+    int                       pitch[],
+    int                       num_transfers
+)
+{
+    int         i, j;
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_2D1D;
+    p.numFrames    = 1;
+
+    for (i=0; i<num_transfers; i++) 
+    {
+        j = i+1;
+        p.elementSize = num_bytes[i];
+        p.numElements  = num_lines[i];
+        p.srcElementIndex = pitch[i];
+        p.dstElementIndex = num_bytes[i];
+        p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src[i]);
+        p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst[i]);
+        ECPY_directConfigure(dmaHandle, &p, j);
+    }
+    ECPY_directSetFinal(dmaHandle, num_transfers);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+/*-----------------------------------------------------------*/
+/*  This function accepts an array of transfer parameters    */
+/*  and performs a group of src 2D-> dst 2D linked transfers */
+/*                                                           */
+/*  ecpyChannel: pointer to ALG ECPY channel data structure. */
+/*  chan_num:   Channel number to use for transfer.          */
+/*  src     :   Array of source addresses to use.            */
+/*  dst     :   Array of destination addresses to use.       */
+/*  num_bytes:  Number of bytes to transfer per line.        */
+/*  num_lines:  Number of such lines to transfer.            */
+/*  pitch:      Source, Dest pitch to use between lines.     */
+/*  num_tfrs:   Number of transfers.                         */
+/*-----------------------------------------------------------*/
+static inline int ALG_EDMA_copy2D2D_linked
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src[],
+    void     *restrict        dst[],
+    int                       num_bytes[],
+    int                       num_lines[],
+    int                       pitch[],
+    int                       num_transfers
+)
+{
+    int         i, j;
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_2D2D;
+    p.numFrames    = 1;
+
+    for (i=0; i<num_transfers; i++) 
+    {
+        j = i+1;
+        p.elementSize = num_bytes[i];
+        p.numElements  = num_lines[i];
+        p.srcElementIndex = pitch[i];
+        p.dstElementIndex = pitch[i];
+        p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src[i]);
+        p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst[i]);
+        ECPY_directConfigure(dmaHandle, &p, j);
+    }
+    ECPY_directSetFinal(dmaHandle, num_transfers);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+
+/*-----------------------------------------------------------*/
+/*  This function accepts an array of transfer parameters    */
+/*  and performs a group of src 2D-> dst 2D linked transfers */
+/*                                                           */
+/*  ecpyChannel: pointer to ALG ECPY channel data structure. */
+/*  chan_num:   Channel number to use for transfer.          */
+/*  src     :   Array of source addresses to use.            */
+/*  dst     :   Array of destination addresses to use.       */
+/*  num_bytes:  Number of bytes to transfer per line.        */
+/*  num_lines:  Number of such lines to transfer.            */
+/*  pitchsrc:   Source pitch to use between lines.           */
+/*  pitchdst:   Destination pitch to use between lines.      */
+/*  num_tfrs:   Number of transfers.                         */
+/*-----------------------------------------------------------*/
+static inline int ALG_EDMA_copy2D2D_sep_linked
+(
+    ALG_ECPY_Channel          *ecpyChannel,
+    unsigned int              chan_num,
+    void     *restrict        src[],
+    void     *restrict        dst[],
+    int                       num_bytes[],
+    int                       num_lines[],
+    int                       pitchsrc[],
+    int                       pitchdst[],
+    int                       num_transfers
+)
+{
+    int         i, j;
+    ECPY_Handle dmaHandle = ecpyChannel->ecpyHandle;
+    ECPY_Params p;
+
+    /* Setting up the parameters for the transfer */
+    memset(&p, 0, sizeof(ECPY_Params));
+    p.transferType = ECPY_2D2D;
+    p.numFrames    = 1;
+
+    for (i=0; i<num_transfers; i++) 
+    {
+        j = i+1;
+        p.elementSize = num_bytes[i];
+        p.numElements  = num_lines[i];
+        p.srcElementIndex = pitchsrc[i];
+        p.dstElementIndex = pitchdst[i];
+        p.srcAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(src[i]);
+        p.dstAddr = (void *)EDMA_ADDR_LOC_TO_GLOB(dst[i]);
+        ECPY_directConfigure(dmaHandle, &p, j);
+    }
+    ECPY_directSetFinal(dmaHandle, num_transfers);
+    ECPY_directStartEdma(dmaHandle);
+
+    ecpyChannel->xferPending = TRUE;
+
+    return(chan_num);
+}
+
+#endif
+/* nothing after this point */
diff --git a/blas/example/Setup_ECPY/alg/ires/algIres.c b/blas/example/Setup_ECPY/alg/ires/algIres.c
new file mode 100644 (file)
index 0000000..09ddabf
--- /dev/null
@@ -0,0 +1,298 @@
+/******************************************************************************
+ * FILE PURPOSE: IRES functions for DMA transfer in Framework
+ ******************************************************************************
+ * FILE NAME:   algIres.c
+ *
+ * (C) Copyright 2013, Texas Instruments Incorporated
+ * 
+ *  Redistribution and use in source and binary forms, with or without 
+ *  modification, are permitted provided that the following conditions 
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the   
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+#include <xdc/std.h>
+#include <string.h>
+#include <ti/xdais/trace.h>
+#include <ti/xdais/dm/iuniversal.h>
+
+#include <ti/xdais/ialg.h>
+#include <ti/xdais/ires.h>
+
+/* Header file for the resources used in this example. */
+#include <ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h>
+
+#include "algIres.h"
+
+/* IRES Function Declarations */
+static IRES_Status ALG_EDMA_activateRes(IALG_Handle handle, IRES_Handle res);
+static IRES_Status ALG_EDMA_activateAllRes(IALG_Handle handle);
+static IRES_Status ALG_EDMA_deactivateRes(IALG_Handle h, IRES_Handle res);
+static IRES_Status ALG_EDMA_deactivateAllRes(IALG_Handle handle);
+static Int32 ALG_EDMA_numResources(IALG_Handle handle);
+static IRES_Status ALG_EDMA_getResources(IALG_Handle handle, IRES_ResourceDescriptor *desc);
+static IRES_Status ALG_EDMA_initResources(IALG_Handle h, IRES_ResourceDescriptor * desc, IRES_YieldFxn  yieldFxn, IRES_YieldArgs yieldArgs);
+static IRES_Status ALG_EDMA_deInitResources(IALG_Handle h, IRES_ResourceDescriptor *desc);
+static IRES_Status ALG_EDMA_reInitResources(IALG_Handle handle, IRES_ResourceDescriptor *desc, IRES_YieldFxn yieldFxn, IRES_YieldArgs yieldArgs);
+
+/*
+ *  ======== ALG_EDMA_IRES ========
+ */
+IRES_Fxns ALG_EDMA_IRES = {
+    &ALG_EDMA_IRES,
+    ALG_EDMA_getResources,
+    ALG_EDMA_numResources,
+    ALG_EDMA_initResources,
+    ALG_EDMA_reInitResources,
+    ALG_EDMA_deInitResources,
+    ALG_EDMA_activateRes,
+    ALG_EDMA_activateAllRes,
+    ALG_EDMA_deactivateRes,
+    ALG_EDMA_deactivateAllRes
+};
+
+static IRES_ProtocolRevision _iresEDMA3ChanRevision = IRES_EDMA3CHAN_PROTOCOLREVISION_2_0_0;
+
+/*
+ *  ======== ALG_EDMA_activateAllRes ========
+ */
+static IRES_Status ALG_EDMA_activateAllRes(IALG_Handle handle)
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    IRES_Status      status;
+    int i;
+    /* Activate all resources */
+    for (i = 0; i< NUM_EDMA_CH; i++) {
+       status = ALG_EDMA_activateRes(handle, (IRES_Handle)algEdma->ecpyChan[i].edmaHandle);
+       if (status != IRES_OK) {
+          return (status);
+       }
+    }
+
+    return (IRES_OK);
+}
+
+/*
+ *  ======== ALG_EDMA_activateRes ========
+ */
+static IRES_Status ALG_EDMA_activateRes(IALG_Handle handle, 
+        IRES_Handle res)
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    int i;
+    
+    /* Check that res = alg->nullres */
+    for (i = 0; i< NUM_EDMA_CH; i++) {
+      if (res == (IRES_Handle)(algEdma->ecpyChan[i].edmaHandle)) {
+         if (TRUE == algEdma->ecpyChan[i].resActive) {
+            return (IRES_EFAIL);
+         }
+         algEdma->ecpyChan[i].resActive = TRUE;
+      }
+    }
+
+    return (IRES_OK);
+}
+
+/*
+ *  ======== ALG_EDMA_deactivateAllRes ========
+ */
+static IRES_Status ALG_EDMA_deactivateAllRes(IALG_Handle handle) 
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    IRES_Status      status = IRES_OK;
+    int i;
+    
+    for (i = 0; i< NUM_EDMA_CH; i++) {
+       status = ALG_EDMA_deactivateRes(handle, (IRES_Handle)algEdma->ecpyChan[i].edmaHandle);
+       if (status != IRES_OK) {
+          return (status);
+       }
+    }
+    return (status);
+}
+
+/*
+ *  ======== ALG_EDMA_deactivateRes ========
+ */
+static IRES_Status ALG_EDMA_deactivateRes(IALG_Handle handle, IRES_Handle res)
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    int i;
+    
+    /* Check that res = alg->nullres */
+    for (i = 0; i< NUM_EDMA_CH; i++) {
+      if (res == (IRES_Handle)(algEdma->ecpyChan[i].edmaHandle)) {
+         if (FALSE == algEdma->ecpyChan[0].resActive) {
+             return (IRES_EFAIL);
+         }
+         algEdma->ecpyChan[i].resActive = FALSE;
+      }
+    }
+
+    return (IRES_OK);
+}
+
+/*
+ *  ======== ALG_EDMA_deInitResources ========
+ */
+static IRES_Status ALG_EDMA_deInitResources(IALG_Handle handle,
+        IRES_ResourceDescriptor *desc)
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    int i;
+    
+    for (i = 0; i< NUM_EDMA_CH; i++) {
+      if (desc[i].handle == (IRES_Handle)algEdma->ecpyChan[i].edmaHandle) {
+          algEdma->ecpyChan[i].edmaHandle = NULL;
+          algEdma->ecpyChan[i].resActive  = FALSE;
+                 algEdma->ecpyChan[i].xferPending = FALSE;
+                 ECPY_deleteHandle(algEdma->ecpyChan[i].ecpyHandle);
+      }
+      else {
+        return (IRES_ENOTFOUND);
+      }
+    }
+    return (IRES_OK);
+}
+
+/*
+ *  ======== ALG_EDMA_getResources ========
+ */
+static IRES_Status ALG_EDMA_getResources(IALG_Handle handle,
+        IRES_ResourceDescriptor *desc)
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    int i;
+
+    TRACE_2print(h, TRACE_ENTER,"ALG_EDMA_getResources> Enter (alg=0x%x, "
+            "desc=0x%x)\n", h, desc);
+    /* 
+     * This API could be called to query for resource requirements and after
+     * having granted the resources, could also be queried for resource 
+     * holdings of the algorithm. The difference is that in the second case a 
+     * valid resource handle (that had been granted earlier) would be expected.
+     */
+    for (i=0; i<NUM_EDMA_CH; i++) {
+        desc[i].resourceName    = IRES_EDMA3CHAN_PROTOCOLNAME;
+        desc[i].revision        = &_iresEDMA3ChanRevision;
+        desc[i].protocolArgs    = (IRES_ProtocolArgs *)&(algEdma->ecpyChan[i].edmaArgs);
+        desc[i].handle          = (IRES_Handle)algEdma->ecpyChan[i].edmaHandle; 
+        (algEdma->ecpyChan[i].edmaArgs).size = sizeof(IRES_EDMA3CHAN_ProtocolArgs);
+        (algEdma->ecpyChan[i].edmaArgs).mode = IRES_SCRATCH;
+        (algEdma->ecpyChan[i].edmaArgs).numTccs   = 1;  
+        (algEdma->ecpyChan[i].edmaArgs).paRamIndex = IRES_EDMA3CHAN_PARAM_ANY; 
+        (algEdma->ecpyChan[i].edmaArgs).tccIndex   = IRES_EDMA3CHAN_TCC_ANY;
+        (algEdma->ecpyChan[i].edmaArgs).qdmaChan   = IRES_EDMA3CHAN_CHAN_NONE;
+        (algEdma->ecpyChan[i].edmaArgs).edmaChan   = IRES_EDMA3CHAN_EDMACHAN_ANY;
+        (algEdma->ecpyChan[i].edmaArgs).contiguousAllocation   = TRUE;
+        (algEdma->ecpyChan[i].edmaArgs).shadowPaRamsAllocation = FALSE;
+        (algEdma->ecpyChan[i].edmaArgs).numPaRams = 1;
+    }
+
+    TRACE_1print(h,TRACE_4CLASS, "ALG_EDMA_getResources> desc[0].handle = "
+            "0x%x\n", desc[0].handle);
+
+    TRACE_0print( h,TRACE_ENTER, "ALG_EDMA_getResources> Exit (status="
+            "IRES_OK)\n");
+    return (IRES_OK);
+}
+
+/*
+ *  ======== ALG_EDMA_initResources ========
+ */
+static IRES_Status ALG_EDMA_initResources(IALG_Handle handle,
+        IRES_ResourceDescriptor *desc, IRES_YieldFxn  yieldFxn,
+        IRES_YieldArgs yieldArgs)
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    int i, j;
+    /* 
+     * Resource manager has returned a resource handle. Save it in the 
+     * algorithm's instance object 
+     */
+    for(i=0; i< NUM_EDMA_CH; i++)
+    {
+       algEdma->ecpyChan[i].edmaHandle = (IRES_EDMA3CHAN_Handle)desc[i].handle;
+       algEdma->ecpyChan[i].ecpyHandle = ECPY_createHandle((IRES_EDMA3CHAN2_Handle)desc[i].handle, handle);
+          if(algEdma->ecpyChan[i].ecpyHandle == NULL) {
+       for (j=0; j<i; j++) {
+                  ECPY_deleteHandle(algEdma->ecpyChan[j].ecpyHandle);  
+                }
+                return (IRES_ENOMEM);
+       }
+      algEdma->ecpyChan[i].xferPending = FALSE;
+    }
+
+    /* 
+     * Resource Manager also provides yield functions and yield Args alongwith  
+     * the resource handle.
+     */
+    algEdma->yieldFxn = yieldFxn;
+    algEdma->yieldArgs = yieldArgs;
+
+    return (IRES_OK);
+}
+
+/*
+ *  ======== ALG_EDMA_numResources ========
+ */
+/* ARGSUSED */
+static Int32 ALG_EDMA_numResources(IALG_Handle handle) 
+{
+    return (NUM_EDMA_CH);
+}
+
+/*
+ *  ======== ALG_EDMA_reInitResources ========
+ */
+static IRES_Status ALG_EDMA_reInitResources(IALG_Handle handle,
+        IRES_ResourceDescriptor *desc, IRES_YieldFxn  yieldFxn,
+        IRES_YieldArgs yieldArgs)
+{
+    ALG_EDMA_Struct *algEdma  = (ALG_EDMA_Struct *)handle;
+    int i;
+
+    algEdma->yieldFxn = yieldFxn;
+    algEdma->yieldArgs = yieldArgs;
+
+    /* 
+     * This function implies that the resource holdings of the algorithms have
+     * been changed.
+     * Update them in the algorithm instance object. 
+     */
+    for(i=0; i< NUM_EDMA_CH; i++)
+    {
+       algEdma->ecpyChan[i].edmaHandle = (IRES_EDMA3CHAN_Handle)desc[i].handle;
+       algEdma->ecpyChan[i].resActive  = FALSE;
+          algEdma->ecpyChan[i].xferPending = FALSE;
+    }
+
+    return (IRES_OK);
+}
+
+/* nothing after this point */
diff --git a/blas/example/Setup_ECPY/alg/ires/algIres.h b/blas/example/Setup_ECPY/alg/ires/algIres.h
new file mode 100644 (file)
index 0000000..e15e8ef
--- /dev/null
@@ -0,0 +1,66 @@
+/******************************************************************************
+ * FILE PURPOSE: Data structures for using DMA in Framework
+ ******************************************************************************
+ * FILE NAME:   algIres.h
+ *
+ * (C) Copyright 2013, Texas Instruments Incorporated
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+#ifndef _ALG_IRES_H
+#define _ALG_IRES_H
+
+#define NUM_EDMA_CH 4
+
+#include <ti/sdo/fc/ecpy/ecpy.h>
+#include <ti/xdais/ires.h>
+#include <ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h>
+
+typedef struct alg_ecpy_channel_struct {
+   IRES_EDMA3CHAN_Handle       edmaHandle;
+   ECPY_Handle                 ecpyHandle;
+   IRES_EDMA3CHAN_ProtocolArgs edmaArgs;
+   Bool                        resActive;
+   Bool                        xferPending;
+} ALG_ECPY_Channel;
+
+typedef struct alg_edma_struct
+{
+    unsigned int num_channels;
+    /* IRES stuff */
+    ALG_ECPY_Channel            ecpyChan[NUM_EDMA_CH];
+    IRES_YieldFxn               yieldFxn;
+    IRES_YieldArgs              yieldArgs;
+    IRES_YieldContext           yieldContext;
+} ALG_EDMA_Struct;
+
+#endif
+/* nothing after this point */
diff --git a/blas/example/Setup_ECPY/app/build/ccs/.ccsproject b/blas/example/Setup_ECPY/app/build/ccs/.ccsproject
new file mode 100644 (file)
index 0000000..3a53941
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+       <deviceVariant value="com.ti.ccstudio.deviceModel.C6000.GenericC66xxDevice"/>
+       <deviceFamily value="C6000"/>
+       <deviceEndianness value="little"/>
+       <codegenToolVersion value="7.4.2"/>
+       <isElfFormat value="true"/>
+       <rts value="libc.a"/>
+       <templateProperties value="id=com.ti.common.project.core.emptyProjectTemplate,"/>
+       <isTargetManual value="false"/>
+</projectOptions>
diff --git a/blas/example/Setup_ECPY/app/build/ccs/.cproject b/blas/example/Setup_ECPY/app/build/ccs/.cproject
new file mode 100644 (file)
index 0000000..2b9c36a
--- /dev/null
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?fileVersion 4.0.0?>\r
+\r
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
+       <storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">\r
+               <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1165723513">\r
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1165723513" moduleId="org.eclipse.cdt.core.settings" name="Debug">\r
+                               <externalSettings/>\r
+                               <extensions>\r
+                                       <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                               </extensions>\r
+                       </storageModule>\r
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+                               <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1165723513" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C6000.Debug">\r
+                                       <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1165723513." name="/" resourcePath="">\r
+                                               <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.DebugToolchain.432610544" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerDebug.2069002484">\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.174591187" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.GenericC66xxDevice"/>\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>\r
+                                                               <listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.1.0.01"/>\r
+                                                               <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+                                                               <listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>\r
+                                                               <listOptionValue builtIn="false" value="XDC_VERSION=3.23.4.60"/>\r
+                                                               <listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.sdo.edma3:2.11.5;com.ti.rtsc.FrameworkComponents:3.23.2.16;com.ti.rtsc.SYSBIOS:6.33.6.50;com.ti.rtsc.XDAIS:7.23.0.06;"/>\r
+                                                               <listOptionValue builtIn="false" value="INACTIVE_REPOS="/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>\r
+                                                       </option>\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1286234020" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="7.4.0" valueType="string"/>\r
+                                                       <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformDebug.990394988" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformDebug"/>\r
+                                                       <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderDebug.662609252" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderDebug"/>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.861809570" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION.119726379" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION" value="6600" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.1380295715" name="Application binary interface (coffabi, eabi) (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.eabi" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.978706384" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH.204891061" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH" valueType="includePath">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../inc&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../alg&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../alg/ires&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../alg/ecpy&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../app/src/rman&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../../../inc&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER.106656364" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING.1403687574" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="225"/>\r
+                                                               </option>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.615148400" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.1115958294" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.1015513340" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.898058087" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                                       </tool>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerDebug.2069002484" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerDebug">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE.2031607282" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE.1454720982" name="Input and output sections listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY.873750856" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY" valueType="libs">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libatlas.a&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libcblas.a&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH.1333138261" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../../../lib&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER.1674923964" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO.1319145843" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>\r
+                                                       </tool>\r
+                                                       <tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.1190447720" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.851929624" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>\r
+                                                                       <listOptionValue builtIn="false" value="${EDMA3_LLD_INSTALL_DIR}/packages"/>\r
+                                                                       <listOptionValue builtIn="false" value="${FRAMEWORK_COMPONENTS_CG_ROOT}/packages"/>\r
+                                                                       <listOptionValue builtIn="false" value="${FRAMEWORK_COMPONENTS_CG_ROOT}/examples"/>\r
+                                                                       <listOptionValue builtIn="false" value="${BIOS_CG_ROOT}/packages"/>\r
+                                                                       <listOptionValue builtIn="false" value="${XDAIS_CG_ROOT}/packages"/>\r
+                                                                       <listOptionValue builtIn="false" value="${XDAIS_CG_ROOT}/examples"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.601678728" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.elf.C66" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1517045476" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.evm6678" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.501458039" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.evm6678" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1540031823" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.57766490" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="&quot;${CG_TOOL_ROOT}&quot;" valueType="string"/>\r
+                                                       </tool>\r
+                                               </toolChain>\r
+                                       </folderInfo>\r
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1165723513.algIres.c" name="algIres.c" rcbsApplicability="disable" resourcePath="algIres.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.861809570.1584850624">\r
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.861809570.1584850624" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.861809570">\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.1197456856" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.1367440703" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.1595179907" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.961750682" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                               </tool>\r
+                                       </fileInfo>\r
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1165723513.sgemm.c" name="sgemm.c" rcbsApplicability="disable" resourcePath="sgemm.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.861809570.395918543">\r
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.861809570.395918543" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.861809570">\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE.907603928" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE" valueType="definedSymbols">\r
+                                                               <listOptionValue builtIn="false" value="main=main_C6678"/>\r
+                                                       </option>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.716549835" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.454064188" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.1258518144" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.868080476" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                               </tool>\r
+                                       </fileInfo>\r
+                                       <sourceEntries>\r
+                                               <entry excluding="fc_trace_config.cfg" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
+                                       </sourceEntries>\r
+                               </configuration>\r
+                       </storageModule>\r
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+               </cconfiguration>\r
+               <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Release.201741378">\r
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Release.201741378" moduleId="org.eclipse.cdt.core.settings" name="Release">\r
+                               <externalSettings/>\r
+                               <extensions>\r
+                                       <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                               </extensions>\r
+                       </storageModule>\r
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+                               <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.C6000.Release.201741378" name="Release" parent="com.ti.ccstudio.buildDefinitions.C6000.Release">\r
+                                       <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Release.201741378." name="/" resourcePath="">\r
+                                               <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.ReleaseToolchain.1579552845" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerRelease.539656682">\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1322372496" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.GenericC66xxDevice"/>\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>\r
+                                                               <listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.1.0.01"/>\r
+                                                               <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+                                                               <listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>\r
+                                                               <listOptionValue builtIn="false" value="XDC_VERSION=3.25.0.48"/>\r
+                                                               <listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.sdo.edma3:2.11.7;com.ti.rtsc.FrameworkComponents:3.23.2.16;com.ti.rtsc.SYSBIOS:6.33.6.50;com.ti.rtsc.XDAIS:7.23.0.06;"/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>\r
+                                                       </option>\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.988870918" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="7.4.0" valueType="string"/>\r
+                                                       <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformRelease.1760064628" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformRelease"/>\r
+                                                       <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderRelease.1052691768" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderRelease"/>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.547558488" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION.1981674071" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION" value="6600" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.1366564963" name="Application binary interface (coffabi, eabi) (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.eabi" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH.322185213" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH" valueType="includePath">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../inc&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../alg&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../alg/ires&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../alg/ecpy&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../app/src/rman&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../../../inc&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER.840758971" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING.1979771735" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="225"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP.790605125" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_LEVEL.release.461259007" name="Optimization level (--opt_level, -O)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_LEVEL.release" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_LEVEL._none" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.298321487" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.689512206" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.2019325094" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.367299734" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.46105290" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                                       </tool>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerRelease.539656682" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerRelease">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE.178798099" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE.210182133" name="Input and output sections listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH.1338594354" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH" valueType="libPaths">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../../../../../lib&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER.499629946" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP.427503160" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO.308688101" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY.328716999" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY" valueType="libs">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libatlas.a&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libcblas.a&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>\r
+                                                               </option>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD_SRCS.1244097870" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD2_SRCS.1571312572" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD2_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__GEN_CMDS.1210923426" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__GEN_CMDS"/>\r
+                                                       </tool>\r
+                                                       <tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.2004919970" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1045227797" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TARGET_CONTENT_BASE}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${EDMA3_LLD_INSTALL_DIR}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${FRAMEWORK_COMPONENTS_CG_ROOT}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${FRAMEWORK_COMPONENTS_CG_ROOT}/examples&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${BIOS_CG_ROOT}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${XDAIS_CG_ROOT}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${XDAIS_CG_ROOT}/examples&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1315441649" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.elf.C66" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.2026670251" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1539586374" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="&quot;${CG_TOOL_ROOT}&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1822720542" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.evm6678" valueType="string"/>\r
+                                                               <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.555179382" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.evm6678" valueType="string"/>\r
+                                                       </tool>\r
+                                               </toolChain>\r
+                                       </folderInfo>\r
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C6000.Release.201741378.1966114375" name="algIres.c" rcbsApplicability="disable" resourcePath="algIres.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.547558488.378573851">\r
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.547558488.378573851" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.547558488">\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.803673446" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.1613950956" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.25701684" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.238922387" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                               </tool>\r
+                                       </fileInfo>\r
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C6000.Release.201741378.10033650" name="sgemm.c" rcbsApplicability="disable" resourcePath="sgemm.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.547558488.972291669">\r
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.547558488.972291669" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.547558488">\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE.1005791473" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE" valueType="definedSymbols">\r
+                                                               <listOptionValue builtIn="false" value="main=main_C6678"/>\r
+                                                       </option>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.580922520" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.139057086" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.1241483205" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.1154061404" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                               </tool>\r
+                                       </fileInfo>\r
+                                       <sourceEntries>\r
+                                               <entry excluding="fc_trace_config.cfg" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
+                                       </sourceEntries>\r
+                               </configuration>\r
+                       </storageModule>\r
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+               </cconfiguration>\r
+       </storageModule>\r
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>\r
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+               <project id="test_app_ecpy.com.ti.ccstudio.buildDefinitions.C6000.ProjectType.320078060" name="C6000" projectType="com.ti.ccstudio.buildDefinitions.C6000.ProjectType"/>\r
+       </storageModule>\r
+       <storageModule moduleId="scannerConfiguration"/>\r
+       <storageModule moduleId="org.eclipse.cdt.core.language.mapping">\r
+               <project-mappings>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+               </project-mappings>\r
+       </storageModule>\r
+       <storageModule moduleId="refreshScope"/>\r
+</cproject>\r
diff --git a/blas/example/Setup_ECPY/app/build/ccs/.project b/blas/example/Setup_ECPY/app/build/ccs/.project
new file mode 100644 (file)
index 0000000..0b17e3b
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>ecpy_example</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>\r
+                       <arguments>\r
+                               <dictionary>\r
+                                       <key>?name?</key>\r
+                                       <value></value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.append_environment</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.autoBuildTarget</key>\r
+                                       <value>all</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.buildArguments</key>\r
+                                       <value>-k</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.buildCommand</key>\r
+                                       <value>${CCS_UTILS_DIR}/bin/gmake</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.buildLocation</key>\r
+                                       <value>${BuildDirectory}</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>\r
+                                       <value>clean</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.contents</key>\r
+                                       <value>org.eclipse.cdt.make.core.activeConfigSettings</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableAutoBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableCleanBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableFullBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.fullBuildTarget</key>\r
+                                       <value>all</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.stopOnError</key>\r
+                                       <value>false</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>\r
+                       <triggers>full,incremental,</triggers>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>\r
+               <nature>com.ti.ccstudio.core.ccsNature</nature>\r
+               <nature>org.eclipse.cdt.core.cnature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>\r
+               <nature>org.eclipse.cdt.core.ccnature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>\r
+       </natures>\r
+       <linkedResources>\r
+               <link>\r
+                       <name>algIres.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-3-PROJECT_LOC/alg/ires/algIres.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>appEdmaConfig.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/src/platform/c6678/appEdmaConfig.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>appRman.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/src/rman/appRman.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>fcConfig.cfg</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-1-PROJECT_LOC/fcConfig.cfg</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>setup_ECPY.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/src/setup_ECPY.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>sgemm.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-4-PROJECT_LOC/sgemm.c</locationURI>\r
+               </link>\r
+       </linkedResources>\r
+</projectDescription>\r
diff --git a/blas/example/Setup_ECPY/app/build/fcConfig.cfg b/blas/example/Setup_ECPY/app/build/fcConfig.cfg
new file mode 100644 (file)
index 0000000..697bba1
--- /dev/null
@@ -0,0 +1,191 @@
+/*\r
+ *\r
+ * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/\r
+ *\r
+ *\r
+ *  Redistribution and use in source and binary forms, with or without\r
+ *  modification, are permitted provided that the following conditions\r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the\r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+*/\r
+
+/* This file provides configuration to use Framework components */ 
+/* to implement EDMA based transfers.                           */
+
+/* modules from ti.sysbios */
+var BIOS  = xdc.useModule('ti.sysbios.BIOS');
+var Cache = xdc.useModule('ti.sysbios.family.c66.Cache');
+
+/* Set up section mappings */
+var program = xdc.useModule('xdc.cfg.Program');
+
+program.sectMap[".text"] = new Program.SectionSpec();
+program.sectMap[".const"] = new Program.SectionSpec();
+program.sectMap[".switch"] = new Program.SectionSpec();
+program.sectMap[".cinit"] = new Program.SectionSpec();
+program.sectMap[".vecs"] = new Program.SectionSpec();
+program.sectMap[".far"] = new Program.SectionSpec();
+program.sectMap[".fardata"] = new Program.SectionSpec();
+program.sectMap[".stack"] = new Program.SectionSpec();
+program.sectMap[".cio"] = new Program.SectionSpec();
+program.sectMap[".bss"] = new Program.SectionSpec();
+program.sectMap[".neardata"] = new Program.SectionSpec();
+program.sectMap[".rodata"] = new Program.SectionSpec();
+
+program.sectMap[".text"].loadSegment        = "MSMCSRAM";
+program.sectMap[".const"].loadSegment       = "MSMCSRAM";
+program.sectMap[".switch"].loadSegment      = "MSMCSRAM";
+program.sectMap[".cinit"].loadSegment       = "MSMCSRAM";
+program.sectMap[".vecs"].loadSegment        = "MSMCSRAM";
+
+/* The section .far was originally directed to L2SRAM. It is redirected   */
+/* to DDR3 for ATLAS, which needs more space to make extensive use of     */
+/* malloc(), particularly for large matrices. The BIOS.heapSize below     */
+/* sets the size. Note it cannot be set to the entire extent of DDR3, it  */
+/* shares '.far' with some other internals.                       Tony C. */
+program.sectMap[".far"].loadSegment         = "DDR3";
+program.sectMap[".fardata"].loadSegment     = "L2SRAM";
+program.sectMap[".stack"].loadSegment       = "L2SRAM";
+program.sectMap[".cio"].loadSegment         = "L2SRAM";
+program.sectMap[".bss"].loadSegment         = "L2SRAM";
+program.sectMap[".neardata"].loadSegment    = "L2SRAM";
+program.sectMap[".rodata"].loadSegment      = "L2SRAM";
+
+
+/* Size the stack for ATLAS. TI had it set at 0x4000. This    */
+/* ends up in '.L2SRAM' as specified above.            Tony C.*/
+program.stack = 0x8000;
+
+/* Set argument size for ATLAS. TI had it set at 0x0.         */
+/* Ends up as '.args' section > L2SRAM, but that connection   */
+/* is not set in this file, I'm not sure where it is.  Tony C.*/
+program.argSize = 512;
+
+/* specify heap size for BIOS, this is where ATLAS malloc()   */
+/* will come from. Ends up in '.far' section. The value is    */
+/* just as large as I can make it and leave room for other    */
+/* units to allocate their variables. It does not indicate    */
+/* what ATLAS 'needs,' that depends on the sizes of matrices  */
+/* being manipulated by the calling program. So if you need   */
+/* reduce this to make room for something else, don't chop it,*/
+/* just take the slice you need.                       Tony C.*/
+BIOS.heapSize = 0x1FFF0000;
+
+/* disable Clock */
+BIOS.clockEnabled = false;
+
+/* Configure heap for FC use. This is not the heap that ATLAS */
+/* uses, we keep in L2SRAM for performance. 0x1500 is the     */
+/* value set by TI in their example code.              Tony C.*/
+var intHeapSize = 0x1500;   /* Size to make internal heap, the actual usage can be found from ROV */
+Program.sectMap[".INTMEM_HEAP"] = new Program.SectionSpec();
+Program.sectMap[".INTMEM_HEAP"].loadSegment = "L2SRAM";
+
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var heapMemParams = new HeapMem.Params();
+heapMemParams.size = intHeapSize;
+heapMemParams.sectionName = ".INTMEM_HEAP";
+Program.global.INTMEM_HEAP = HeapMem.create(heapMemParams);
+
+/* Configure DSKT2 heaps and scratch */
+var DSKT2 = xdc.useModule('ti.sdo.fc.dskt2.DSKT2');
+DSKT2.ALLOW_EXTERNAL_SCRATCH = false;
+
+DSKT2.DARAM0 = "INTMEM_HEAP";
+DSKT2.DARAM1 = "INTMEM_HEAP";
+DSKT2.DARAM2 = "INTMEM_HEAP";
+
+DSKT2.SARAM0 = "INTMEM_HEAP";
+DSKT2.SARAM1 = "INTMEM_HEAP";
+DSKT2.SARAM2 = "INTMEM_HEAP";
+
+DSKT2.ESDATA = "INTMEM_HEAP";
+DSKT2.IPROG  = "INTMEM_HEAP";
+DSKT2.EPROG  = "INTMEM_HEAP";
+
+DSKT2.DSKT2_HEAP = "INTMEM_HEAP";
+
+/* Configure RMAN and EDMA3 */
+var RMAN = xdc.useModule('ti.sdo.fc.rman.RMAN');
+var EDMA3CHAN = xdc.useModule('ti.sdo.fc.ires.edma3chan.EDMA3CHAN');
+var EDMA3LLD = xdc.loadPackage('ti.sdo.edma3.rm');
+
+RMAN.useDSKT2 = true;
+RMAN.yieldSamePriority = true;
+RMAN.maxAlgs = 4;    /* Maximal number of alg instances which will use RMAN */
+
+/* Configure ECPY */
+var ECPY = xdc.useModule('ti.sdo.fc.ecpy.ECPY');
+ECPY.persistentAllocFxn = "DSKT2_allocPersistent";
+ECPY.persistentFreeFxn = "DSKT2_freePersistent"
+
+/* Configure META */
+var META = xdc.useModule('ti.sdo.fc.edma3.Settings');
+/* Use scratch group 0 and specify the maximum number of PaRAM sets,      */
+/* TCCs, EDMA channels, and QDMA channels for the group. In application   */
+/* C code, the same scratch ID of 0 is used in app_fc_assign_resources () */
+/* and app_fc_free_resources(). The allocation of PaRAM sets, TCCs,       */
+/* EDMA channels, and QDMA channels is defined in EDMA region config      */
+/* array C6678_config[] in app_c6678_config.c. For the 32-bit words in    */
+/* regionSample* there, each bit corresponds to a single                  */     
+/* PaRAMSet/EDMAChannel/QDMAChannel/TCC, and the value of 1 indicates     */
+/* the ownership or reservation. Change the maximum number of PaRAM sets, */ 
+/* TCCs, EDMA channels, and QDMA channels below if needed when the EDMA   */
+/* region config is modified.                                             */
+META.maxPaRams = [96, 0, 0, 0];
+META.maxTccs = [16, 0, 0, 0];
+META.maxEdmaChannels = [16, 0, 0, 0];
+META.maxQdmaChannels = [0, 0, 0, 0];
+
+/* Uncomment this to use debug mode for FC and EDMA3LLD */
+/* xdc.useModule('ti.sdo.fc.global.Settings').profile = "debug"; */ 
+/* EDMA3LLD.profile = "debug"; */
+
+/* The following is for enabling FC trace */
+/* Set up to use stdio */
+/*
+var System = xdc.useModule('xdc.runtime.System');
+System.SupportProxy = xdc.useModule('xdc.runtime.SysStd');
+var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
+var LoggerSysParams = new LoggerSys.Params();
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+Defaults.common$.logger = LoggerSys.create(LoggerSysParams);
+*/
+
+/* Enable logging for metaonly modules */
+/*
+var Main = xdc.useModule('xdc.runtime.Main');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+Diags.setMaskMeta('xdc.runtime.Main', Diags.ALL, Diags.RUNTIME_ON);
+var Registry = xdc.useModule('xdc.runtime.Registry');
+Diags.setMaskMeta("xdc.runtime.Registry", Diags.ALL, Diags.RUNTIME_OFF);
+*/
+/* FC trace end */
diff --git a/blas/example/Setup_ECPY/app/build/make/Makefile b/blas/example/Setup_ECPY/app/build/make/Makefile
new file mode 100644 (file)
index 0000000..f488a05
--- /dev/null
@@ -0,0 +1,115 @@
+#*
+#*
+#* Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ 
+#* 
+#* 
+#*  Redistribution and use in source and binary forms, with or without 
+#*  modification, are permitted provided that the following conditions 
+#*  are met:
+#*
+#*    Redistributions of source code must retain the above copyright 
+#*    notice, this list of conditions and the following disclaimer.
+#*
+#*    Redistributions in binary form must reproduce the above copyright
+#*    notice, this list of conditions and the following disclaimer in the 
+#*    documentation and/or other materials provided with the   
+#*    distribution.
+#*
+#*    Neither the name of Texas Instruments Incorporated nor the names of
+#*    its contributors may be used to endorse or promote products derived
+#*    from this software without specific prior written permission.
+#*
+#*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+#*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+#*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#*  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+#*  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+#*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+#*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#*  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#*  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+#*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+#*  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#*
+
+# Main makefile to build ECPY example
+
+default: all
+
+all: config_and_patch algIres.obj setup_ECPY.obj appRMAN.obj appEdmaConfig.obj
+
+# Ensures CGEN_DIR is exported and available. 
+# Typically something like /opt/ti/TI_CGT_C6000_7.4.2
+include Makefile_cfg
+
+# Commented out by Tony C, to prevent optimize_with_debug=on, -g.
+# Note if BUILD_TYPE .NE. debug adds -O3 instead.
+# BUILD_TYPE = debug
+
+# Include path
+INCLUDES=-I ../../../inc \
+         -I ../../../alg/ires \
+         -I ../../../alg/ecpy \
+         -I ../../../app/src/rman  
+
+# Source files.
+SRC_FILES = ../../../alg/ires/algIres.c \
+            ../../../app/src/setup_ECPY.c \
+            ../../../app/src/rman/appRman.c \
+            ../../../app/src/platform/c6678/appEdmaConfig.c 
+
+
+# Out and obj directory
+OBJDIR = ../../../..
+
+# Compiler defines
+CC        = $(CGEN_DIR)/bin/cl6x
+OPT_FILE  = $(CFGDIR)/compiler.opt
+CC_OPTS   = -@ $(OPT_FILE) -mv6600 $(INCLUDES)
+
+ifeq ($(BUILD_TYPE),debug)
+    CC_OPTS += -g --optimize_with_debug=on
+else
+    CC_OPTS += -o3
+endif
+
+# Linker defines
+CMD_FILE  = $(CFGDIR)/linker.cmd
+RTS_LIB   = $(CGEN_DIR)/lib/libc.a
+ifeq ($(BUILD_TYPE),debug)
+    CC_OPTS += -g --optimize_with_debug=on
+else
+    CC_OPTS += -o3
+endif
+
+
+# The patch is to limit the L2SRAM section length to 64K.
+# The length is really 512K in the C6678; but for ATLAS we require 256K 
+# of it, and we address that directly in the matrix multiply kernels 
+# and the ECPY using address pointers (i.e. ATLAS defines no variables 
+# that reside in the L2SRAM section). Since sysbios functions apparently
+# require L2SRAM resident variables, we do not wish to collide. So ATLAS
+# starts its usage at 810000. We redefine the length the sysbios can use
+# so the linker will warn us if it exceeds its 0x10000 allowance.
+# Note that only the single precision real and single precision complex
+# kernels of ATLAS actually use the L2SRAM, as a staging area. The double 
+# precision peak (only 4 flops per cycle instead of 16) did not require 
+# the faster L2SRAM.                                           Tony C.
+config_and_patch: gen_config 
+       @echo "Patching L2SRAM size to 0x10000."; sed -i '/L2SRAM / s/len = 0x80000/len = 0x10000/' $(CMD_FILE)
+       @echo "Copying linker cmd file to $(OBJDIR)/C6678_ECPY.cmd."; cp -v $(CMD_FILE) $(OBJDIR)/C6678_ECPY.cmd
+
+algIres.obj: ../../../alg/ires/algIres.c
+       $(CC) $(CC_OPTS) $< -fr $(OBJDIR)  $(INCLUDES)
+setup_ECPY.obj: ../../../app/src/setup_ECPY.c
+       $(CC) $(CC_OPTS) $< -fr $(OBJDIR)  $(INCLUDES)
+appRMAN.obj: ../../../app/src/rman/appRman.c
+       $(CC) $(CC_OPTS) $< -fr $(OBJDIR)  $(INCLUDES)
+appEdmaConfig.obj: ../../../app/src/platform/c6678/appEdmaConfig.c
+       $(CC) $(CC_OPTS) $< -fr $(OBJDIR)  $(INCLUDES)
+
+# Clean
+clean: clean_config
+       rm -f $(OBJDIR)/algIres.obj $(OBJDIR)/setup_ECPY.obj $(OBJDIR)/appRman.obj $(OBJDIR)/appEdmaConfig.obj $(BASE_DIR)/C6678_ECPY.cmd
+       @echo Finished clean
+
diff --git a/blas/example/Setup_ECPY/app/build/make/Makefile_cfg b/blas/example/Setup_ECPY/app/build/make/Makefile_cfg
new file mode 100644 (file)
index 0000000..f0f67b0
--- /dev/null
@@ -0,0 +1,80 @@
+#*\r
+#*\r
+#* Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ \r
+#* \r
+#* \r
+#*  Redistribution and use in source and binary forms, with or without \r
+#*  modification, are permitted provided that the following conditions \r
+#*  are met:\r
+#*\r
+#*    Redistributions of source code must retain the above copyright \r
+#*    notice, this list of conditions and the following disclaimer.\r
+#*\r
+#*    Redistributions in binary form must reproduce the above copyright\r
+#*    notice, this list of conditions and the following disclaimer in the \r
+#*    documentation and/or other materials provided with the   \r
+#*    distribution.\r
+#*\r
+#*    Neither the name of Texas Instruments Incorporated nor the names of\r
+#*    its contributors may be used to endorse or promote products derived\r
+#*    from this software without specific prior written permission.\r
+#*\r
+#*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
+#*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
+#*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+#*  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \r
+#*  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \r
+#*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \r
+#*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+#*  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+#*  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
+#*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
+#*  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+#*\r
+
+# Make file for building configuration package
+
+# Check if envs are set 
+ifeq ($(BIOS_DIR),)
+$(call error,ERROR - BIOS_DIR NOT DEFINED)
+endif
+
+ifeq ($(FC_DIR),)
+$(call error,ERROR - FC_DIR NOT DEFINED)
+endif
+
+ifeq ($(XDC_DIR),)
+$(call error,ERROR - XDC_DIR NOT DEFINED)
+endif
+
+ifeq ($(XDAIS_DIR),)
+$(call error,ERROR - XDAIS_DIR NOT DEFINED)
+endif
+
+ifeq ($(EDMA3LLD_DIR),)
+$(call error,ERROR - EDMA3LLD_DIR NOT DEFINED)
+endif
+
+ifeq ($(CGEN_DIR),)
+$(call error,ERROR - CGEN_DIR NOT DEFINED)
+endif
+
+# Configuration file
+CFGDIR  = configPkg
+CFGFILE = ../fcConfig.cfg
+CFGBLD  = config.bld
+
+# Build profile
+BUILD_PROFILE  = release
+
+# XDC path 
+XDCPATH = $(FC_DIR);$(EDMA3LLD_DIR);$(XDAIS_DIR);$(BIOS_DIR)
+
+# Use configuro to generate config packages
+gen_config:
+       @echo making $(CFGDIR) files
+       @$(XDC_DIR)/xs --xdcpath "$(XDCPATH)" xdc.tools.configuro -c $(CGEN_DIR) -b $(CFGBLD) -r $(BUILD_PROFILE) -o $(CFGDIR) $(CFGFILE)
+
+clean_config:
+       @echo Removing $(CFGDIR)
+       @rm -rf $(CFGDIR)/
diff --git a/blas/example/Setup_ECPY/app/build/make/algLoc.h b/blas/example/Setup_ECPY/app/build/make/algLoc.h
new file mode 100644 (file)
index 0000000..33d583b
--- /dev/null
@@ -0,0 +1,52 @@
+/******************************************************************************
+ * FILE NAME:   algLoc.h
+ *
+ * (C) Copyright 2013, Texas Instruments Incorporated
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+#ifndef _ALG_LOC_H
+#define _ALG_LOC_H
+
+#include "algIres.h"
+#include "algEcpy.h"
+
+#define CHANNEL0       0
+#define CHANNEL1       1
+#define CHANNEL2       2
+#define CHANNEL3       3
+\r
+typedef struct algInst_s\r
+{\r
+   ALG_EDMA_Struct alg_edma_state;\r
+} algInst_t;
+
+#endif
+/* nothing after this point */
diff --git a/blas/example/Setup_ECPY/app/build/make/config.bld b/blas/example/Setup_ECPY/app/build/make/config.bld
new file mode 100644 (file)
index 0000000..6876ce5
--- /dev/null
@@ -0,0 +1,49 @@
+/*\r
+ *\r
+ * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/\r
+ *\r
+ *\r
+ *  Redistribution and use in source and binary forms, with or without\r
+ *  modification, are permitted provided that the following conditions\r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the\r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+*/
+
+/* Specify c66 target*/
+var C66 = xdc.useModule('ti.targets.elf.C66');
+
+/* Specify c66 platform */
+C66.platforms = [
+                     "ti.platforms.evm6678",
+                 ];
+C66.platform = C66.platforms[0];
+
+/* List interested targets in Build.targets array */
+Build.targets = [
+                    C66,
+                ];
+
diff --git a/blas/example/Setup_ECPY/app/build/make/help.txt b/blas/example/Setup_ECPY/app/build/make/help.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blas/example/Setup_ECPY/app/src/platform/c6678/appEdmaConfig.c b/blas/example/Setup_ECPY/app/src/platform/c6678/appEdmaConfig.c
new file mode 100644 (file)
index 0000000..20fec0c
--- /dev/null
@@ -0,0 +1,292 @@
+/******************************************************************************\r
+ * FILE PURPOSE: EDMA configuration for application on C6678\r
+ ******************************************************************************\r
+ * FILE NAME:   appEdmaConfig.c\r
+ *\r
+ * (C) Copyright 2013, Texas Instruments Incorporated.\r
+ *\r
+ *  Redistribution and use in source and binary forms, with or without\r
+ *  modification, are permitted provided that the following conditions\r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the\r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+*/\r
+\r
+#include <xdc/std.h>\r
+#include <ti/sdo/fc/edma3/edma3_config.h>\r
+\r
+/* Definition of EDMA3_InstanceInitConfig structure from                    */\r
+/* <ti/sdo/fc/edma3/edma3_config.h>. It is attached here and put under      */\r
+/* #if 0 for reference                                                      */\r
+\r
+/* EDMA3_InstanceInitConfig is init-time Region Specific Configuration      */\r
+/* structure for EDMA3 to provide region specific Information. It is used   */\r
+/* to specify which EDMA3 resources are owned and reserved by the EDMA3     */\r
+/* instance.                                                                */\r
+\r
+#if 0\r
+typedef struct\r
+{\r
+    unsigned int        ownPaRAMSets[EDMA3_MAX_PARAM_DWRDS];\r
+                            /**< PaRAM Sets owned by the EDMA3 RM Instance. */\r
+    unsigned int        ownDmaChannels[EDMA3_MAX_DMA_CHAN_DWRDS];\r
+                            /**< DMA Channels owned by the EDMA3 RM Instance. */\r
+    unsigned int        ownQdmaChannels[EDMA3_MAX_QDMA_CHAN_DWRDS];\r
+                            /**< QDMA Channels owned by the EDMA3 RM Instance.*/\r
+    unsigned int        ownTccs[EDMA3_MAX_TCC_DWRDS];\r
+                            /**< TCCs owned by the EDMA3 RM Instance. */\r
+    /**\r
+     * @brief       Reserved PaRAM Sets\r
+     */\r
+    unsigned int        resvdPaRAMSets[EDMA3_MAX_PARAM_DWRDS];\r
+    /**\r
+     * @brief       Reserved DMA channels\r
+     */\r
+    unsigned int        resvdDmaChannels[EDMA3_MAX_DMA_CHAN_DWRDS];\r
+    /**\r
+     * @brief       Reserved QDMA channels\r
+     */\r
+    unsigned int        resvdQdmaChannels[EDMA3_MAX_QDMA_CHAN_DWRDS];\r
+    /**\r
+     * @brief       Reserved TCCs\r
+     */\r
+    unsigned int        resvdTccs[EDMA3_MAX_TCC_DWRDS];\r
+} EDMA3_InstanceInitConfig;\r
+#endif\r
+\r
+/* In the arrays below, each bit of a 32-bit word corresponds to a single   */\r
+/* PaRAMSet/EDMAChannel/QDMAChannel/TCC owned by the corresponding region,  */\r
+/* i.e., can be used for general purpose EDMA tranfers, or reserved for     */\r
+/* EDMA transfers by hardware peripherals (cannot be used for general       */\r
+/* purpose EDMA tranfers)                                                   */\r
+\r
+#define DMA_CHANNEL_TO_EVENT_MAPPING_0          (0x00000000u)\r
+#define DMA_CHANNEL_TO_EVENT_MAPPING_1          (0x00000000u)\r
+\r
+/* EDMA3_InstanceInitConfig sample0 with region neither owning nor          */\r
+/* reserving any EDMA resources                                             */\r
+#define regionSample0                                         \\r
+{                                                             \\r
+    /* Resources owned by Region */                           \\r
+    /* ownPaRAMSets */                                        \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* ownDmaChannels */                                      \\r
+    {0x00000000u, 0x00000000u},                               \\r
+                                                              \\r
+    /* ownQdmaChannels */                                     \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* ownTccs */                                             \\r
+    {0x00000000u, 0x00000000u},                               \\r
+                                                              \\r
+    /* Resources reserved by Region */                        \\r
+    /* resvdPaRAMSets */                                      \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* resvdDmaChannels */                                    \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1}, \\r
+                                                              \\r
+    /* resvdQdmaChannels */                                   \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* resvdTccs */                                           \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1} \\r
+}\r
+\r
+/* EDMA3_InstanceInitConfig sample1 with region owning PaRAM sets 64-105,   */\r
+/* and EDMA channel 0-7, but not reserving any EDMA resources               */\r
+/* Note that the first N PaRAM sets (N=number of EDMA channels available    */\r
+/* on an EDMA instance) are reserved in EDMA3 LLD ).                        */\r
+#define regionSample1                                         \\r
+{                                                             \\r
+    /* Resources owned by Region */                           \\r
+    /* ownPaRAMSets */                                        \\r
+    {0x00000000u, 0x00000000u, 0xFFFFFFFFu, 0xFFFFFFFFu,      \\r
+     0xFFFFFFFFu, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* ownDmaChannels */                                      \\r
+    {0x0000FFFFu, 0x00000000u},                               \\r
+                                                              \\r
+    /* ownQdmaChannels */                                     \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* ownTccs */                                             \\r
+    {0x0000FFFFu, 0x00000000u},                               \\r
+                                                              \\r
+    /* Resources reserved by Region */                        \\r
+    /* resvdPaRAMSets */                                      \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* resvdDmaChannels */                                    \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1}, \\r
+                                                              \\r
+    /* resvdQdmaChannels */                                   \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* resvdTccs */                                           \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1} \\r
+}\r
+\r
+\r
+/* EDMA3_InstanceInitConfig sample2 with region owning PaRAM sets 106-147,  */\r
+/* and EDMA channel 8-15, but not reserving any EDMA resources               */\r
+#define regionSample2                                         \\r
+{                                                             \\r
+    /* Resources owned by Region */                           \\r
+    /* ownPaRAMSets */                                        \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* ownDmaChannels */                                      \\r
+    {0xFFFF0000u, 0x00000000u},                               \\r
+                                                              \\r
+    /* ownQdmaChannels */                                     \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* ownTccs */                                             \\r
+    {0xFFFF0000u, 0x00000000u},                               \\r
+                                                              \\r
+    /* Resources reserved by Region */                        \\r
+    /* resvdPaRAMSets */                                      \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* resvdDmaChannels */                                    \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1}, \\r
+                                                              \\r
+    /* resvdQdmaChannels */                                   \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* resvdTccs */                                           \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1} \\r
+}\r
+\r
+/* EDMA3_InstanceInitConfig sample3 with region owning PaRAM sets 148-189,  */\r
+/* and EDMA channel 16-23, but not reserving any EDMA resources             */\r
+#define regionSample3                                         \\r
+{                                                             \\r
+    /* Resources owned by Region */                           \\r
+    /* ownPaRAMSets */                                        \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* ownDmaChannels */                                      \\r
+    {0x00000000u, 0x0000FFFFu},                               \\r
+                                                              \\r
+    /* ownQdmaChannels */                                     \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* ownTccs */                                             \\r
+    {0x00000000u, 0x0000FFFFu},                               \\r
+                                                              \\r
+    /* Resources reserved by Region */                        \\r
+    /* resvdPaRAMSets */                                      \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* resvdDmaChannels */                                    \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1}, \\r
+                                                              \\r
+    /* resvdQdmaChannels */                                   \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* resvdTccs */                                           \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1} \\r
+}\r
+\r
+/* EDMA3_InstanceInitConfig sample4 with region owning PaRAM sets 190-231,  */\r
+/* and EDMA channel 24-31, but not reserving any EDMA resources             */\r
+#define regionSample4                                         \\r
+{                                                             \\r
+    /* Resources owned by Region */                           \\r
+    /* ownPaRAMSets */                                        \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFFu,      \\r
+     0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* ownDmaChannels */                                      \\r
+    {0x00000000u, 0xFFFF0000u},                               \\r
+                                                              \\r
+    /* ownQdmaChannels */                                     \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* ownTccs */                                             \\r
+    {0x00000000u, 0xFFFF0000u},                               \\r
+                                                              \\r
+    /* Resources reserved by Region */                        \\r
+    /* resvdPaRAMSets */                                      \\r
+    {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,      \\r
+     0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},     \\r
+                                                              \\r
+    /* resvdDmaChannels */                                    \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1}, \\r
+                                                              \\r
+    /* resvdQdmaChannels */                                   \\r
+    {0x00000000u},                                            \\r
+                                                              \\r
+    /* resvdTccs */                                           \\r
+    {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1} \\r
+}\r
+\r
+#define NUM_EDMA_INSTANCES 3\r
+const EDMA3_InstanceInitConfig C6678_config[NUM_EDMA_INSTANCES][EDMA3_MAX_REGIONS] =\r
+{\r
+ /* EDMA3 INSTANCE# 0 */\r
+ { regionSample0,  regionSample0,  regionSample0,  regionSample0,\r
+   regionSample0,  regionSample0,  regionSample0,  regionSample0\r
+ },\r
+ /* EDMA3 INSTANCE# 1 */\r
+ { regionSample1,  regionSample2,  regionSample3,  regionSample4,\r
+   regionSample0,  regionSample0,  regionSample0,  regionSample0\r
+ },\r
+ /* EDMA3 INSTANCE# 2 */\r
+ { regionSample0,  regionSample0,  regionSample0,  regionSample0,\r
+   regionSample1,  regionSample2,  regionSample3,  regionSample4\r
+ }\r
+};\r
diff --git a/blas/example/Setup_ECPY/app/src/rman/appRman.c b/blas/example/Setup_ECPY/app/src/rman/appRman.c
new file mode 100644 (file)
index 0000000..f9d06d3
--- /dev/null
@@ -0,0 +1,131 @@
+/******************************************************************************
+ * FILE PURPOSE: Using FC-RMAN
+ ******************************************************************************
+ * FILE NAME:   appRman.c
+ *
+ * (C) Copyright 2013, Texas Instruments Incorporated.
+ * 
+ *  Redistribution and use in source and binary forms, with or without 
+ *  modification, are permitted provided that the following conditions 
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the   
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+#include <xdc/std.h>
+#include <ti/xdais/ires.h>
+
+#include <ti/sdo/fc/edma3/edma3_config.h>
+#include <ti/sdo/fc/rman/rman.h>
+
+/* Get globals from cfg header */
+#include <xdc/cfg/global.h>
+
+//#define FC_TRACE
+#ifdef FC_TRACE
+#include <ti/sdo/fc/global/FCSettings.h>
+#include <xdc/runtime/Diags.h>
+#endif
+/*********************************************************************************
+ * FUNCTION PURPOSE: Init RMAN resources
+ *********************************************************************************
+  DESCRIPTION:      This function initializes RMAN resouces
+
+  Parameters :      Inputs: edmaInstanceId  : ID of EDMA instance to be used
+                            coreId          : core ID
+                    Output: TRUE if initialization successful; FALSE otherwise
+ *********************************************************************************/
+extern const EDMA3_InstanceInitConfig C6678_config[][EDMA3_MAX_REGIONS];
+Bool app_rman_init(unsigned int edmaInstanceId, unsigned int coreId)
+{
+    EDMA3_PARAMS.regionConfig = (EDMA3_InstanceInitConfig *)&C6678_config[edmaInstanceId][coreId];
+    IRES_Status             ires_status;
+
+#ifdef FC_TRACE
+    /* Set default mask for FC modules */
+    FCSettings_init();
+    Diags_setMask(FCSETTINGS_MODNAME"+EX1234567");
+#endif
+
+    /* specify EDMA instance ID */
+    ti_sdo_fc_edma3_EDMA3_physicalId = edmaInstanceId;
+
+    /* RMAN init */
+    ires_status = RMAN_init();
+
+    if (IRES_OK != ires_status) {
+        return FALSE;
+    }
+    return TRUE;
+}
+
+/*********************************************************************************
+ * FUNCTION PURPOSE: Assign and activate RMAN resources
+ *********************************************************************************
+  DESCRIPTION:      This function assigns and activates RMAN resouces
+
+  Parameters :      Inputs: algHandle   : alg handle
+                            resFxns     : IRES function pointers
+                    Output: TRUE if initialization successful; FALSE otherwise
+ *********************************************************************************/
+Bool app_rman_assign_resources(void* algHandle, void* resFxns)
+{
+    IRES_Status ires_status;
+    Int scratchId = 0; 
+    
+    /* RMAN assign resource */
+    ires_status = RMAN_assignResources((IALG_Handle)algHandle, (IRES_Fxns*)resFxns, scratchId);
+    if (ires_status != IRES_OK) {
+        return FALSE;
+    }
+
+    /* RMAN activate all resource */
+    RMAN_activateAllResources((IALG_Handle)algHandle, (IRES_Fxns*)resFxns, scratchId);
+    return TRUE;
+}
+
+/*********************************************************************************
+ * FUNCTION PURPOSE: Free RMAN resources
+ *********************************************************************************
+  DESCRIPTION:      This function frees RMAN resouces
+
+  Parameters :      Inputs: algHandle   : alg handle
+                            resFxns     : IRES function pointers
+                    Output: TRUE if free is successful; FALSE otherwise
+ *********************************************************************************/
+Bool app_rman_free_resources(void* algHandle, void* resFxns)
+{
+    IRES_Status ires_status;
+    Int scratchId = 0; 
+
+    /* RMAN free resource */
+    ires_status = RMAN_freeResources((IALG_Handle)algHandle, (IRES_Fxns*)resFxns, scratchId);
+    if (ires_status != IRES_OK) {
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
diff --git a/blas/example/Setup_ECPY/app/src/rman/appRman.h b/blas/example/Setup_ECPY/app/src/rman/appRman.h
new file mode 100644 (file)
index 0000000..e4eb3b4
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef _APP_RMAN_H\r
+#define _APP_RMAN_H\r
+/******************************************************************************\r
+ * FILE PURPOSE: header file of appRman\r
+ ******************************************************************************\r
+ * FILE NAME:   appRman.h\r
+ *\r
+ * (C) Copyright 2013, Texas Instruments Incorporated.\r
+ * \r
+ *  Redistribution and use in source and binary forms, with or without \r
+ *  modification, are permitted provided that the following conditions \r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright \r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the \r
+ *    documentation and/or other materials provided with the   \r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+*/\r
+\r
+Bool app_rman_init(unsigned int edmaInstanceId, unsigned int coreId);\r
+Bool app_rman_assign_resources(void* algHandle, void* resFxns);\r
+Bool app_rman_free_resources(void* algHandle, void* resFxns);\r
+\r
+#endif\r
+/* nothing past this point */\r
diff --git a/blas/example/Setup_ECPY/app/src/setup_ECPY.c b/blas/example/Setup_ECPY/app/src/setup_ECPY.c
new file mode 100644 (file)
index 0000000..5b432b6
--- /dev/null
@@ -0,0 +1,159 @@
+/******************************************************************************
+ * FILE NAME:   main.c
+ *
+ * (C) Copyright 2013, Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+#include <xdc/std.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <ti/sysbios/BIOS.h>
+#include <ti/sysbios/family/c66/Cache.h>
+#include <ti/xdais/ires.h>
+
+#include "algLoc.h"
+#include "appRman.h"
+
+extern IRES_Fxns ALG_EDMA_IRES;
+
+int main_C6678(int argc, char **args); /* Expect user main redefined to main_C6678. */
+
+extern cregister volatile unsigned int DNUM;
+static algInst_t algInstance;                   /* Static to only appear here. */
+
+/*-----------------------------------------------------------------------*/
+/* alg_create returns address of algInstance defined above.              */
+/*-----------------------------------------------------------------------*/
+void alg_create(void **pAlgHandle)
+{
+    *pAlgHandle = (void *)&algInstance;
+}
+
+/*********************************************************************************
+ * FUNCTION PURPOSE: trap exception
+ *********************************************************************************
+  DESCRIPTION:      This function traps exception
+  Parameters :      Inputs: statement   : statement for if check
+                            core_id     : core ID
+                            error       : error to be printed out
+********************************************************************************/
+void app_assert(int32_t statement, int32_t core_id, const char *error)
+{
+  volatile int32_t dbg_halt = 1;
+
+  if(!statement) {
+    printf("%s (%d)\n",error,core_id);
+    while(dbg_halt);
+  }
+}
+
+/* Base and size of DDR3 */
+#define EXT_MEM_BASE (0x80000000)
+#define EXT_MEM_SIZE (0x20000000)
+/*********************************************************************************
+ * FUNCTION PURPOSE: configure cache
+ *********************************************************************************
+  DESCRIPTION:      This function configure cache, including L1D cache size
+                    L1P cache size, L2 cache size, and DDR MAR settings
+  Note: The sysbios apparently needs some things in L2, about 34K worth. We 
+        can't afford to lose that in ATLAS, so we define L2Size as 128K (in the
+        development environment we had 256K), so that leaves 384K. We leave the
+        first 64K to sysbios; and internally start our area at 64K. We only 
+        expect to use < 256K, so no more than 320K (of the 384K available).
+        Tony C.
+********************************************************************************/
+void cache_config(void)
+{
+
+    Cache_Size size;
+    UInt32 mar;
+
+    size.l1pSize  = Cache_L1Size_32K;  /* L1P cache size */
+    size.l1dSize  = Cache_L1Size_4K;   /* L1D cache size */
+    size.l2Size   = Cache_L2Size_128K; /* L2  cache size */
+    Cache_setSize(&size);
+
+    mar = Cache_getMar((Ptr *)EXT_MEM_BASE) | ti_sysbios_family_c66_Cache_PC |
+                                              ti_sysbios_family_c66_Cache_PFX;
+    Cache_setMar((Ptr *)EXT_MEM_BASE, EXT_MEM_SIZE, mar);
+
+    Cache_wbInvAll();
+}
+
+
+/*********************************************************************************
+ * FUNCTION PURPOSE: main()
+********************************************************************************/
+int main(int argc, char **args)
+{
+   uint32_t edmaInstances[8] = {1, 1, 1, 1, 2, 2, 2, 2};
+   int32_t  core_id = DNUM;
+   int      ret_val;
+   int i;
+   void *algHandle;
+   algInst_t *inst;
+   ALG_EDMA_Struct *algEdmaState;
+
+   /* Cache configuration */
+   cache_config();
+
+   /* RMAN resource init */
+   ret_val = app_rman_init(edmaInstances[core_id], core_id);
+   app_assert( (ret_val == TRUE), core_id, "resource_init failed \n");
+
+   IRES_Fxns *resFxns = &ALG_EDMA_IRES;
+
+   /* Create Alg */
+   alg_create(&algHandle);
+
+   /* RMAN assign resource to Alg*/
+   ret_val = app_rman_assign_resources(algHandle, resFxns);
+   app_assert( (ret_val == TRUE), core_id, "assign_resources failed \n");
+
+   /* Activate ECPY */
+   inst = (algInst_t *)algHandle;               // Get algorithm handle.
+   algEdmaState = &(inst->alg_edma_state);      // Use it to get EDMA State.
+
+   for (i=0;i<NUM_EDMA_CH;i++)
+   {
+      ALG_EDMA_HW_assign(&(algEdmaState->ecpyChan[i]));
+   }
+
+   i = main_C6678(argc, args);                  // Transfer to new main.
+
+   /* RMAN free resource*/
+   ret_val = app_rman_free_resources(algHandle, resFxns);
+   app_assert( (ret_val == TRUE), core_id, "free_resources failed \n");
+   return(i);                                   // Exit with main_C6678 ret value.
+}
+
diff --git a/blas/example/Setup_ECPY/inc/alg.h b/blas/example/Setup_ECPY/inc/alg.h
new file mode 100644 (file)
index 0000000..e57164c
--- /dev/null
@@ -0,0 +1,48 @@
+/******************************************************************************
+ * FILE NAME:   alg.h
+ *****************************************************************************
+   This is the public header file of ALG
+ *****************************************************************************
+ * (C) Copyright 2013, Texas Instruments Incorporated
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+#ifndef _ALG_H
+#define _ALG_H
+
+#include <ti/xdais/ires.h>
+\r
+extern IRES_Fxns ALG_EDMA_IRES;\r
+
+void alg_create(void **algHandle);
+void alg_process(void);             /* Modified by Tony C for ATLAS example. */
+#endif
+/* nothing after this point */
diff --git a/blas/example/matrix_vector.c b/blas/example/matrix_vector.c
new file mode 100644 (file)
index 0000000..b6559f3
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+*             Automatically Tuned Linear Algebra Software v3.11.0
+*                    (C) Copyright 1997 R. Clint Whaley
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*   1. Redistributions of source code must retain the above copyright
+*      notice, this list of conditions and the following disclaimer.
+*   2. Redistributions in binary form must reproduce the above copyright
+*      notice, this list of conditions, and the following disclaimer in the
+*      documentation and/or other materials provided with the distribution.
+*   3. The name of the ATLAS group or the names of its contributers may
+*      not be used to endorse or promote products derived from this
+*      software without specific written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+#include <stdio.h>
+#include "cblas.h"
+
+double m[] = {
+  3, 1, 3,
+  1, 5, 9,
+  2, 6, 5
+};
+
+double x[] = {
+  -1, -1, 1
+};
+
+double y[] = {
+  0, 0, 0
+};
+
+int main(int argc, char** argv)
+{
+  int i, j;
+
+  for (i=0; i<3; ++i) {
+    for (j=0; j<3; ++j) printf("%5.1f", m[i*3+j]);
+    putchar('\n');
+  }
+
+  cblas_dgemv(CblasRowMajor, CblasNoTrans, 3, 3, 1.0, m, 3,
+          x, 1, 0.0, y, 1);
+
+  for (i=0; i<3; ++i)  printf("%5.1f\n", y[i]);
+
+  return 0;
+}
diff --git a/blas/example/sgemm.c b/blas/example/sgemm.c
new file mode 100644 (file)
index 0000000..e7daa8f
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+*             Automatically Tuned Linear Algebra Software v3.11.0
+*                    (C) Copyright 1997 R. Clint Whaley
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*   1. Redistributions of source code must retain the above copyright
+*      notice, this list of conditions and the following disclaimer.
+*   2. Redistributions in binary form must reproduce the above copyright
+*      notice, this list of conditions, and the following disclaimer in the
+*      documentation and/or other materials provided with the distribution.
+*   3. The name of the ATLAS group or the names of its contributers may
+*      not be used to endorse or promote products derived from this
+*      software without specific written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+#include <stdio.h>
+#include "cblas.h"
+     
+int main(int argc, char **argv)
+{
+       int lda = 3;
+     
+       float A[] = { 0.11, 0.12, 0.13,
+                     0.21, 0.22, 0.23 };
+     
+       int ldb = 2;
+       
+       float B[] = { 1011, 1012,
+                     1021, 1022,
+                     1031, 1032 };
+     
+       int ldc = 2;
+     
+       float C[] = { 0.00, 0.00,
+                     0.00, 0.00 };
+     
+       /* Compute C = A B */
+     
+       cblas_sgemm (CblasRowMajor, 
+                    CblasNoTrans, CblasNoTrans, 2, 2, 3,
+                    1.0, A, lda, B, ldb, 0.0, C, ldc);
+     
+       printf ("[ %g, %g\n", C[0], C[1]);
+       printf ("  %g, %g ]\n", C[2], C[3]);
+     
+       return 0;  
+}
diff --git a/blas/example/sourceme.sh b/blas/example/sourceme.sh
new file mode 100644 (file)
index 0000000..475d7fa
--- /dev/null
@@ -0,0 +1,13 @@
+export COMPILER_BASE_DIR="/opt/ti/TI_CGT_C6000_7.4.2"
+export C6X_C_DIR="${COMPILER_BASE_DIR}/include;${COMPILER_BASE_DIR}/lib"
+export PATH="${COMPILER_BASE_DIR}/bin:$PATH"
+export XDCROOT="/opt/ti/xdctools_3_23_04_60/"
+
+# Set up envs for the ECPY example
+TI_BASE_DIR="/opt/ti"
+export EDMA3LLD_DIR=$TI_BASE_DIR/edma3_lld_02_11_05_02/packages
+export BIOS_DIR=$TI_BASE_DIR/bios_6_33_06_50/packages
+export XDC_DIR=$TI_BASE_DIR/xdctools_3_23_04_60
+export CGEN_DIR=$COMPILER_BASE_DIR
+export FC_DIR=$TI_BASE_DIR/framework_components_3_23_02_16/packages
+export XDAIS_DIR=$TI_BASE_DIR/xdais_7_23_00_06/packages
diff --git a/blas/inc/cblas.h b/blas/inc/cblas.h
new file mode 100644 (file)
index 0000000..9eaa4f6
--- /dev/null
@@ -0,0 +1,626 @@
+/*
+*             Automatically Tuned Linear Algebra Software v3.11.0
+*                    (C) Copyright 1997 R. Clint Whaley
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*   1. Redistributions of source code must retain the above copyright
+*      notice, this list of conditions and the following disclaimer.
+*   2. Redistributions in binary form must reproduce the above copyright
+*      notice, this list of conditions, and the following disclaimer in the
+*      documentation and/or other materials provided with the distribution.
+*   3. The name of the ATLAS group or the names of its contributers may
+*      not be used to endorse or promote products derived from this
+*      software without specific written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+#ifndef CBLAS_H
+
+#ifndef CBLAS_ENUM_DEFINED_H
+   #define CBLAS_ENUM_DEFINED_H
+   enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 };
+   enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113,
+                         AtlasConj=114};
+   enum CBLAS_UPLO  {CblasUpper=121, CblasLower=122};
+   enum CBLAS_DIAG  {CblasNonUnit=131, CblasUnit=132};
+   enum CBLAS_SIDE  {CblasLeft=141, CblasRight=142};
+#endif
+
+#ifndef CBLAS_ENUM_ONLY
+#define CBLAS_H
+#define CBLAS_INDEX int
+
+int cblas_errprn(int ierr, int info, char *form, ...);
+void cblas_xerbla(int p, const char *rout, const char *form, ...);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
+ * ===========================================================================
+ */
+float  cblas_sdsdot(const int N, const float alpha, const float *X,
+                    const int incX, const float *Y, const int incY);
+double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
+                   const int incY);
+float  cblas_sdot(const int N, const float  *X, const int incX,
+                  const float  *Y, const int incY);
+double cblas_ddot(const int N, const double *X, const int incX,
+                  const double *Y, const int incY);
+/*
+ * Functions having prefixes Z and C only
+ */
+void   cblas_cdotu_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotu);
+void   cblas_cdotc_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotc);
+
+void   cblas_zdotu_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotu);
+void   cblas_zdotc_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotc);
+
+
+/*
+ * Functions having prefixes S D SC DZ
+ */
+float  cblas_snrm2(const int N, const float *X, const int incX);
+float  cblas_sasum(const int N, const float *X, const int incX);
+
+double cblas_dnrm2(const int N, const double *X, const int incX);
+double cblas_dasum(const int N, const double *X, const int incX);
+
+float  cblas_scnrm2(const int N, const void *X, const int incX);
+float  cblas_scasum(const int N, const void *X, const int incX);
+
+double cblas_dznrm2(const int N, const void *X, const int incX);
+double cblas_dzasum(const int N, const void *X, const int incX);
+
+
+/*
+ * Functions having standard 4 prefixes (S D C Z)
+ */
+CBLAS_INDEX cblas_isamax(const int N, const float  *X, const int incX);
+CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
+CBLAS_INDEX cblas_icamax(const int N, const void   *X, const int incX);
+CBLAS_INDEX cblas_izamax(const int N, const void   *X, const int incX);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS routines
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (s, d, c, z)
+ */
+void cblas_sswap(const int N, float *X, const int incX,
+                 float *Y, const int incY);
+void cblas_scopy(const int N, const float *X, const int incX,
+                 float *Y, const int incY);
+void cblas_saxpy(const int N, const float alpha, const float *X,
+                 const int incX, float *Y, const int incY);
+void catlas_saxpby(const int N, const float alpha, const float *X,
+                  const int incX, const float beta, float *Y, const int incY);
+void catlas_sset
+   (const int N, const float alpha, float *X, const int incX);
+
+void cblas_dswap(const int N, double *X, const int incX,
+                 double *Y, const int incY);
+void cblas_dcopy(const int N, const double *X, const int incX,
+                 double *Y, const int incY);
+void cblas_daxpy(const int N, const double alpha, const double *X,
+                 const int incX, double *Y, const int incY);
+void catlas_daxpby(const int N, const double alpha, const double *X,
+                  const int incX, const double beta, double *Y, const int incY);
+void catlas_dset
+   (const int N, const double alpha, double *X, const int incX);
+
+void cblas_cswap(const int N, void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_ccopy(const int N, const void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_caxpy(const int N, const void *alpha, const void *X,
+                 const int incX, void *Y, const int incY);
+void catlas_caxpby(const int N, const void *alpha, const void *X,
+                  const int incX, const void *beta, void *Y, const int incY);
+void catlas_cset
+   (const int N, const void *alpha, void *X, const int incX);
+
+void cblas_zswap(const int N, void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_zcopy(const int N, const void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_zaxpy(const int N, const void *alpha, const void *X,
+                 const int incX, void *Y, const int incY);
+void catlas_zaxpby(const int N, const void *alpha, const void *X,
+                  const int incX, const void *beta, void *Y, const int incY);
+void catlas_zset
+   (const int N, const void *alpha, void *X, const int incX);
+
+
+/*
+ * Routines with S and D prefix only
+ */
+void cblas_srotg(float *a, float *b, float *c, float *s);
+void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
+void cblas_srot(const int N, float *X, const int incX,
+                float *Y, const int incY, const float c, const float s);
+void cblas_srotm(const int N, float *X, const int incX,
+                float *Y, const int incY, const float *P);
+
+void cblas_drotg(double *a, double *b, double *c, double *s);
+void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
+void cblas_drot(const int N, double *X, const int incX,
+                double *Y, const int incY, const double c, const double s);
+void cblas_drotm(const int N, double *X, const int incX,
+                double *Y, const int incY, const double *P);
+
+
+/*
+ * Routines with S D C Z CS and ZD prefixes
+ */
+void cblas_sscal(const int N, const float alpha, float *X, const int incX);
+void cblas_dscal(const int N, const double alpha, double *X, const int incX);
+void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_csscal(const int N, const float alpha, void *X, const int incX);
+void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
+
+/*
+ * Extra reference routines provided by ATLAS, but not mandated by the standard
+ */
+void cblas_crotg(void *a, void *b, void *c, void *s);
+void cblas_zrotg(void *a, void *b, void *c, void *s);
+void cblas_csrot(const int N, void *X, const int incX, void *Y, const int incY,
+                 const float c, const float s);
+void cblas_zdrot(const int N, void *X, const int incX, void *Y, const int incY,
+                 const double c, const double s);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 2 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 const float *X, const int incX, const float beta,
+                 float *Y, const int incY);
+void cblas_sgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const float alpha,
+                 const float *A, const int lda, const float *X,
+                 const int incX, const float beta, float *Y, const int incY);
+void cblas_strmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *Ap, float *X, const int incX);
+void cblas_strsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *A, const int lda, float *X,
+                 const int incX);
+void cblas_stbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *Ap, float *X, const int incX);
+
+void cblas_dgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 const double *X, const int incX, const double beta,
+                 double *Y, const int incY);
+void cblas_dgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const double alpha,
+                 const double *A, const int lda, const double *X,
+                 const int incX, const double beta, double *Y, const int incY);
+void cblas_dtrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *Ap, double *X, const int incX);
+void cblas_dtrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *A, const int lda, double *X,
+                 const int incX);
+void cblas_dtbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *Ap, double *X, const int incX);
+
+void cblas_cgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *X, const int incX, const void *beta,
+                 void *Y, const int incY);
+void cblas_cgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const void *alpha,
+                 const void *A, const int lda, const void *X,
+                 const int incX, const void *beta, void *Y, const int incY);
+void cblas_ctrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+void cblas_ctrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda, void *X,
+                 const int incX);
+void cblas_ctbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+
+void cblas_zgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *X, const int incX, const void *beta,
+                 void *Y, const int incY);
+void cblas_zgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const void *alpha,
+                 const void *A, const int lda, const void *X,
+                 const int incX, const void *beta, void *Y, const int incY);
+void cblas_ztrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+void cblas_ztrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda, void *X,
+                 const int incX);
+void cblas_ztbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+
+
+/*
+ * Routines with S and D prefixes only
+ */
+void cblas_ssymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const float alpha, const float *A,
+                 const int lda, const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_ssbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const float alpha, const float *A,
+                 const int lda, const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_sspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const float alpha, const float *Ap,
+                 const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_sger(const enum CBLAS_ORDER Order, const int M, const int N,
+                const float alpha, const float *X, const int incX,
+                const float *Y, const int incY, float *A, const int lda);
+void cblas_ssyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, float *A, const int lda);
+void cblas_sspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, float *Ap);
+void cblas_ssyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, const float *Y, const int incY, float *A,
+                const int lda);
+void cblas_sspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, const float *Y, const int incY, float *A);
+
+void cblas_dsymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const double alpha, const double *A,
+                 const int lda, const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dsbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const double alpha, const double *A,
+                 const int lda, const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const double alpha, const double *Ap,
+                 const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dger(const enum CBLAS_ORDER Order, const int M, const int N,
+                const double alpha, const double *X, const int incX,
+                const double *Y, const int incY, double *A, const int lda);
+void cblas_dsyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, double *A, const int lda);
+void cblas_dspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, double *Ap);
+void cblas_dsyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, const double *Y, const int incY, double *A,
+                const int lda);
+void cblas_dspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, const double *Y, const int incY, double *A);
+
+
+/*
+ * Routines with C and Z prefixes only
+ */
+void cblas_chemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_chbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_chpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *Ap,
+                 const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_cgeru(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_cgerc(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_cher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const void *X, const int incX,
+                void *A, const int lda);
+void cblas_chpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const void *X,
+                const int incX, void *A);
+void cblas_cher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *A, const int lda);
+void cblas_chpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *Ap);
+
+void cblas_zhemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zhbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zhpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *Ap,
+                 const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zgeru(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_zgerc(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_zher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const void *X, const int incX,
+                void *A, const int lda);
+void cblas_zhpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const void *X,
+                const int incX, void *A);
+void cblas_zher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *A, const int lda);
+void cblas_zhpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *Ap);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 3 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const float alpha, const float *A,
+                 const int lda, const float *B, const int ldb,
+                 const float beta, float *C, const int ldc);
+void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 const float *B, const int ldb, const float beta,
+                 float *C, const int ldc);
+void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const float alpha, const float *A, const int lda,
+                 const float beta, float *C, const int ldc);
+void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const float alpha, const float *A, const int lda,
+                  const float *B, const int ldb, const float beta,
+                  float *C, const int ldc);
+void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 float *B, const int ldb);
+void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 float *B, const int ldb);
+
+void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const double alpha, const double *A,
+                 const int lda, const double *B, const int ldb,
+                 const double beta, double *C, const int ldc);
+void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 const double *B, const int ldb, const double beta,
+                 double *C, const int ldc);
+void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const double alpha, const double *A, const int lda,
+                 const double beta, double *C, const int ldc);
+void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const double alpha, const double *A, const int lda,
+                  const double *B, const int ldb, const double beta,
+                  double *C, const int ldc);
+void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 double *B, const int ldb);
+void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 double *B, const int ldb);
+
+void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const void *alpha, const void *A,
+                 const int lda, const void *B, const int ldb,
+                 const void *beta, void *C, const int ldc);
+void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const void *alpha, const void *A, const int lda,
+                 const void *beta, void *C, const int ldc);
+void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const void *beta,
+                  void *C, const int ldc);
+void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+
+void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const void *alpha, const void *A,
+                 const int lda, const void *B, const int ldb,
+                 const void *beta, void *C, const int ldc);
+void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const void *alpha, const void *A, const int lda,
+                 const void *beta, void *C, const int ldc);
+void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const void *beta,
+                  void *C, const int ldc);
+void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+
+
+/*
+ * Routines with prefixes C and Z only
+ */
+void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const float alpha, const void *A, const int lda,
+                 const float beta, void *C, const int ldc);
+void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const float beta,
+                  void *C, const int ldc);
+void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const double alpha, const void *A, const int lda,
+                 const double beta, void *C, const int ldc);
+void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const double beta,
+                  void *C, const int ldc);
+
+int cblas_errprn(int ierr, int info, char *form, ...);
+
+#endif  /* end #ifdef CBLAS_ENUM_ONLY */
+#endif
diff --git a/blas/lib/libatlas.a b/blas/lib/libatlas.a
new file mode 100644 (file)
index 0000000..0ea6644
Binary files /dev/null and b/blas/lib/libatlas.a differ
diff --git a/blas/lib/libcblas.a b/blas/lib/libcblas.a
new file mode 100644 (file)
index 0000000..bacbbe6
Binary files /dev/null and b/blas/lib/libcblas.a differ
diff --git a/blas/lib/liblapack.a b/blas/lib/liblapack.a
new file mode 100644 (file)
index 0000000..9283251
Binary files /dev/null and b/blas/lib/liblapack.a differ
diff --git a/blas/lib/libtstatlas.a b/blas/lib/libtstatlas.a
new file mode 100644 (file)
index 0000000..73721a4
Binary files /dev/null and b/blas/lib/libtstatlas.a differ
diff --git a/blas/releasenote.txt b/blas/releasenote.txt
new file mode 100644 (file)
index 0000000..ea44fa6
--- /dev/null
@@ -0,0 +1,62 @@
+Release Notes:\r
+\r
+================================================================================\r
+Table of Contents\r
+================================================================================\r
+ 01.00.00.00. Initial Release \r
+ 01.01.00.00. Optimized ECPY Release \r
+ 03.11.00.00. First Release Version \r
+\r
+\r
+================================================================================\r
+ 01.00.00.00. Initial Release of ECPY version of ATLAS\r
+================================================================================\r
+\r
+================================================================================\r
+ 01.01.00.00. Release of Optimized ECPY version of ATLAS\r
+ - Used ECPY_ALL_INLINE + o2\r
+ - Fast version of ALG_EDMA_wait, ALG_EDMA_copy1D1D, ALG_EDMA_copy1D2D.\r
+ - Use the Cache_wbInvAll\r
+================================================================================\r
+\r
+================================================================================\r
+ 03.11.00.00. First Release Version Matching the BLAS Version Number\r
+ - Removed unused files\r
+ - Add license header\r
+ - Change the version number to match the BLAS version number\r
+================================================================================\r
+\r
+Dirctory Structure:\r
+\r
+- example (folder for the example code of ECPY version of ATLAS libraries)\r
+- inc (folder for header file of ATLAS)\r
+- lib (folder for library files of ECPY version of ATLAS)\r
+- runscript (folder for files needed for running the example code on C6678EVM)\r
+- releasenote.txt (this file)\r
+\r
+\r
+Building and Testing Environment Setup\r
+\r
+- PC with Ubuntu 12.04 LTS \r
+- C6678EVM LE connected to PC via USB\r
+- CCS5.2 installed at /opt/ti/ccsv5\r
+- CGT7.4.2 installed at /opt/ti/TI_CGT_C6000_7.4.2\r
+- XDCTools3.23.04.60 installed at /opt/ti/xdctools_3_23_04_60 \r
+- \93xdctools\94 is set up as the symbolic link pointing to /opt/ti/xdctools_3_23_04_60 \r
+- bios_6_33_06_50 installed at /opt/ti/                  \r
+- mcsdk_2_01_02_06 installed at /opt/ti\r
+- omp_1_02_00_05 installed at /opt/ti\r
+- pdk_C6678_1_1_2_6 installed at /opt/ti\r
+- edma3_lld_02_11_05_02 installed at /opt/ti\r
+- xdais_7_23_00_06 installed at /opt/ti\r
+- framework_components_3_23_02_16 installed at /opt/ti   \r
+- ipc_1_24_03_32 installed at /opt/ti\r
+\r
+\r
+How to Run Examples\r
+\r
+- cd blas-lib/blas/example\r
+- source sourceme.sh\r
+- make clean\r
+- make all\r
+- make run\r
diff --git a/blas/runscript/.bin-files,cmds b/blas/runscript/.bin-files,cmds
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blas/runscript/.dlls b/blas/runscript/.dlls
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blas/runscript/.executables b/blas/runscript/.executables
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blas/runscript/.interfaces b/blas/runscript/.interfaces
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blas/runscript/.libraries b/blas/runscript/.libraries
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blas/runscript/.src-files b/blas/runscript/.src-files
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blas/runscript/.xdcenv.mak b/blas/runscript/.xdcenv.mak
new file mode 100644 (file)
index 0000000..da63086
--- /dev/null
@@ -0,0 +1,16 @@
+#
+_XDCBUILDCOUNT = 61
+ifneq (,$(findstring path,$(_USEXDCENV_)))
+override XDCPATH = ^/../hijacks;^/../imports;/db/toolsrc/library/tools/packages;/home/xlibrary/trees/avalaprod/avalaprod-h39/exports/bios_6_32_02_39/packages;/home/xlibrary/trees/ipc/ipc-g27/exports/ipc_1_23_02_27/packages;/db/toolsrc/library/tools/packages;/home/a0866915/v/omp/src;/db/toolsrc/library/vendors2005/ti/Nyquist/pdk/pdk_c6616_1_0_0_11/packages
+override XDCROOT = /db/rtree/install/trees/products/xdcprod/xdcprod-o21/product/Linux/xdctools_3_22_01_21
+override XDCBUILDCFG = /home/a0866915/v/omp/src/config.bld
+endif
+ifneq (,$(findstring args,$(_USEXDCENV_)))
+override XDCARGS = 
+override XDCTARGETS = 
+endif
+#
+ifeq (0,1)
+PKGPATH = ^/../hijacks;^/../imports;/db/toolsrc/library/tools/packages;/home/xlibrary/trees/avalaprod/avalaprod-h39/exports/bios_6_32_02_39/packages;/home/xlibrary/trees/ipc/ipc-g27/exports/ipc_1_23_02_27/packages;/db/toolsrc/library/tools/packages;/home/a0866915/v/omp/src;/db/toolsrc/library/vendors2005/ti/Nyquist/pdk/pdk_c6616_1_0_0_11/packages;/db/rtree/install/trees/products/xdcprod/xdcprod-o21/product/Linux/xdctools_3_22_01_21/packages;..
+HOSTOS = Linux
+endif
diff --git a/blas/runscript/EVM.ccxml b/blas/runscript/EVM.ccxml
new file mode 100644 (file)
index 0000000..44fc4d7
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<configurations XML_version="1.2" id="configurations_0">
+<configuration XML_version="1.2" id="Blackhawk XDS560v2-USB Mezzanine Emulator_0">
+        <instance XML_version="1.2" desc="Blackhawk XDS560v2-USB Mezzanine Emulator_0" href="connections/BH-XDS560v2-USB_Mezzanine.xml" id="Blackhawk XDS560v2-USB Mezzanine Emulator_0" xml="BH-XDS560v2-USB_Mezzanine.xml" xmlpath="connections"/>
+        <connection XML_version="1.2" id="Blackhawk XDS560v2-USB Mezzanine Emulator_0">
+            <instance XML_version="1.2" href="drivers/tixds560icepick_d.xml" id="drivers" xml="tixds560icepick_d.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560c66xx.xml" id="drivers" xml="tixds560c66xx.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560cs_dap.xml" id="drivers" xml="tixds560cs_dap.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560csstm.xml" id="drivers" xml="tixds560csstm.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560etbcs.xml" id="drivers" xml="tixds560etbcs.xml" xmlpath="drivers"/>
+            <platform XML_version="1.2" id="platform_0">
+                <instance XML_version="1.2" desc="TMS320C6678_0" href="devices/C6678.xml" id="TMS320C6678_0" xml="C6678.xml" xmlpath="devices"/>
+            <device HW_revision="1" XML_version="1.2" description="C66x core" id="TMS320C6678_0" partnum="TMS320C6678">
+                    <router HW_revision="1.0" XML_version="1.2" description="ICEPick_D Router" id="IcePick_D_0" isa="ICEPICK_D">
+                        <subpath id="subpath_0">
+                            <cpu HW_revision="1.0" XML_version="1.2" description="C66xx CPU" id="C66xx_0" isa="TMS320c66xx">
+                                <property Type="filepathfield" Value="../../emulation/boards/evmc6678l/gel/evmc6678l.gel" id="GEL File"/>
+                            </cpu>
+                        </subpath>
+                    </router>
+                </device>
+            </platform>
+        </connection>
+    </configuration>
+</configurations>
diff --git a/blas/runscript/Main.xdc b/blas/runscript/Main.xdc
new file mode 100644 (file)
index 0000000..8f4be6b
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+ *  Copyright 2010 by Texas Instruments Incorporated.
+ *
+ */
+
+package runscript;
+
+/*!
+ *  ======== Regression Scripts ========   
+ */
+metaonly module Main 
+{
+    /* All required information/state for a regression cpu */
+    metaonly struct RegressionCpu {
+        String      buildName;      /* i.e. ti.platforms.evmDM6446  */
+        String      ccsName;        /* i.e. C64XP_0                 */
+        Bool        alwaysConnect;  /* Whether we need to always
+                                       connect to this CPU          */
+        Any         session;        /* DSS session for the CPU      */
+    }
+    
+    /* Mapping element between platform and cpu */
+    metaonly struct PlatformTargetMap {
+        String      platform;      /* i.e. ti.platforms.evmDM6446   */
+        String      target;        /* i.e. ti.targets.C64P          */
+    }
+
+    /*
+     * The following config paramters should be set before calling run.
+     */ 
+    //!Read/Write the testList with the specified filename.
+    metaonly config String testListFileName = "";
+    
+    //!The full CCS platform name as it appears in CCS setup
+    metaonly config String CCSPlatform = "";
+    
+    //!'Friendly' name for the platform
+    metaonly config String shortPlatformName = "";
+    
+    //!Contains everything we need to 'remember' for each cpu
+    metaonly config RegressionCpu cpus[length] = [];
+    
+    //!Maps a platform name to a specific target
+    metaonly config PlatformTargetMap platformTargetMap[length] = [];    
+    
+    //!The target configuration to run
+    metaonly config String ccxmlConfigFile = "";
+    
+    //!Run tests with the specified build profile
+    metaonly config String profile = "";
+
+    /*
+     * The following config parameters are computed or parsed from the
+     * command line.
+     */   
+    //!Read test list from file
+    metaonly config Bool readTestList = false;
+
+    //!Write test list to file only
+    metaonly config Bool writeTestListOnly = false;
+
+    //!Capsule of settings.xs file
+    metaonly config Any settings;
+    
+    metaonly config Int numCores;
+    
+    metaonly config String fileName;
+    
+    //!Enable trace
+    metaonly config Bool enableTracing = false;
+
+    /*!
+     *  ======== run ========
+     */
+    metaonly Void run(Any args);
+    
+    /*!
+     *  ======== addCpu ========
+     */
+    metaonly Void addCpu(String buildCpuName, String ccsName, Bool alwaysConnect);
+    
+    /*!
+     *  ======== getFreeCpu ========
+     */
+    metaonly RegressionCpu getFreeCpu(String buildCpuName);
+    
+    /*!
+     *  ======== getCpu ========
+     *  Used to retrieve a specific CPU when multiple of a same type are present.
+     */
+    metaonly RegressionCpu getCpu(String buildCpuName, UInt cpuNum);
+
+    /*!
+     *  ======== containsCpu ========
+     *  Return true if the RegressionPlatform contains the build cpu
+     *  i.e. ti.platforms.evmTCI6488
+     */
+    metaonly Bool containsCpu(String buildCpuName);
+    
+    /*!
+     *  ======== setPlatformTarget ========
+     *  Called by user in testMP.xs to pick a single target for a given platform
+     */
+    metaonly Void setPlatformTarget(String platform, String target);
+    
+    /*!
+     *  ======== getPlatformTarget ========
+     *  Used by TestList module to filter by target based on user configuration
+     *  supplied in setPlatformTarget.
+     */
+    metaonly String getPlatformTarget(String platform);    
+
+    /*!
+     *  ======== getSession ========
+     */
+    metaonly Any getSession(Int coreNum);
+
+    /*!
+     *  ======== connectCpus ========
+     */
+    metaonly Void connectCpus(Any debugServer);
+    
+    /*!
+     *  ======== terminateSessions ========
+     */
+    metaonly Void terminateSessions();
+    
+    /*!
+     *  ======== resetCpus ========
+     *  Resets all the used cpus
+     */
+    metaonly Void resetCpus();
+    
+    /*!
+     *  ======== setUsed ========
+     */
+    metaonly Void setUsed(String ccsCpuName);
+    
+    /*!
+     *  ======== setUnusedCpus ========
+     */
+    metaonly Void setUnusedCpus();
+    
+    /*!
+     *  ======== loadProgram ========
+     *  Print debugging messages...
+     */
+    metaonly Void logPrint(String str);
+    
+}
+/*
+ *  @(#) regression.mp; 1,0,0,24; 11-19-2010 17:08:21; /db/vtree/library/trees/regresstest/regresstest.git/src/ regresstest-a45
+ */
+
diff --git a/blas/runscript/Main.xs b/blas/runscript/Main.xs
new file mode 100644 (file)
index 0000000..4bb2403
--- /dev/null
@@ -0,0 +1,311 @@
+/*
+ *  Copyright 2010 by Texas Instruments Incorporated.
+ *
+ */
+
+/*
+ *  ======== Main.xs ========
+ *  This is the entry point for the regression scripts; the code in this file
+ *  manages the entire regression test procedure. This file is the entry point
+ *  because the code sits outside any functions, so it gets executed 
+ *  automatically.
+ *
+ *  This file implements a command line interface for the scripts. See
+ *  regression\doc\UsersGuide.doc for a detailed description of the 
+ *  arguments.
+ *
+ *
+ */
+//var testFile;
+//var numCores = 0;
+
+/*
+ *  ======== getFile ========
+ *  java.io.File interperets the backslashes in paths as escape chars.
+ *  This helper function fixes that.
+ */
+function getFile(filename)
+{
+    return(java.io.File(java.io.File(filename).getCanonicalPath()));
+}
+
+
+/* 
+ * ======== run ========
+ * Entry point for the scripts.
+ */
+function run(args)
+{
+    var Main = xdc.useModule('runscript.Main');
+    var Run = xdc.useModule('runscript.Run');
+   
+    /* Parse any command line arguments */
+    parseArgs(args);
+
+    /* Setup the Run module based on 'settings' */
+    Run.tempLogDir = Main.settings.tempLogDir;
+    
+    var xmlApps = null;
+    if (Main.fileName.indexOf('xml') != -1) {
+        /* Read in the XML file */
+        try {
+            var batchXMLObj = xdc.loadXML(getFile(Main.fileName));
+        }
+        catch(e) {
+            print("Error reading XML File: \"" + Main.fileName + "\"");
+            print(e);
+            java.lang.System.exit(0);
+        }
+        
+        xmlApps = batchXMLObj.apps.app;
+    }
+    
+
+    script = new Packages.com.ti.ccstudio.scripting.environment.ScriptingEnvironment.instance();
+    /* Turn off all console output from DSS */
+    script.traceSetConsoleLevel(Packages.com.ti.ccstudio.scripting.environment.TraceLevel.OFF);
+
+    script.setScriptTimeout(Main.settings.timeout);
+
+    var setup = script.getServer("DebugServer.1");
+    
+    setup.setConfig(Main.ccxmlConfigFile);
+
+    var server = script.getServer("DebugServer.1");
+    Main.connectCpus(server);
+    
+    /* script.setScriptTimeout(Main.settings.timeout * 3);*/
+    script.setScriptTimeout(Main.settings.timeout * 1000);
+    
+    if (xmlApps == null) {
+         var cmdFile = getFile(Main.fileName);
+         var fis1 = new java.io.FileInputStream(cmdFile);
+         var file1 = new java.io.BufferedReader(new java.io.InputStreamReader(fis1));
+         var incmd;
+         while (true) {
+           incmd = file1.readLine();
+           /* Run.runTest(Main.fileName, Main.numCores); */
+           if (incmd == "") break; if (incmd == "\n") break;
+           if (incmd != null) {
+             print("START: " + incmd);
+             Run.runTest(incmd, Main.numCores); 
+             print("FINISH: " + incmd);
+           }
+         }
+    }
+    else {
+        for each (var app in xmlApps) {
+            /* Run regressions on the test list. */
+            var fileName = app.@exec.toString();
+            
+            print("======== " + fileName + " ========");    
+            if (app.@num.toString() == "") {
+                var numCores = Main.numCores;
+            }
+            else {
+                var numCores = Number(app.@num);
+            }
+            Run.runTest(fileName, numCores);
+        }
+    }
+    print("Closing EVM connection");
+    terminateSessions();
+
+    java.lang.System.exit(0);
+} 
+
+/*
+ *  ======== parseArgs ========
+ */
+function parseArgs(args)
+{
+    var Main = xdc.useModule('runscript.Main');
+    
+    /*  
+     * The first argument should always be the absolute path to settings.xs.
+     * settings.xs is a configuration file that specifies paths, such as the 
+     * default search path, the package root, and the results directory.
+     */
+    Main.settings = xdc.loadCapsule(args[0]);
+    
+    for (var i = 1; i < args.length; i++) {
+        if (args[i] == "-n") {
+            Main.numCores = Number(args[i + 1]);
+            i++;
+        }
+        else if (args[i] == "-v") {
+            Main.enableTracing = true;
+        }
+        else {
+            Main.fileName = args[i];
+        }
+    }
+    
+    if (Main.numCores === undefined) {
+        Main.numCores = Main.cpus.length;
+    }
+    
+    Main.logPrint("parseArgs: numCores = " + Main.numCores + ", fileName = " + Main.fileName);
+
+}
+
+/* 
+ * ======== addCpu ========
+ */
+function addCpu(buildName, ccsName, alwaysConnect)
+{
+    var cpu = new this.RegressionCpu();
+    
+    if (buildName == null) {
+        throw("Main.addCpu: buildName cannot be NULL");
+    }
+    if (ccsName == null) {
+        throw("Main.addCpu: ccsName cannot be NULL");
+    }    
+    
+    cpu.buildName = buildName;
+    cpu.ccsName = ccsName;
+    cpu.session = null;
+    cpu.alwaysConnect = alwaysConnect;
+    
+    this.cpus.$add(cpu);
+}
+
+/* 
+ * ======== setPlatformTarget ========
+ */
+function setPlatformTarget(platform, target)
+{
+    var map = new this.PlatformTargetMap();
+    
+    if (platform == null) {
+        throw("Main.setPlatformTarget: platform cannot be NULL");
+    }
+    if (target == null) {
+        throw("Main.setPlatformTarget: target cannot be NULL");
+    }    
+    
+    map.platform = platform;
+    map.target = target;
+    
+    this.platformTargetMap.$add(map);
+}
+
+/* 
+ * ======== getPlatformTarget ========
+ */
+function getPlatformTarget(platform)
+{
+    for each(var map in this.platformTargetMap) {
+        if (map.platform == platform) {
+            return (map.target);
+        }
+    }
+    
+    return (null);
+}
+
+/*
+ *  ======== containsCpu ========
+ */
+function containsCpu(buildCpuName) 
+{
+    for (var i in this.cpus) {
+        var myCpu = this.cpus[i];
+        if (myCpu.buildName == buildCpuName) {
+            return (true);
+        }
+    }
+    return (false);
+}
+
+/*
+ *  ======== getSession ========
+ */
+function getSession(coreNum) 
+{
+    if (this.cpus.length > coreNum) {
+        return (this.cpus[coreNum].session);
+    }
+    print("ERROR: Cpu " + ccsCpuName + " does not exist");
+    Main.terminateSessions();
+    java.lang.System.exit(0);
+}
+
+/*
+ *  ======== connectCpus ========
+ */
+function connectCpus(debugServer) 
+{
+    for (var i = 0; i < this.numCores; i++) {
+        try {
+            myCpu = this.cpus[i];
+            Main.logPrint("Trying to connect to " + myCpu.ccsName);
+            myCpu.session = debugServer.openSession(this.CCSPlatform, myCpu.ccsName);
+            myCpu.session.target.connect();
+        }
+        catch (e) {
+            print("ERROR: Couldn't open session on " + myCpu.ccsName);
+            print(e);
+            java.lang.System.exit(0);
+        }
+    }
+    
+    print("Connected to cores #0-" + (this.numCores - 1));
+}
+
+/*
+ *  ======== resetCpus ========
+ */
+function resetCpus() 
+{
+    /* Reset each cpu. */
+    for (var i = 0; i < this.numCores; i++) {
+        myCpu = this.cpus[i];
+        try {
+            myCpu.session.target.halt();
+            myCpu.session.target.reset();
+        }
+        catch (e) {
+            print("ERROR: Problem reseting " + myCpu.ccsName);
+            print(e);
+            // java.lang.System.exit(0);
+        }
+    }
+}
+
+/*
+ *  ======== terminateSessions ========
+ */
+function terminateSessions() 
+{
+    for (var i in this.cpus) {
+        try {
+            myCpu = this.cpus[this.cpus.length - i - 1];
+            myCpu.session.terminate();
+            print("Terminated session: " + myCpu.ccsName);
+        }
+        catch (e) {
+            print("ERROR: Problem terminating " + myCpu.ccsName);
+            print(e);
+            java.lang.System.exit(0);
+        }
+    }
+}
+
+/*
+ *  ======== logPrint ========
+ *  Print debugging messages...
+ */
+function logPrint(str)
+{
+    var Main = xdc.useModule('runscript.Main');
+    
+    if (Main.enableTracing) {
+        var curdate = new Date()
+        dstring = curdate.toGMTString()
+
+        print(dstring + ": " + str);
+    }
+}
diff --git a/blas/runscript/README b/blas/runscript/README
new file mode 100644 (file)
index 0000000..4a1d86d
--- /dev/null
@@ -0,0 +1,39 @@
+How to use the run scripts supplied with the OMP product
+
+1) Edit 'DEBUGSERVER' in common_variables.bat to point to your CCS installation
+
+2) Create a new platforms\[MYCONFIG].xs file using an existing one
+   (i.e. evm6678_xds560.xs) as a template.
+
+    a) Place your .ccxml file in a place where the scripts can access them
+       (i.e. OMP_INSTALL_DIR\packages\regression\common\ccxml).  Point your
+       platforms\[MYCONFIG].xs file to that .ccxml file using the following
+       syntax:
+
+       Main.ccxmlConfigFile = "../regression/common/ccxml/evm6678_xds560.ccxml";
+
+
+    b) Make sure that the platform name in the first argument to 'Main.addCpu'
+       matches your platform name.  
+
+       
+3) Run the script as follows (the -n flag should be used to specify the number
+   of cores that the tests runs on)
+
+V:\omp_1_00_00_xx_eng\packages\runscript>run.bat platforms\evm6678_xds560.xs 
+    v:\ti\omp\tests\whole_program_debug\omp_hello.xe66 -n 4
+
+Connected to cores #0-3
+[CORE0]
+    Hello World from thread = 0
+    Number of threads = 4
+[CORE1]
+    Hello World from thread = 1
+[CORE2]
+    Hello World from thread = 2
+[CORE3]
+    Hello World from thread = 3
+
+V:\shreyasp\omp\exports\omp_1_00_00_xx_eng\packages\runscript>
+
+
diff --git a/blas/runscript/Run.xdc b/blas/runscript/Run.xdc
new file mode 100644 (file)
index 0000000..ff04361
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ *  Copyright 2010 by Texas Instruments Incorporated.
+ *
+ */
+
+package runscript;
+
+/*!
+ *  ======== Run ========
+ *
+ */
+metaonly module Run 
+{
+
+    /*!
+     *  ======== runTest ========
+     *  Runs a single MP test (comprised of 1 or more apps) on the appropriate
+     *  dss sessions 
+     */
+    metaonly Void runTest(String fileName, Int numCores);
+    
+    /*!
+     *  ======== tempLogDir ========
+     */
+    metaonly config String tempLogDir = "";
+}
+/*
+ *  @(#) regression.mp; 1,0,0,24; 11-19-2010 17:08:21; /db/vtree/library/trees/regresstest/regresstest.git/src/ regresstest-a45
+ */
+
diff --git a/blas/runscript/Run.xs b/blas/runscript/Run.xs
new file mode 100644 (file)
index 0000000..8421e60
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+ *  Copyright 2010 by Texas Instruments Incorporated.
+ *
+ */
+
+/*
+ *  ======== Run.xs ========
+ */ 
+
+/* Don't load ti.dss when building the tree, it won't be on the path */
+if (xdc.om.$name === undefined) {
+    xdc.loadPackage("ti.dss");
+}
+
+/*  
+ *  ======== settings.xs ======== 
+ *  Configuration file that specifies paths, such as the default search path,
+ *  the package root, and the results directory.
+ */
+var script;
+var logFile = [];
+
+/*
+ *  ======== runTestList ========
+ *  This function executes the provided list of tests and compares the test
+ *  ouput to the provided golden output to determine if the platform has passed
+ *  or failed the tests.
+ */
+function runTest(argString, numCores)
+{
+    var args = argString.split(" ");
+    var fileName = args[0];
+/*  args.shift(); */ /* Removed by Tony, I want the filename as args[0]. */
+    Main.logPrint("Running " + argString + " on " + numCores + " cores.");
+
+    /* Reset all the cores before running the test */
+    Main.resetCpus();
+
+    var testSessions = loadTest(fileName, numCores, args);
+
+    Main.logPrint("Running all cores Asynchronously " + Main.settings.timeout);
+    for each (var session in testSessions) {
+        session.target.runAsynch();
+    }
+    
+    Main.logPrint("Waiting for apps to halt ");
+    
+    for (var i in testSessions) {
+        var session = testSessions[i];
+        if (!session.target.isHalted()) {
+            try {
+                Main.logPrint("Waiting for CORE" + i + " to halt");
+                session.target.waitForHalt();
+            }
+            catch (e) {
+                print("Session " + session.getName() + " timed out after " + 
+                        Main.settings.timeout + "ms.");
+                break;
+            }
+        }
+    }
+    for (var i in testSessions) {
+        /* Close the log file */
+        session.endCIOLogging();
+    }
+    /* Done- no errors occurred */
+    printOutput(numCores);
+}
+
+/* =============================== *
+ *        HELPER FUNCTIONS         *
+ * =============================== */
+
+/*
+ *  ======== loadTest ========
+ *  Loads a test onto a device
+ */
+function loadTest(fileName, numCores, args) 
+{
+    var Main = xdc.useModule('runscript.Main');
+
+    var testSessions = [];
+
+    /* For every application in the test */
+    for (var i = 0; i < numCores; i++) {
+        var session = Main.getSession(i);
+        session.options.setBoolean("AutoRunToLabelOnRestart", false);
+        testSessions.push(session);
+        /* Write the output to a temporary log file. */
+        logFile[i] = Main.settings.tempLogDir + "output_" + i + ".txt";
+        
+        try {
+            session.beginCIOLogging(logFile[i]);
+        }
+        catch(e) {
+            /* 
+             * If log directory cannot be written to, no point even performing
+             * regressions
+             */
+             
+            print(e);
+            var logDir = Main.settings.tempLogDir; 
+            print("ERROR: Log directory '" + logDir 
+                + "' doesn't exist or cannot be written to. Terminating" + e);
+            Main.terminateSessions();
+            java.lang.System.exit(0);   
+        }
+
+        /* 
+         *  Load the .out file.  If argsToMain has been specified, load the 
+         *  program with arguments
+         */
+        if (!getFile(fileName).exists()) {
+            throw(".out file (" + fileName + " ) not found");
+        }
+        
+        try {
+            session.memory.loadProgram(fileName,args); 
+        }
+        catch(e) {
+            /* Re-throw the error */
+            throw("Load " + fileName + "on core " + i + " failed because of error: " + e);
+        }
+
+    }
+
+    return (testSessions);
+}
+
+/*
+ *  ======== printOutput ========
+ */
+function printOutput(numCores)
+{
+    var Main = xdc.useModule('runscript.Main');
+    
+    for (var i = 0; i < numCores; i++) {
+        /* Check whether log file exists (if script is working, it should) */
+        var outputFile = getFile(logFile[i]);
+        if (!outputFile.exists()) {
+            throw("Log file (" + logFile[i] + ")not found");
+        }
+
+        try {
+            var fis1 = new java.io.FileInputStream(outputFile);
+            var file1 = new java.io.BufferedReader(new java.io.InputStreamReader(fis1));        
+        }
+        catch (e) {
+            //TODO
+            print(e);
+            continue;
+        }
+        
+        outLine = file1.readLine();
+        if (outLine != null && outLine.indexOf("A_invalidProcessor") != -1) {
+            continue;
+        }
+        else {
+            print("[CORE" + i + "]");
+            if (outLine != null) {
+                print("    " + outLine);
+            }
+            
+            while ((outLine = file1.readLine()) != null) {
+                print("    " + outLine);
+            }
+        }
+    }
+}
+
+/*
+ *  ======== getFile ========
+ *  java.io.File interperets the backslashes in paths as escape chars.
+ *  This helper function fixes that.
+ */
+function getFile(filename)
+{
+    return(java.io.File(java.io.File(filename).getCanonicalPath()));
+}
+
+/*
+ *  ======== loadProgram ========
+ *  Load a program (app if MP, test if SP) optionally with arguments
+ *  onto the specified session.
+ */
+function loadProgram(session, path, args) 
+{    
+    if (!getFile(path).exists()) {
+        throw(".out file not found");
+    }
+     
+    try {
+        if (args != null && args.length != 0) {
+            session.memory.loadProgram(path, args); 
+        }
+        else {
+            session.memory.loadProgram(path); 
+        }
+    }
+    catch (e) {
+        print(e);
+        throw("Unknown error loading .out");
+    }
+}
+
+/*
+ *  @(#) regression.mp; 1,0,0,24; 11-19-2010 17:08:21; /db/vtree/library/trees/regresstest/regresstest.git/src/ regresstest-a45
+ */
+
diff --git a/blas/runscript/batch.xml b/blas/runscript/batch.xml
new file mode 100644 (file)
index 0000000..ae50f25
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testList name="testList_evm6678">
+  <apps>
+    <app exec="../atomic-1.out" num="8" />  
+    <app exec="../atomic-10.out" num="8" />  
+    <app exec="../atomic-2.out" num="8" />  
+    <app exec="../atomic-4.out" num="8" />  
+    <app exec="../atomic-5.out" num="8" />  
+    <app exec="../autopar-1.out" num="8" />  
+    <app exec="../collapse-1.out" num="8" />  
+    <app exec="../collapse-2.out" num="8" />  
+    <app exec="../copyin-1.out" num="8" />  
+    <app exec="../copyin-2.out" num="8" />  
+    <app exec="../critical-2.out" num="8" />  
+    <app exec="../debug-1.out" num="8" />  
+    <app exec="../icv-1.out" num="8" />  
+    <app exec="../lib-1.out" num="8" />  
+    <app exec="../lib-2.out" num="8" />  
+    <app exec="../lock-1.out" num="8" />  
+    <app exec="../lock-2.out" num="8" />  
+    <app exec="../loop-10.out" num="8" />  
+    <app exec="../loop-11.out" num="8" />  
+    <app exec="../loop-3.out" num="8" />  
+    <app exec="../loop-5.out" num="8" />  
+    <app exec="../loop-8.out" num="8" />  
+    <app exec="../loop-9.out" num="8" />  
+    <app exec="../nested-1.out" num="8" />  
+    <app exec="../nested-2.out" num="8" />  
+    <app exec="../nested-3.out" num="8" />  
+    <app exec="../omp-loop01.out" num="8" />  
+    <app exec="../omp-loop02.out" num="8" />  
+    <app exec="../omp-loop03.out" num="8" />  
+    <app exec="../omp-nested-1.out" num="8" />  
+    <app exec="../omp-parallel-for.out" num="8" />  
+    <app exec="../omp-parallel-if.out" num="8" />  
+    <app exec="../omp-single-1.out" num="8" />  
+    <app exec="../omp-single-2.out" num="8" />  
+    <app exec="../omp-single-3.out" num="8" />  
+    <app exec="../omp_hello.out" num="8" />  
+    <app exec="../omp_matvec.out" num="8" />  
+    <app exec="../omp_orphan.out" num="8" />  
+    <app exec="../omp_reduction.out" num="8" />  
+    <app exec="../omp_workshare1.out" num="8" />  
+    <app exec="../omp_workshare2.out" num="8" />  
+    <app exec="../omp_workshare4.out" num="8" />  
+    <app exec="../ordered-3.out" num="8" />  
+    <app exec="../parallel-1.out" num="8" />  
+    <app exec="../pr24455.out" num="8" />  
+    <app exec="../pr26171.out" num="8" />  
+    <app exec="../pr26943-1.out" num="8" />  
+    <app exec="../pr26943-2.out" num="8" />  
+    <app exec="../pr26943-3.out" num="8" />  
+    <app exec="../pr29947-1.out" num="8" />  
+    <app exec="../pr29947-2.out" num="8" />  
+    <app exec="../pr32362-1.out" num="8" />  
+    <app exec="../pr32362-2.out" num="8" />  
+    <app exec="../pr32362-3.out" num="8" />  
+    <app exec="../pr32468.out" num="8" />  
+    <app exec="../pr34513.out" num="8" />  
+    <app exec="../pr35196.out" num="8" />  
+    <app exec="../pr35549.out" num="8" />  
+    <app exec="../pr36802-1.out" num="8" />  
+    <app exec="../pr36802-2.out" num="8" />  
+    <app exec="../pr36802-3.out" num="8" />  
+    <app exec="../pr38650.out" num="8" />  
+    <app exec="../pr39591-1.out" num="8" />  
+    <app exec="../pr39591-2.out" num="8" />  
+    <app exec="../pr39591-3.out" num="8" />  
+    <app exec="../pr42029.out" num="8" />  
+    <app exec="../pr42942.out" num="8" />  
+    <app exec="../pr48591.out" num="8" />  
+    <app exec="../reduction-1.out" num="8" />  
+    <app exec="../reduction-2.out" num="8" />  
+    <app exec="../reduction-3.out" num="8" />  
+    <app exec="../reduction-4.out" num="8" />  
+    <app exec="../reduction-5.out" num="8" />  
+    <app exec="../shared-1.out" num="8" />  
+    <app exec="../shared-2.out" num="8" />  
+    <app exec="../shared-3.out" num="8" />  
+    <app exec="../single-2.out" num="8" />  
+    <app exec="../task-1.out" num="8" />  
+    <app exec="../task-3.out" num="8" />  
+    <app exec="../private-1.out" num="8" />  
+    <app exec="../pr26943-4.out" num="8" />  
+  </apps>
+</testList>
diff --git a/blas/runscript/common_variables.bat b/blas/runscript/common_variables.bat
new file mode 100644 (file)
index 0000000..5210165
--- /dev/null
@@ -0,0 +1,20 @@
+@echo on\r
+REM *************************************************************************\r
+REM  Update this path to point to the absolute install location of the \r
+REM  Debug Server\r
+REM  Only set the paths once. Create the 'PATHS_SET' environment variable to\r
+REM  indicate that the paths have been set already.\r
+REM *************************************************************************\r
+set DEBUGSERVER=C:\ti\ccsv5\ccs_base\r
+REM DEBUGSERVER=/db/sds13/packages/CCS_5_0_2_00006/ccsv5/ccs_base_5.0.2.00006\r
+REM *************************************************************************\r
+set PATH=%DEBUGSERVER%\scripting;%XDCROOT%\r
+set PATH=%DEBUGSERVER%\common;%PATH%\r
+set PATH=%DEBUGSERVER%\DebugServer\packages\;%PATH%\r
+set PATH=%DEBUGSERVER%\common\uscif;%PATH%\r
+set PATH=%DEBUGSERVER%\common\IDE;%PATH%\r
+set PATH=%DEBUGSERVER%\common\bin;%PATH%\r
+set PATH=%DEBUGSERVER%\DebugServer\bin\win32;%PATH%\r
+set PATH=%DEBUGSERVER%\DebugServer\win32\components;%PATH%\r
+set XDCPATH=%DEBUGSERVER%/DebugServer/packages;../;../../imports\r
+REM *************************************************************************\r
diff --git a/blas/runscript/hs_err_pid3699.log b/blas/runscript/hs_err_pid3699.log
new file mode 100644 (file)
index 0000000..509e736
--- /dev/null
@@ -0,0 +1,606 @@
+#
+# An unexpected error has been detected by HotSpot Virtual Machine:
+#
+#  SIGSEGV (0xb) at pc=0xf75b1696, pid=3699, tid=3893361472
+#
+# Java VM: Java HotSpot(TM) Client VM (1.5.0_22-b03 mixed mode)
+# Problematic frame:
+# C  [libc.so.6+0x76696]
+#
+
+---------------  T H R E A D  ---------------
+
+Current thread (0x09cfe1d0):  JavaThread "polling thread" daemon [_thread_in_native, id=3718]
+
+siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000023
+
+Registers:
+EAX=0xe8f00010, EBX=0xf76dfff4, ECX=0xe8f0002c, EDX=0x0000001f
+ESP=0xe80fe384, EBP=0x00000005, ESI=0xe0f3d8a0, EDI=0xffffffff
+EIP=0xf75b1696, CR2=0x00000023, EFLAGS=0x00010202
+
+Top of Stack: (sp=0xe80fe384)
+0xe80fe384:   0000001e e8f00010 0000001e f76dfff4
+0xe80fe394:   00000051 e8f00010 00000051 f75b4dec
+0xe80fe3a4:   e80fe404 e80fe504 ffffffff 00000000
+0xe80fe3b4:   e80fe404 e80fe4dc e8f00010 ffffffff
+0xe80fe3c4:   0000001e 00000000 f757dac1 e795fff4
+0xe80fe3d4:   00000051 00000023 e80fe473 e795fff4
+0xe80fe3e4:   e0fedec0 e0104fac e80fe473 e792c51f
+0xe80fe3f4:   00000000 00000044 00000023 e79137d4 
+
+Instructions: (pc=0xf75b1696)
+0xf75b1686:   76 00 39 c6 0f 84 ad 05 00 00 89 c2 85 d2 74 09
+0xf75b1696:   8b 7a 04 c1 ef 03 83 ef 02 89 56 08 89 d0 65 83 
+
+Stack: [0xe807f000,0xe8100000),  sp=0xe80fe384,  free space=508k
+Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
+C  [libc.so.6+0x76696]
+
+[error occurred during error reporting, step 120, id 0xb]
+
+Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
+j  org.mozilla.xpcom.internal.XPCOMJavaProxy.callXPCOMMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;+0
+j  org.mozilla.xpcom.internal.XPCOMJavaProxy.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+198
+j  $Proxy3.pollThreadMain()J+9
+j  com.ti.debug.engine.cce.CCEDebugEngine.pollThreadMain()J+7
+j  com.ti.debug.engine.cce.CCEDebugEngine$PollingThread.run()V+122
+v  ~StubRoutines::call_stub
+
+---------------  P R O C E S S  ---------------
+
+Java Threads: ( => current thread )
+  0xe9301550 JavaThread "SIGHUP handler" daemon [_thread_blocked, id=14335]
+=>0x09cfe1d0 JavaThread "polling thread" daemon [_thread_in_native, id=3718]
+  0x097e5f50 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3707]
+  0x097e4b70 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3706]
+  0x097e3c70 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3705]
+  0x097da650 JavaThread "Finalizer" daemon [_thread_blocked, id=3704]
+  0x097d99c8 JavaThread "Reference Handler" daemon [_thread_blocked, id=3703]
+  0x0977a690 JavaThread "main" [_thread_blocked, id=3699]
+
+Other Threads:
+  0x097d6e48 VMThread [id=3702]
+
+VM state:at safepoint (shutting down)
+
+VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
+[0x09779ae0/0x09779b08] Threads_lock - owner thread: 0x097d6e48
+
+Heap
+ def new generation   total 768K, used 57K [0xe9cb0000, 0xe9d80000, 0xea190000)
+  eden space 704K,   1% used [0xe9cb0000, 0xe9cb1ce0, 0xe9d60000)
+  from space 64K,  78% used [0xe9d60000, 0xe9d6c878, 0xe9d70000)
+  to   space 64K,   0% used [0xe9d70000, 0xe9d70000, 0xe9d80000)
+ tenured generation   total 9796K, used 7381K [0xea190000, 0xeab21000, 0xedcb0000)
+   the space 9796K,  75% used [0xea190000, 0xea8c5630, 0xea8c5800, 0xeab21000)
+ compacting perm gen  total 11264K, used 11125K [0xedcb0000, 0xee7b0000, 0xf1cb0000)
+   the space 11264K,  98% used [0xedcb0000, 0xee78d7b8, 0xee78d800, 0xee7b0000)
+No shared spaces configured.
+
+Dynamic libraries:
+08048000-08054000 r-xp 00000000 fc:01 1116010                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/xs.x86U
+08054000-08055000 rwxp 0000c000 fc:01 1116010                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/xs.x86U
+08055000-08058000 rwxp 00000000 00:00 0 
+09776000-09e7b000 rwxp 00000000 00:00 0                                  [heap]
+df5ab000-df5ae000 rwxp 00000000 00:00 0 
+df5ae000-df62c000 rwxp 00000000 00:00 0 
+df62c000-df62d000 ---p 00000000 00:00 0 
+df62d000-dfe2d000 rwxp 00000000 00:00 0 
+dfe2d000-dfeb3000 r-xp 00000000 fc:01 1586205                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libtiofr_tial.so
+dfeb3000-dfeb4000 rwxp 00085000 fc:01 1586205                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libtiofr_tial.so
+dfeb4000-dfef1000 r-xp 00000000 fc:01 1610858                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpic6x.so
+dfef1000-dff65000 rwxp 0003c000 fc:01 1610858                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpic6x.so
+dff65000-dff66000 rwxp 00000000 00:00 0 
+dff66000-e005a000 r-xp 00000000 fc:01 1610549                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libAETOperationServer.so
+e005a000-e0068000 rwxp 000f4000 fc:01 1610549                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libAETOperationServer.so
+e0068000-e00f7000 r-xp 00000000 fc:01 1610559                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libcTools2000.so
+e00f7000-e00fa000 rwxp 0008f000 fc:01 1610559                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libcTools2000.so
+e00fa000-e0100000 rwxp 00000000 00:00 0 
+e0100000-e0200000 rwxp 00000000 00:00 0 
+e0279000-e0295000 r-xp 00000000 fc:01 1610590                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libSetupAdapter4.so
+e0295000-e0296000 rwxp 0001b000 fc:01 1610590                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libSetupAdapter4.so
+e0296000-e02d3000 r-xp 00000000 fc:01 1610564                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libDeviceIdentifier.so
+e02d3000-e02d4000 rwxp 0003c000 fc:01 1610564                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libDeviceIdentifier.so
+e02d4000-e02d5000 rwxp 00000000 00:00 0 
+e02d5000-e035a000 r-xp 00000000 fc:01 1610583                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libICETargetAdapter.so
+e035a000-e035f000 rwxp 00084000 fc:01 1610583                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libICETargetAdapter.so
+e035f000-e03a9000 r-xp 00000000 fc:01 1610584                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libIceUtil.so.21
+e03a9000-e03ab000 rwxp 0004a000 fc:01 1610584                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libIceUtil.so.21
+e03ab000-e0601000 r-xp 00000000 fc:01 1610578                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libIce.so.21
+e0601000-e060f000 rwxp 00256000 fc:01 1610578                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libIce.so.21
+e060f000-e0648000 r-xp 00000000 fc:01 1610581                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libIceStorm.so.21
+e0648000-e064b000 rwxp 00038000 fc:01 1610581                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libIceStorm.so.21
+e064b000-e06fa000 r-xp 00000000 fc:01 1610580                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libICECD.so
+e06fa000-e06ff000 rwxp 000ae000 fc:01 1610580                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libICECD.so
+e06ff000-e0700000 ---p 00000000 00:00 0 
+e0700000-e0f00000 rwxp 00000000 00:00 0 
+e0f00000-e0ffa000 rwxp 00000000 00:00 0 
+e0ffa000-e1000000 ---p 00000000 00:00 0 
+e1010000-e1039000 r-xp 00000000 fc:01 1610604                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libTraceFactory.so
+e1039000-e103a000 rwxp 00028000 fc:01 1610604                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libTraceFactory.so
+e103a000-e103f000 r-xp 00000000 08:03 403620                             /lib/i386-linux-gnu/libnss_dns-2.15.so
+e103f000-e1040000 r-xp 00004000 08:03 403620                             /lib/i386-linux-gnu/libnss_dns-2.15.so
+e1040000-e1041000 rwxp 00005000 08:03 403620                             /lib/i386-linux-gnu/libnss_dns-2.15.so
+e1046000-e105a000 r-xp 00000000 fc:01 1610369                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libti_targetdb_parser.so
+e105a000-e105b000 rwxp 00013000 fc:01 1610369                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libti_targetdb_parser.so
+e105b000-e106d000 r-xp 00000000 fc:01 1079064                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libnet.so
+e106d000-e106e000 rwxp 00011000 fc:01 1079064                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libnet.so
+e106e000-e1071000 ---p 00000000 00:00 0 
+e1071000-e10ef000 rwxp 00000000 00:00 0 
+e10ef000-e10fe000 r-xp 00000000 fc:01 1610799                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpi.so
+e10fe000-e10ff000 rwxp 0000f000 fc:01 1610799                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpi.so
+e10ff000-e1100000 rwxp 00000000 00:00 0 
+e1100000-e1200000 rwxp 00000000 00:00 0 
+e120c000-e1221000 r-xp 00000000 fc:01 1610804                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpietb.so
+e1221000-e1224000 rwxp 00015000 fc:01 1610804                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpietb.so
+e1224000-e1238000 r-xp 00000000 fc:01 1610806                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpitrace.so
+e1238000-e123b000 rwxp 00014000 fc:01 1610806                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpitrace.so
+e123b000-e124f000 r-xp 00000000 fc:01 1610800                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpi_cs_dap.so
+e124f000-e1251000 rwxp 00014000 fc:01 1610800                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpi_cs_dap.so
+e1251000-e127f000 r-xp 00000000 fc:01 1610523                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/libxdsboard.so
+e127f000-e1283000 rwxp 0002d000 fc:01 1610523                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/libxdsboard.so
+e1283000-e1298000 r-xp 00000000 fc:01 1610802                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpi_icepick.so
+e1298000-e129b000 rwxp 00014000 fc:01 1610802                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/tpi/libtpi_icepick.so
+e129b000-e12d4000 r-xp 00000000 fc:01 1610322                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/bh560v2u_io.so
+e12d4000-e12d6000 rwxp 00038000 fc:01 1610322                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/bh560v2u_io.so
+e12d6000-e12e6000 rwxp 00000000 00:00 0 
+e1338000-e143a000 rwxp 00000000 00:00 0 
+e143a000-e144c000 r-xp 00000000 fc:01 1611005                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560etbcs.so
+e144c000-e1493000 rwxp 00012000 fc:01 1611005                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560etbcs.so
+e1493000-e1596000 rwxp 00000000 00:00 0 
+e1596000-e15a8000 r-xp 00000000 fc:01 1611002                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560csstm.so
+e15a8000-e15f0000 rwxp 00011000 fc:01 1611002                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560csstm.so
+e15f0000-e1e00000 rwxp 00000000 00:00 0 
+e1e00000-e1f00000 rwxp 00000000 00:00 0 
+e1f01000-e1f0b000 r-xp 00000000 fc:01 1586181                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libBkptCollector.so
+e1f0b000-e1f0c000 rwxp 00009000 fc:01 1586181                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libBkptCollector.so
+e1f0c000-e1f14000 r-xp 00000000 fc:01 1610783                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libdap.so
+e1f14000-e1f15000 rwxp 00007000 fc:01 1610783                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libdap.so
+e1f15000-e1f1c000 r-xp 00000000 fc:01 1610784                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libeti_dap.so
+e1f1c000-e1f1d000 rwxp 00006000 fc:01 1610784                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libeti_dap.so
+e1f1d000-e1f30000 r-xp 00000000 fc:01 1611001                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560cs_dap.so
+e1f30000-e1f7a000 rwxp 00012000 fc:01 1611001                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560cs_dap.so
+e1f7a000-e207d000 rwxp 00000000 00:00 0 
+e207d000-e209e000 r-xp 00000000 fc:01 1610995                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560c64x_plus.so
+e209e000-e2144000 rwxp 00020000 fc:01 1610995                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560c64x_plus.so
+e2144000-e2247000 rwxp 00000000 00:00 0 
+e2257000-e2267000 r-xp 00000000 fc:01 1610785                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libprsc.so
+e2267000-e2268000 rwxp 0000f000 fc:01 1610785                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libprsc.so
+e2268000-e22aa000 r-xp 00000000 fc:01 1610526                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/libxdsfast3.so
+e22aa000-e22b0000 rwxp 00041000 fc:01 1610526                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/libxdsfast3.so
+e22b0000-e22c1000 r-xp 00000000 fc:01 1611007                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560icepick_d.so
+e22c1000-e22e0000 rwxp 00011000 fc:01 1611007                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/drivers/libtixds560icepick_d.so
+e22e0000-e22e1000 rwxp 00000000 00:00 0 
+e22e1000-e22ff000 r-xp 00000000 fc:01 1610550                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libAETProperties.so
+e22ff000-e2300000 rwxp 0001e000 fc:01 1610550                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libAETProperties.so
+e2300000-e23fc000 rwxp 00000000 00:00 0 
+e23fc000-e2400000 ---p 00000000 00:00 0 
+e2407000-e24ae000 r-xp 00000000 fc:01 1610558                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libctools.so
+e24ae000-e24b1000 rwxp 000a7000 fc:01 1610558                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libctools.so
+e24b1000-e24ca000 r-xp 00000000 fc:01 1586646                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libDataSnapshotDecoder.so
+e24ca000-e24cb000 rwxp 00018000 fc:01 1586646                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libDataSnapshotDecoder.so
+e24cb000-e24eb000 rwxp 00000000 00:00 0 
+e24eb000-e25a8000 r-xp 00000000 fc:01 1586197                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libCollectorServer.so
+e25a8000-e25ab000 rwxp 000bd000 fc:01 1586197                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libCollectorServer.so
+e25ab000-e25ad000 rwxp 00000000 00:00 0 
+e25ad000-e25f7000 r-xp 00000000 fc:01 1586198                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libDatasetServer.so
+e25f7000-e25f9000 rwxp 0004a000 fc:01 1586198                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libDatasetServer.so
+e25f9000-e25fa000 rwxp 00000000 00:00 0 
+e25fa000-e2661000 r-xp 00000000 fc:01 1587267                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libfsutil.so
+e2661000-e2662000 rwxp 00067000 fc:01 1587267                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libfsutil.so
+e2662000-e28d2000 r-xp 00000000 fc:01 1587270                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libsetup_parser.so
+e28d2000-e28d4000 rwxp 00270000 fc:01 1587270                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libsetup_parser.so
+e28d4000-e28d9000 rwxp 00000000 00:00 0 
+e28d9000-e298c000 r-xp 00000000 fc:01 1586203                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libtiofr11.so
+e298c000-e2990000 rwxp 000b2000 fc:01 1586203                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libtiofr11.so
+e2990000-e32c3000 r-xp 00000000 fc:01 1586649                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libDebugServer.so
+e32c3000-e32c7000 rwxp 00932000 fc:01 1586649                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libDebugServer.so
+e32c7000-e32f2000 rwxp 00000000 00:00 0 
+e32f2000-e32fb000 r-xp 00000000 fc:01 1586650                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libimgicon.so
+e32fb000-e32fc000 rwxp 00008000 fc:01 1586650                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libimgicon.so
+e32fc000-e340c000 r-xp 00000000 fc:01 1587269                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/liblmgr10.so
+e340c000-e341a000 rwxp 00110000 fc:01 1587269                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/liblmgr10.so
+e341a000-e3423000 rwxp 00000000 00:00 0 
+e3423000-e3532000 r-xp 00000000 fc:01 1586651                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libmdex.so
+e3532000-e3544000 rwxp 0010f000 fc:01 1586651                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libmdex.so
+e3544000-e354c000 rwxp 00000000 00:00 0 
+e354c000-e389f000 r-xp 00000000 fc:01 1587273                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libxerces-c.so.25
+e389f000-e38d1000 rwxp 00352000 fc:01 1587273                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libxerces-c.so.25
+e38d1000-e3901000 r-xp 00000000 fc:01 1586206                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libXPCOMUtility.so
+e3901000-e3903000 rwxp 0002f000 fc:01 1586206                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/bin/linux_ia32/libXPCOMUtility.so
+e3903000-e394b000 r-xp 00000000 fc:01 1586648                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libDebugProperties.so
+e394b000-e394d000 rwxp 00048000 fc:01 1586648                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libDebugProperties.so
+e394d000-e3977000 r-xp 00000000 fc:01 1587271                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libti_logger.so
+e3977000-e3979000 rwxp 0002a000 fc:01 1587271                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libti_logger.so
+e3979000-e399d000 r-xp 00000000 08:03 539123                             /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2.2.2
+e399d000-e399e000 r-xp 00023000 08:03 539123                             /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2.2.2
+e399e000-e399f000 rwxp 00024000 08:03 539123                             /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2.2.2
+e39a0000-e39a7000 r-xp 00000000 fc:01 1610521                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/libxds560_ecom.so
+e39a7000-e39a8000 rwxp 00006000 fc:01 1610521                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/uscif/libxds560_ecom.so
+e39a8000-e39b2000 r-xp 00000000 fc:01 1587266                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libCCReg.so
+e39b2000-e39b3000 rwxp 0000a000 fc:01 1587266                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libCCReg.so
+e39b3000-e39b8000 r-xp 00000000 fc:01 1586652                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libXPCOMTILogger.so
+e39b8000-e39b9000 rwxp 00004000 fc:01 1586652                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libXPCOMTILogger.so
+e39b9000-e39ba000 ---p 00000000 00:00 0 
+e39ba000-e41ba000 rwxp 00000000 00:00 0 
+e41ba000-e41bb000 ---p 00000000 00:00 0 
+e41bb000-e49bb000 rwxp 00000000 00:00 0 
+e49bb000-e49bc000 ---p 00000000 00:00 0 
+e49bc000-e51bc000 rwxp 00000000 00:00 0 
+e51bc000-e51bd000 ---p 00000000 00:00 0 
+e51bd000-e59bd000 rwxp 00000000 00:00 0 
+e59bd000-e59c1000 r-xp 00000000 08:03 403692                             /lib/i386-linux-gnu/libuuid.so.1.3.0
+e59c1000-e59c2000 r-xp 00003000 08:03 403692                             /lib/i386-linux-gnu/libuuid.so.1.3.0
+e59c2000-e59c3000 rwxp 00004000 08:03 403692                             /lib/i386-linux-gnu/libuuid.so.1.3.0
+e59c3000-e59d6000 r-xp 00000000 08:03 403619                             /lib/i386-linux-gnu/libresolv-2.15.so
+e59d6000-e59d7000 ---p 00013000 08:03 403619                             /lib/i386-linux-gnu/libresolv-2.15.so
+e59d7000-e59d8000 r-xp 00013000 08:03 403619                             /lib/i386-linux-gnu/libresolv-2.15.so
+e59d8000-e59d9000 rwxp 00014000 08:03 403619                             /lib/i386-linux-gnu/libresolv-2.15.so
+e59d9000-e59db000 rwxp 00000000 00:00 0 
+e59db000-e59f8000 r-xp 00000000 08:03 403675                             /lib/i386-linux-gnu/libselinux.so.1
+e59f8000-e59f9000 r-xp 0001c000 08:03 403675                             /lib/i386-linux-gnu/libselinux.so.1
+e59f9000-e59fa000 rwxp 0001d000 08:03 403675                             /lib/i386-linux-gnu/libselinux.so.1
+e59fa000-e59ff000 r-xp 00000000 08:03 539173                             /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
+e59ff000-e5a00000 r-xp 00004000 08:03 539173                             /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
+e5a00000-e5a01000 rwxp 00005000 08:03 539173                             /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
+e5a01000-e5a03000 r-xp 00000000 08:03 539171                             /usr/lib/i386-linux-gnu/libXau.so.6.0.0
+e5a03000-e5a04000 r-xp 00001000 08:03 539171                             /usr/lib/i386-linux-gnu/libXau.so.6.0.0
+e5a04000-e5a05000 rwxp 00002000 08:03 539171                             /usr/lib/i386-linux-gnu/libXau.so.6.0.0
+e5a05000-e5a1b000 r-xp 00000000 08:03 539357                             /usr/lib/i386-linux-gnu/libICE.so.6.3.0
+e5a1b000-e5a1c000 r-xp 00015000 08:03 539357                             /usr/lib/i386-linux-gnu/libICE.so.6.3.0
+e5a1c000-e5a1d000 rwxp 00016000 08:03 539357                             /usr/lib/i386-linux-gnu/libICE.so.6.3.0
+e5a1d000-e5a1f000 rwxp 00000000 00:00 0 
+e5a1f000-e5a26000 r-xp 00000000 08:03 539359                             /usr/lib/i386-linux-gnu/libSM.so.6.0.1
+e5a26000-e5a27000 r-xp 00006000 08:03 539359                             /usr/lib/i386-linux-gnu/libSM.so.6.0.1
+e5a27000-e5a28000 rwxp 00007000 08:03 539359                             /usr/lib/i386-linux-gnu/libSM.so.6.0.1
+e5a28000-e5a30000 r-xp 00000000 08:03 539208                             /usr/lib/i386-linux-gnu/libxcb-render.so.0.0.0
+e5a30000-e5a31000 r-xp 00008000 08:03 539208                             /usr/lib/i386-linux-gnu/libxcb-render.so.0.0.0
+e5a31000-e5a32000 rwxp 00009000 08:03 539208                             /usr/lib/i386-linux-gnu/libxcb-render.so.0.0.0
+e5a32000-e5a34000 r-xp 00000000 08:03 539210                             /usr/lib/i386-linux-gnu/libxcb-shm.so.0.0.0
+e5a34000-e5a35000 r-xp 00001000 08:03 539210                             /usr/lib/i386-linux-gnu/libxcb-shm.so.0.0.0
+e5a35000-e5a36000 rwxp 00002000 08:03 539210                             /usr/lib/i386-linux-gnu/libxcb-shm.so.0.0.0
+e5a36000-e5a5e000 r-xp 00000000 08:03 403684                             /lib/i386-linux-gnu/libpng12.so.0.46.0
+e5a5e000-e5a5f000 r-xp 00027000 08:03 403684                             /lib/i386-linux-gnu/libpng12.so.0.46.0
+e5a5f000-e5a60000 rwxp 00028000 08:03 403684                             /lib/i386-linux-gnu/libpng12.so.0.46.0
+e5a60000-e5af3000 r-xp 00000000 08:03 539206                             /usr/lib/i386-linux-gnu/libpixman-1.so.0.24.4
+e5af3000-e5af7000 r-xp 00092000 08:03 539206                             /usr/lib/i386-linux-gnu/libpixman-1.so.0.24.4
+e5af7000-e5af8000 rwxp 00096000 08:03 539206                             /usr/lib/i386-linux-gnu/libpixman-1.so.0.24.4
+e5af8000-e5afa000 r-xp 00000000 08:03 539313                             /usr/lib/i386-linux-gnu/libXdamage.so.1.1.0
+e5afa000-e5afb000 r-xp 00001000 08:03 539313                             /usr/lib/i386-linux-gnu/libXdamage.so.1.1.0
+e5afb000-e5afc000 rwxp 00002000 08:03 539313                             /usr/lib/i386-linux-gnu/libXdamage.so.1.1.0
+e5afc000-e5b05000 r-xp 00000000 08:03 539382                             /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
+e5b05000-e5b06000 r-xp 00008000 08:03 539382                             /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
+e5b06000-e5b07000 rwxp 00009000 08:03 539382                             /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
+e5b07000-e5b15000 r-xp 00000000 08:03 539384                             /usr/lib/i386-linux-gnu/libXi.so.6.1.0
+e5b15000-e5b16000 r-xp 0000d000 08:03 539384                             /usr/lib/i386-linux-gnu/libXi.so.6.1.0
+e5b16000-e5b17000 rwxp 0000e000 08:03 539384                             /usr/lib/i386-linux-gnu/libXi.so.6.1.0
+e5b17000-e5c6a000 r-xp 00000000 08:03 530851                             /usr/lib/i386-linux-gnu/libgio-2.0.so.0.3200.3
+e5c6a000-e5c6c000 r-xp 00153000 08:03 530851                             /usr/lib/i386-linux-gnu/libgio-2.0.so.0.3200.3
+e5c6c000-e5c6d000 rwxp 00155000 08:03 530851                             /usr/lib/i386-linux-gnu/libgio-2.0.so.0.3200.3
+e5c6d000-e5c6e000 rwxp 00000000 00:00 0 
+e5c6e000-e5ca8000 r-xp 00000000 08:03 403673                             /lib/i386-linux-gnu/libpcre.so.3.12.1
+e5ca8000-e5ca9000 r-xp 00039000 08:03 403673                             /lib/i386-linux-gnu/libpcre.so.3.12.1
+e5ca9000-e5caa000 rwxp 0003a000 08:03 403673                             /lib/i386-linux-gnu/libpcre.so.3.12.1
+e5caa000-e5cc9000 r-xp 00000000 08:03 539175                             /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
+e5cc9000-e5cca000 r-xp 0001f000 08:03 539175                             /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
+e5cca000-e5ccb000 rwxp 00020000 08:03 539175                             /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
+e5ccb000-e5cf1000 r-xp 00000000 08:03 403700                             /lib/i386-linux-gnu/libexpat.so.1.5.2
+e5cf1000-e5cf2000 ---p 00026000 08:03 403700                             /lib/i386-linux-gnu/libexpat.so.1.5.2
+e5cf2000-e5cf4000 r-xp 00026000 08:03 403700                             /lib/i386-linux-gnu/libexpat.so.1.5.2
+e5cf4000-e5cf5000 rwxp 00028000 08:03 403700                             /lib/i386-linux-gnu/libexpat.so.1.5.2
+e5cf5000-e5d4d000 r-xp 00000000 08:03 539361                             /usr/lib/i386-linux-gnu/libXt.so.6.0.0
+e5d4d000-e5d4e000 r-xp 00057000 08:03 539361                             /usr/lib/i386-linux-gnu/libXt.so.6.0.0
+e5d4e000-e5d51000 rwxp 00058000 08:03 539361                             /usr/lib/i386-linux-gnu/libXt.so.6.0.0
+e5d51000-e5e18000 r-xp 00000000 08:03 539214                             /usr/lib/i386-linux-gnu/libcairo.so.2.11000.2
+e5e18000-e5e19000 r-xp 000c7000 08:03 539214                             /usr/lib/i386-linux-gnu/libcairo.so.2.11000.2
+e5e19000-e5e1a000 rwxp 000c8000 08:03 539214                             /usr/lib/i386-linux-gnu/libcairo.so.2.11000.2
+e5e1a000-e5e1c000 rwxp 00000000 00:00 0 
+e5e1c000-e5e3b000 r-xp 00000000 08:03 539230                             /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.1
+e5e3b000-e5e3c000 r-xp 0001e000 08:03 539230                             /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.1
+e5e3c000-e5e3d000 rwxp 0001f000 08:03 539230                             /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0.2600.1
+e5e3d000-e5ee8000 r-xp 00000000 08:03 539391                             /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0.2400.10
+e5ee8000-e5ee9000 ---p 000ab000 08:03 539391                             /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0.2400.10
+e5ee9000-e5eeb000 r-xp 000ab000 08:03 539391                             /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0.2400.10
+e5eeb000-e5eec000 rwxp 000ad000 08:03 539391                             /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0.2400.10
+e5eec000-e5f09000 r-xp 00000000 08:03 539355                             /usr/lib/i386-linux-gnu/libatk-1.0.so.0.20409.1
+e5f09000-e5f0b000 r-xp 0001c000 08:03 539355                             /usr/lib/i386-linux-gnu/libatk-1.0.so.0.20409.1
+e5f0b000-e5f0c000 rwxp 0001e000 08:03 539355                             /usr/lib/i386-linux-gnu/libatk-1.0.so.0.20409.1
+e5f0c000-e636c000 r-xp 00000000 08:03 539390                             /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0.2400.10
+e636c000-e6370000 r-xp 00460000 08:03 539390                             /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0.2400.10
+e6370000-e6372000 rwxp 00464000 08:03 539390                             /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0.2400.10
+e6372000-e6374000 rwxp 00000000 00:00 0 
+e6374000-e646b000 r-xp 00000000 08:03 403676                             /lib/i386-linux-gnu/libglib-2.0.so.0.3200.3
+e646b000-e646c000 r-xp 000f6000 08:03 403676                             /lib/i386-linux-gnu/libglib-2.0.so.0.3200.3
+e646c000-e646d000 rwxp 000f7000 08:03 403676                             /lib/i386-linux-gnu/libglib-2.0.so.0.3200.3
+e646d000-e64ba000 r-xp 00000000 08:03 530853                             /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.3200.3
+e64ba000-e64bb000 r-xp 0004c000 08:03 530853                             /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.3200.3
+e64bb000-e64bc000 rwxp 0004d000 08:03 530853                             /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.3200.3
+e64bc000-e6503000 r-xp 00000000 08:03 539337                             /usr/lib/i386-linux-gnu/libpango-1.0.so.0.3000.0
+e6503000-e6504000 ---p 00047000 08:03 539337                             /usr/lib/i386-linux-gnu/libpango-1.0.so.0.3000.0
+e6504000-e6505000 r-xp 00047000 08:03 539337                             /usr/lib/i386-linux-gnu/libpango-1.0.so.0.3000.0
+e6505000-e6506000 rwxp 00048000 08:03 539337                             /usr/lib/i386-linux-gnu/libpango-1.0.so.0.3000.0
+e6506000-e6530000 r-xp 00000000 08:03 539340                             /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0.3000.0
+e6530000-e6531000 r-xp 00029000 08:03 539340                             /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0.3000.0
+e6531000-e6532000 rwxp 0002a000 08:03 539340                             /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0.3000.0
+e6532000-e6662000 r-xp 00000000 08:03 539177                             /usr/lib/i386-linux-gnu/libX11.so.6.3.0
+e6662000-e6663000 r-xp 0012f000 08:03 539177                             /usr/lib/i386-linux-gnu/libX11.so.6.3.0
+e6663000-e6665000 rwxp 00130000 08:03 539177                             /usr/lib/i386-linux-gnu/libX11.so.6.3.0
+e6665000-e6666000 rwxp 00000000 00:00 0 
+e6666000-e66ad000 r-xp 00000000 08:03 403671                             /lib/i386-linux-gnu/libdbus-1.so.3.5.8
+e66ad000-e66ae000 r-xp 00047000 08:03 403671                             /lib/i386-linux-gnu/libdbus-1.so.3.5.8
+e66ae000-e66af000 rwxp 00048000 08:03 403671                             /lib/i386-linux-gnu/libdbus-1.so.3.5.8
+e66af000-e6744000 r-xp 00000000 08:03 539202                             /usr/lib/i386-linux-gnu/libfreetype.so.6.8.0
+e6744000-e6748000 r-xp 00094000 08:03 539202                             /usr/lib/i386-linux-gnu/libfreetype.so.6.8.0
+e6748000-e6749000 rwxp 00098000 08:03 539202                             /usr/lib/i386-linux-gnu/libfreetype.so.6.8.0
+e6749000-e74d3000 r-xp 00000000 fc:01 1586304                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libxul.so
+e74d3000-e75c1000 rwxp 00d89000 fc:01 1586304                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libxul.so
+e75c1000-e75d6000 rwxp 00000000 00:00 0 
+e75d6000-e7723000 r-xp 00000000 fc:01 1586289                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libmozjs.so
+e7723000-e772a000 rwxp 0014c000 fc:01 1586289                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libmozjs.so
+e772a000-e772b000 rwxp 00000000 00:00 0 
+e772b000-e77fb000 r-xp 00000000 fc:01 1586291                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libnss3.so
+e77fb000-e77ff000 rwxp 000d0000 fc:01 1586291                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libnss3.so
+e77ff000-e7881000 r-xp 00000000 fc:01 1586301                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libsqlite3.so
+e7881000-e7883000 rwxp 00082000 fc:01 1586301                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libsqlite3.so
+e7883000-e795b000 r-xp 00000000 08:03 527922                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
+e795b000-e795c000 ---p 000d8000 08:03 527922                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
+e795c000-e7960000 r-xp 000d8000 08:03 527922                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
+e7960000-e7961000 rwxp 000dc000 08:03 527922                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
+e7961000-e7968000 rwxp 00000000 00:00 0 
+e7968000-e7a55000 r-xp 00000000 08:03 527957                             /usr/lib/i386-linux-gnu/libasound.so.2.0.0
+e7a55000-e7a59000 r-xp 000ec000 08:03 527957                             /usr/lib/i386-linux-gnu/libasound.so.2.0.0
+e7a59000-e7a5a000 rwxp 000f0000 08:03 527957                             /usr/lib/i386-linux-gnu/libasound.so.2.0.0
+e7a5a000-e7aeb000 r-xs 00000000 fc:01 1586870                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/com.ti.ccstudio.debug.memoryserver_1.0.0.jar
+e7aeb000-e7c07000 r-xs 00000000 fc:01 1586874                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/com.ti.debug.engine_1.0.0.jar
+e7c07000-e7cb5000 r-xs 00000000 fc:01 1586876                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/js.jar
+e7cb5000-e7d6d000 r-xs 00000000 fc:01 1586878                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/MozillaInterfaces.jar
+e7d6d000-e7f00000 r-xs 00000000 fc:01 1081765                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/shelf/java/ecj.jar
+e7f00000-e7f68000 rwxp 00000000 00:00 0 
+e7f68000-e8000000 ---p 00000000 00:00 0 
+e8000000-e8007000 r-xp 00000000 08:03 539388                             /usr/lib/i386-linux-gnu/libXrandr.so.2.2.0
+e8007000-e8008000 r-xp 00006000 08:03 539388                             /usr/lib/i386-linux-gnu/libXrandr.so.2.2.0
+e8008000-e8009000 rwxp 00007000 08:03 539388                             /usr/lib/i386-linux-gnu/libXrandr.so.2.2.0
+e8009000-e801d000 r-xp 00000000 08:03 403656                             /lib/i386-linux-gnu/libz.so.1.2.3.4
+e801d000-e801e000 r-xp 00013000 08:03 403656                             /lib/i386-linux-gnu/libz.so.1.2.3.4
+e801e000-e801f000 rwxp 00014000 08:03 403656                             /lib/i386-linux-gnu/libz.so.1.2.3.4
+e801f000-e802f000 r-xp 00000000 08:03 539179                             /usr/lib/i386-linux-gnu/libXext.so.6.4.0
+e802f000-e8030000 r-xp 0000f000 08:03 539179                             /usr/lib/i386-linux-gnu/libXext.so.6.4.0
+e8030000-e8031000 rwxp 00010000 08:03 539179                             /usr/lib/i386-linux-gnu/libXext.so.6.4.0
+e8031000-e8063000 r-xp 00000000 08:03 539204                             /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4
+e8063000-e8064000 r-xp 00032000 08:03 539204                             /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4
+e8064000-e8065000 rwxp 00033000 08:03 539204                             /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4
+e8068000-e806e000 r-xp 00000000 fc:01 1586647                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libdbusservice.so
+e806e000-e806f000 rwxp 00006000 fc:01 1586647                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/components/libdbusservice.so
+e806f000-e8072000 r-xp 00000000 08:03 527897                             /usr/lib/i386-linux-gnu/gconv/UTF-16.so
+e8072000-e8073000 r-xp 00002000 08:03 527897                             /usr/lib/i386-linux-gnu/gconv/UTF-16.so
+e8073000-e8074000 rwxp 00003000 08:03 527897                             /usr/lib/i386-linux-gnu/gconv/UTF-16.so
+e8074000-e807b000 r-xs 00000000 08:03 530761                             /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
+e807b000-e807e000 r-xp 00000000 fc:01 1586303                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libxpcom.so
+e807e000-e807f000 rwxp 00002000 fc:01 1586303                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libxpcom.so
+e807f000-e8082000 ---p 00000000 00:00 0 
+e8082000-e8100000 rwxp 00000000 00:00 0 
+e8100000-e81fe000 rwxp 00000000 00:00 0 
+e81fe000-e8200000 ---p 00000000 00:00 0 
+e8200000-e82fa000 rwxp 00000000 00:00 0 
+e82fa000-e8300000 ---p 00000000 00:00 0 
+e8300000-e8500000 rwxp 00000000 00:00 0 
+e8500000-e85fa000 rwxp 00000000 00:00 0 
+e85fa000-e8600000 ---p 00000000 00:00 0 
+e8600000-e86fc000 rwxp 00000000 00:00 0 
+e86fc000-e8700000 ---p 00000000 00:00 0 
+e8700000-e87ff000 rwxp 00000000 00:00 0 
+e87ff000-e8800000 ---p 00000000 00:00 0 
+e8801000-e880c000 r-xp 00000000 08:03 539339                             /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0.3000.0
+e880c000-e880d000 r-xp 0000a000 08:03 539339                             /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0.3000.0
+e880d000-e880e000 rwxp 0000b000 08:03 539339                             /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0.3000.0
+e880e000-e8c3a000 r-xs 00000000 fc:01 1081763                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/shelf/java/js.jar
+e8c3a000-e8d00000 r-xs 00000000 fc:01 1079000                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/ext/localedata.jar
+e8d00000-e8d21000 rwxp 00000000 00:00 0 
+e8d21000-e8e00000 ---p 00000000 00:00 0 
+e8e01000-e8e02000 r-xp 00000000 fc:01 1610561                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libctoolsndbg.so
+e8e02000-e8e03000 rwxp 00000000 fc:01 1610561                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/libctoolsndbg.so
+e8e03000-e8e05000 r-xp 00000000 08:03 539380                             /usr/lib/i386-linux-gnu/libXcomposite.so.1.0.0
+e8e05000-e8e06000 r-xp 00001000 08:03 539380                             /usr/lib/i386-linux-gnu/libXcomposite.so.1.0.0
+e8e06000-e8e07000 rwxp 00002000 08:03 539380                             /usr/lib/i386-linux-gnu/libXcomposite.so.1.0.0
+e8e07000-e8e09000 r-xp 00000000 08:03 539386                             /usr/lib/i386-linux-gnu/libXinerama.so.1.0.0
+e8e09000-e8e0a000 r-xp 00001000 08:03 539386                             /usr/lib/i386-linux-gnu/libXinerama.so.1.0.0
+e8e0a000-e8e0b000 rwxp 00002000 08:03 539386                             /usr/lib/i386-linux-gnu/libXinerama.so.1.0.0
+e8e0b000-e8e27000 r-xp 00000000 fc:01 1586298                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libsmime3.so
+e8e27000-e8e29000 rwxp 0001c000 fc:01 1586298                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libsmime3.so
+e8e29000-e8e50000 r-xp 00000000 fc:01 1586302                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libssl3.so
+e8e50000-e8e52000 rwxp 00027000 fc:01 1586302                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libssl3.so
+e8e52000-e8e7e000 r-xp 00000000 fc:01 1586300                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libsoftokn3.so
+e8e7e000-e8e7f000 rwxp 0002c000 fc:01 1586300                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libsoftokn3.so
+e8e7f000-e8e80000 ---p 00000000 00:00 0 
+e8e80000-e8f00000 rwxp 00000000 00:00 0 
+e8f00000-e8ffd000 rwxp 00000000 00:00 0 
+e8ffd000-e9000000 ---p 00000000 00:00 0 
+e9000000-e9002000 r-xp 00000000 fc:01 1587268                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libfsutiljni.so
+e9002000-e9003000 rwxp 00001000 fc:01 1587268                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/common/bin/libfsutiljni.so
+e9003000-e9008000 r-xp 00000000 08:03 530846                             /usr/lib/i386-linux-gnu/libffi.so.6.0.0
+e9008000-e9009000 r-xp 00004000 08:03 530846                             /usr/lib/i386-linux-gnu/libffi.so.6.0.0
+e9009000-e900a000 rwxp 00005000 08:03 530846                             /usr/lib/i386-linux-gnu/libffi.so.6.0.0
+e900a000-e9012000 r-xp 00000000 08:03 539212                             /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
+e9012000-e9013000 r-xp 00007000 08:03 539212                             /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
+e9013000-e9014000 rwxp 00008000 08:03 539212                             /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
+e9014000-e9044000 r-xp 00000000 fc:01 1586290                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libnspr4.so
+e9044000-e9045000 rwxp 00030000 fc:01 1586290                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libnspr4.so
+e9045000-e9047000 rwxp 00000000 00:00 0 
+e9047000-e9063000 r-xp 00000000 08:03 402417                             /lib/i386-linux-gnu/libgcc_s.so.1
+e9063000-e9064000 r-xp 0001b000 08:03 402417                             /lib/i386-linux-gnu/libgcc_s.so.1
+e9064000-e9065000 rwxp 0001c000 08:03 402417                             /lib/i386-linux-gnu/libgcc_s.so.1
+e9065000-e9069000 r-xp 00000000 08:03 539315                             /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
+e9069000-e906a000 r-xp 00004000 08:03 539315                             /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
+e906a000-e906b000 rwxp 00005000 08:03 539315                             /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
+e906b000-e907c000 r-xp 00000000 fc:01 1586295                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libnssutil3.so
+e907c000-e907f000 rwxp 00011000 fc:01 1586295                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libnssutil3.so
+e907f000-e9082000 ---p 00000000 00:00 0 
+e9082000-e9100000 rwxp 00000000 00:00 0 
+e9100000-e9200000 rwxp 00000000 00:00 0 
+e9200000-e9201000 rwxp 00000000 00:00 0 
+e9201000-e9204000 r-xp 00000000 08:03 530852                             /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0.3200.3
+e9204000-e9205000 r-xp 00002000 08:03 530852                             /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0.3200.3
+e9205000-e9206000 rwxp 00003000 08:03 530852                             /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0.3200.3
+e9206000-e921a000 r-xs 00000000 fc:01 1586873                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/com.ti.debug.engine.linux.kernel_1.0.0.jar
+e921a000-e927f000 r-xs 00000000 fc:01 1080317                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/services/spec/java/package.jar
+e927f000-e9282000 ---p 00000000 00:00 0 
+e9282000-e9300000 rwxp 00000000 00:00 0 
+e9300000-e9321000 rwxp 00000000 00:00 0 
+e9321000-e9400000 ---p 00000000 00:00 0 
+e9400000-e9403000 r-xp 00000000 fc:01 1586296                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libplc4.so
+e9403000-e9404000 rwxp 00002000 fc:01 1586296                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libplc4.so
+e9404000-e940b000 r-xp 00000000 08:03 403621                             /lib/i386-linux-gnu/librt-2.15.so
+e940b000-e940c000 r-xp 00006000 08:03 403621                             /lib/i386-linux-gnu/librt-2.15.so
+e940c000-e940d000 rwxp 00007000 08:03 403621                             /lib/i386-linux-gnu/librt-2.15.so
+e940d000-e9410000 r-xp 00000000 fc:01 1586288                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libjavaxpcomglue.so
+e9410000-e9411000 rwxp 00002000 fc:01 1586288                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libjavaxpcomglue.so
+e9411000-e9417000 r-xs 00000000 fc:01 1586871                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/com.ti.ccstudio.scripting.environment_3.1.0.jar
+e9417000-e9432000 r-xs 00000000 fc:01 1586872                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/com.ti.ccstudio.scripting.rtdx_1.0.0.jar
+e9432000-e9442000 r-xs 00000000 fc:01 1081764                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/shelf/java/tar.jar
+e9442000-e947f000 r-xs 00000000 fc:01 1080142                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/services/intern/gen/java/package.jar
+e947f000-e9482000 ---p 00000000 00:00 0 
+e9482000-e9500000 rwxp 00000000 00:00 0 
+e9500000-e9700000 r-xp 00000000 08:03 29498                              /usr/lib/locale/locale-archive
+e9700000-e976c000 rwxp 00000000 00:00 0 
+e976c000-e9800000 ---p 00000000 00:00 0 
+e9800000-e9821000 rwxp 00000000 00:00 0 
+e9821000-e9900000 ---p 00000000 00:00 0 
+e9900000-e9901000 r-xp 00000000 08:03 530850                             /usr/lib/i386-linux-gnu/libgthread-2.0.so.0.3200.3
+e9901000-e9902000 r-xp 00000000 08:03 530850                             /usr/lib/i386-linux-gnu/libgthread-2.0.so.0.3200.3
+e9902000-e9903000 rwxp 00001000 08:03 530850                             /usr/lib/i386-linux-gnu/libgthread-2.0.so.0.3200.3
+e9903000-e9922000 r-xs 00000000 fc:01 1080159                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/services/intern/xsr/java/package.jar
+e9922000-e9931000 r-xs 00000000 fc:01 1080336                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/services/global/java/package.jar
+e9931000-e9967000 r-xs 00000000 fc:01 1081762                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/shelf/java/antlr.jar
+e9967000-e997f000 r-xs 00000000 fc:01 1115884                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/config.jar
+e997f000-e9982000 ---p 00000000 00:00 0 
+e9982000-e9a00000 rwxp 00000000 00:00 0 
+e9a00000-e9a42000 rwxp 00000000 00:00 0 
+e9a42000-e9b00000 ---p 00000000 00:00 0 
+e9b00000-e9b02000 r-xp 00000000 fc:01 1586297                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libplds4.so
+e9b02000-e9b03000 rwxp 00001000 fc:01 1586297                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/libplds4.so
+e9b03000-e9b2e000 r-xs 00000000 fc:01 1078999                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/ext/sunpkcs11.jar
+e9b2e000-e9b31000 ---p 00000000 00:00 0 
+e9b31000-e9baf000 rwxp 00000000 00:00 0 
+e9baf000-e9bb0000 ---p 00000000 00:00 0 
+e9bb0000-e9c36000 rwxp 00000000 00:00 0 
+e9c36000-e9c51000 rwxp 00000000 00:00 0 
+e9c51000-e9c56000 rwxp 00000000 00:00 0 
+e9c56000-e9c6f000 rwxp 00000000 00:00 0 
+e9c6f000-e9c70000 rwxp 00000000 00:00 0 
+e9c70000-e9c71000 rwxp 00000000 00:00 0 
+e9c71000-e9c77000 rwxp 00000000 00:00 0 
+e9c77000-e9c8f000 rwxp 00000000 00:00 0 
+e9c8f000-e9c95000 rwxp 00000000 00:00 0 
+e9c95000-e9caf000 rwxp 00000000 00:00 0 
+e9caf000-e9d80000 rwxp 00000000 00:00 0 
+e9d80000-ea190000 rwxp 00000000 00:00 0 
+ea190000-eab21000 rwxp 00000000 00:00 0 
+eab21000-edcb0000 rwxp 00000000 00:00 0 
+edcb0000-ee7b0000 rwxp 00000000 00:00 0 
+ee7b0000-f1cb0000 rwxp 00000000 00:00 0 
+f1cb1000-f1cbd000 rwxp 00000000 00:00 0 
+f1cbd000-f1d31000 rwxp 00000000 00:00 0 
+f1d31000-f2011000 rwxp 00000000 00:00 0 
+f2011000-f3d31000 rwxp 00000000 00:00 0 
+f3d31000-f45ae000 r-xs 00000000 fc:01 1079092                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/charsets.jar
+f45ae000-f45c3000 r-xs 00000000 fc:01 1078997                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/jce.jar
+f45c3000-f4648000 r-xs 00000000 fc:01 1079560                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/jsse.jar
+f4648000-f46b2000 rwxp 00000000 00:00 0 
+f46b2000-f6d11000 r-xs 00000000 fc:01 1079003                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/rt.jar
+f6d11000-f6d20000 r-xp 00000000 fc:01 1079047                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libzip.so
+f6d20000-f6d22000 rwxp 0000e000 fc:01 1079047                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libzip.so
+f6d22000-f6d43000 r-xp 00000000 fc:01 1079049                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libjava.so
+f6d43000-f6d45000 rwxp 00020000 fc:01 1079049                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libjava.so
+f6d45000-f6d50000 r-xp 00000000 08:03 403618                             /lib/i386-linux-gnu/libnss_files-2.15.so
+f6d50000-f6d51000 r-xp 0000a000 08:03 403618                             /lib/i386-linux-gnu/libnss_files-2.15.so
+f6d51000-f6d52000 rwxp 0000b000 08:03 403618                             /lib/i386-linux-gnu/libnss_files-2.15.so
+f6d52000-f6d5c000 r-xp 00000000 08:03 403622                             /lib/i386-linux-gnu/libnss_nis-2.15.so
+f6d5c000-f6d5d000 r-xp 00009000 08:03 403622                             /lib/i386-linux-gnu/libnss_nis-2.15.so
+f6d5d000-f6d5e000 rwxp 0000a000 08:03 403622                             /lib/i386-linux-gnu/libnss_nis-2.15.so
+f6d5e000-f6d74000 r-xp 00000000 08:03 403634                             /lib/i386-linux-gnu/libnsl-2.15.so
+f6d74000-f6d75000 r-xp 00015000 08:03 403634                             /lib/i386-linux-gnu/libnsl-2.15.so
+f6d75000-f6d76000 rwxp 00016000 08:03 403634                             /lib/i386-linux-gnu/libnsl-2.15.so
+f6d76000-f6d78000 rwxp 00000000 00:00 0 
+f6d78000-f6d7a000 r-xs 00000000 fc:01 1586284                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/linux/javaxpcom.jar
+f6d7a000-f6d7b000 r-xs 00000000 fc:01 1586875                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/dss.jar
+f6d7b000-f6d80000 r-xs 00000000 fc:01 1586877                            /work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/DebugServer/packages/ti/dss/java/MozillaGlue.jar
+f6d80000-f6d85000 r-xs 00000000 fc:01 1080124                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/packages/xdc/services/intern/cmd/java/package.jar
+f6d85000-f6d86000 r-xp 002c5000 08:03 29498                              /usr/lib/locale/locale-archive
+f6d86000-f6d91000 r-xp 00000000 fc:01 1079038                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libverify.so
+f6d91000-f6d92000 rwxp 0000b000 fc:01 1079038                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/libverify.so
+f6d92000-f7105000 r-xp 00000000 fc:01 1079027                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/client/libjvm.so
+f7105000-f7124000 rwxp 00372000 fc:01 1079027                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/client/libjvm.so
+f7124000-f753b000 rwxp 00000000 00:00 0 
+f753b000-f76de000 r-xp 00000000 08:03 403614                             /lib/i386-linux-gnu/libc-2.15.so
+f76de000-f76e0000 r-xp 001a3000 08:03 403614                             /lib/i386-linux-gnu/libc-2.15.so
+f76e0000-f76e1000 rwxp 001a5000 08:03 403614                             /lib/i386-linux-gnu/libc-2.15.so
+f76e1000-f76e4000 rwxp 00000000 00:00 0 
+f76e4000-f76fb000 r-xp 00000000 08:03 403623                             /lib/i386-linux-gnu/libpthread-2.15.so
+f76fb000-f76fc000 r-xp 00016000 08:03 403623                             /lib/i386-linux-gnu/libpthread-2.15.so
+f76fc000-f76fd000 rwxp 00017000 08:03 403623                             /lib/i386-linux-gnu/libpthread-2.15.so
+f76fd000-f7700000 rwxp 00000000 00:00 0 
+f7700000-f7703000 r-xp 00000000 08:03 403629                             /lib/i386-linux-gnu/libdl-2.15.so
+f7703000-f7704000 r-xp 00002000 08:03 403629                             /lib/i386-linux-gnu/libdl-2.15.so
+f7704000-f7705000 rwxp 00003000 08:03 403629                             /lib/i386-linux-gnu/libdl-2.15.so
+f7705000-f772f000 r-xp 00000000 08:03 403625                             /lib/i386-linux-gnu/libm-2.15.so
+f772f000-f7730000 r-xp 00029000 08:03 403625                             /lib/i386-linux-gnu/libm-2.15.so
+f7730000-f7731000 rwxp 0002a000 08:03 403625                             /lib/i386-linux-gnu/libm-2.15.so
+f7731000-f7739000 rwxs 00000000 08:03 1572937                            /tmp/hsperfdata_tushar/3699 (deleted)
+f7739000-f7740000 r-xp 00000000 08:03 403616                             /lib/i386-linux-gnu/libnss_compat-2.15.so
+f7740000-f7741000 r-xp 00006000 08:03 403616                             /lib/i386-linux-gnu/libnss_compat-2.15.so
+f7741000-f7742000 rwxp 00007000 08:03 403616                             /lib/i386-linux-gnu/libnss_compat-2.15.so
+f7742000-f7748000 r-xp 00000000 fc:01 1079050                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/native_threads/libhpi.so
+f7748000-f7749000 rwxp 00006000 fc:01 1079050                            /work/mm/ti/install/ti-yimin-2013-06-26/xdctools_3_23_04_60/jre/lib/i386/native_threads/libhpi.so
+f7749000-f774a000 rwxp 00000000 00:00 0 
+f774a000-f774b000 ---p 00000000 00:00 0 
+f774b000-f774d000 rwxp 00000000 00:00 0 
+f774d000-f774e000 r-xp 00000000 00:00 0                                  [vdso]
+f774e000-f776e000 r-xp 00000000 08:03 403626                             /lib/i386-linux-gnu/ld-2.15.so
+f776e000-f776f000 r-xp 0001f000 08:03 403626                             /lib/i386-linux-gnu/ld-2.15.so
+f776f000-f7770000 rwxp 00020000 08:03 403626                             /lib/i386-linux-gnu/ld-2.15.so
+ffa1f000-ffa22000 ---p 00000000 00:00 0 
+ffa23000-ffc1f000 rwxp 00000000 00:00 0                                  [stack]
+
+VM Arguments:
+jvm_args: -Xverify:none -Dxpcom.bridge.executeOnDedicatedThread=yes -Dorg.eclipse.swt.browser.XULRunnerPath=/opt/ti/ccsv5/ccs_base/DebugServer/linux -DXPCOM.RUNTIME=/opt/ti/ccsv5/ccs_base/DebugServer/linux -Dxdc.root=/opt/ti/xdctools -Djava.library.path=/opt/ti/xdctools:/opt/ti/xdctools:/opt/ti/xdctools/../bin:. -Dconfig.scriptName= -Dconfig.rootDir=/opt/ti/xdctools -Dconfig.path=/opt/ti/xdctools:/opt/ti/xdctools/../lib:/opt/ti/xdctools/packages/xdc/shelf/java: -DXDCPATH=/opt/ti/ccsv5/ccs_base/DebugServer/packages/;/opt/ti/ccsv5/ccs_base/DebugServer/packages/ti/dss -Dconfig.gopts= vfprintf exit abort
+java_command: <unknown>
+Launcher Type: generic
+
+Environment Variables:
+PATH=/opt/ti/TI_CGT_C6000_7.4.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/tushar/carbon/android-sdk-linux/tools:/home/tushar/android-sdk-linux/platform-tools:/opt/ti/ccsv5/ccs_base/DebugServer/../scripting/:/opt/ti/ccsv5/ccs_base/DebugServer/../common/:/opt/ti/ccsv5/ccs_base/DebugServer/packages/:/opt/ti/ccsv5/ccs_base/DebugServer/packages/ti:/opt/ti/ccsv5/ccs_base/DebugServer/packages/ti/dss:/opt/ti/ccsv5/ccs_base/DebugServer/../common/uscif/:/opt/ti/ccsv5/ccs_base/DebugServer/../common/IDE/:/opt/ti/ccsv5/ccs_base/DebugServer/../common/bin/:/opt/ti/ccsv5/ccs_base/DebugServer/bin/linux/:/opt/ti/ccsv5/ccs_base/DebugServer/linux/components/:/opt/ti/omp_1_00_01_05_eng/packages/runscript/package/:/work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/.:/work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/../xmldb/aet_config:/work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/../xmldb/trace_config/setup:/work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/../xmldb/trace_config/devices:/work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/../../../common/bin:/work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/../../../common/uscif:/work/mm/ti/install/ti-yimin-2013-06-26/ccsv5/ccs_base/emulation/analysis/bin/../../tpi
+LD_LIBRARY_PATH=/opt/ti/xdctools:/opt/ti/xdctools/jre/lib/i386/client:/opt/ti/xdctools/jre/lib/i386
+SHELL=/bin/bash
+
+Signal Handlers:
+SIGSEGV: [libjvm.so+0x32c290], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
+SIGBUS: [libjvm.so+0x32c290], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
+SIGFPE: [libjvm.so+0x28f710], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
+SIGPIPE: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
+SIGILL: [libjvm.so+0x28f710], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
+SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
+SIGUSR2: [libjvm.so+0x291b60], sa_mask[0]=0x00000000, sa_flags=0x10000004
+SIGHUP: [libjvm.so+0x291590], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
+SIGINT: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
+SIGQUIT: [libjvm.so+0x291590], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
+SIGTERM: [libjvm.so+0x291590], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
+
+
+---------------  S Y S T E M  ---------------
+
+OS:wheezy/sid
+
+uname:Linux 3.2.0-48-generic #74-Ubuntu SMP Thu Jun 6 19:43:26 UTC 2013 x86_64
+libc:glibc 2.15 NPTL 2.15 
+rlimit: STACK 8192k, CORE 0k, NPROC 62686, NOFILE 4096, AS infinity
+load average:1.20 1.09 1.01
+
+CPU:total 4 (cores per cpu 8, threads per core 2) family 6 model 10 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, ht
+
+Memory: 4k page, physical 8042124k(363668k free), swap 1023k(1023k free)
+
+vm_info: Java HotSpot(TM) Client VM (1.5.0_22-b03) for linux-x86, built on Oct  9 2009 02:30:09 by java_re with gcc 3.2.1-7a (J2SE release)
+
+time: Sat Jul  6 11:29:17 2013
+elapsed time: 4142 seconds
+
diff --git a/blas/runscript/main - Copy.xs b/blas/runscript/main - Copy.xs
new file mode 100644 (file)
index 0000000..4bb2403
--- /dev/null
@@ -0,0 +1,311 @@
+/*
+ *  Copyright 2010 by Texas Instruments Incorporated.
+ *
+ */
+
+/*
+ *  ======== Main.xs ========
+ *  This is the entry point for the regression scripts; the code in this file
+ *  manages the entire regression test procedure. This file is the entry point
+ *  because the code sits outside any functions, so it gets executed 
+ *  automatically.
+ *
+ *  This file implements a command line interface for the scripts. See
+ *  regression\doc\UsersGuide.doc for a detailed description of the 
+ *  arguments.
+ *
+ *
+ */
+//var testFile;
+//var numCores = 0;
+
+/*
+ *  ======== getFile ========
+ *  java.io.File interperets the backslashes in paths as escape chars.
+ *  This helper function fixes that.
+ */
+function getFile(filename)
+{
+    return(java.io.File(java.io.File(filename).getCanonicalPath()));
+}
+
+
+/* 
+ * ======== run ========
+ * Entry point for the scripts.
+ */
+function run(args)
+{
+    var Main = xdc.useModule('runscript.Main');
+    var Run = xdc.useModule('runscript.Run');
+   
+    /* Parse any command line arguments */
+    parseArgs(args);
+
+    /* Setup the Run module based on 'settings' */
+    Run.tempLogDir = Main.settings.tempLogDir;
+    
+    var xmlApps = null;
+    if (Main.fileName.indexOf('xml') != -1) {
+        /* Read in the XML file */
+        try {
+            var batchXMLObj = xdc.loadXML(getFile(Main.fileName));
+        }
+        catch(e) {
+            print("Error reading XML File: \"" + Main.fileName + "\"");
+            print(e);
+            java.lang.System.exit(0);
+        }
+        
+        xmlApps = batchXMLObj.apps.app;
+    }
+    
+
+    script = new Packages.com.ti.ccstudio.scripting.environment.ScriptingEnvironment.instance();
+    /* Turn off all console output from DSS */
+    script.traceSetConsoleLevel(Packages.com.ti.ccstudio.scripting.environment.TraceLevel.OFF);
+
+    script.setScriptTimeout(Main.settings.timeout);
+
+    var setup = script.getServer("DebugServer.1");
+    
+    setup.setConfig(Main.ccxmlConfigFile);
+
+    var server = script.getServer("DebugServer.1");
+    Main.connectCpus(server);
+    
+    /* script.setScriptTimeout(Main.settings.timeout * 3);*/
+    script.setScriptTimeout(Main.settings.timeout * 1000);
+    
+    if (xmlApps == null) {
+         var cmdFile = getFile(Main.fileName);
+         var fis1 = new java.io.FileInputStream(cmdFile);
+         var file1 = new java.io.BufferedReader(new java.io.InputStreamReader(fis1));
+         var incmd;
+         while (true) {
+           incmd = file1.readLine();
+           /* Run.runTest(Main.fileName, Main.numCores); */
+           if (incmd == "") break; if (incmd == "\n") break;
+           if (incmd != null) {
+             print("START: " + incmd);
+             Run.runTest(incmd, Main.numCores); 
+             print("FINISH: " + incmd);
+           }
+         }
+    }
+    else {
+        for each (var app in xmlApps) {
+            /* Run regressions on the test list. */
+            var fileName = app.@exec.toString();
+            
+            print("======== " + fileName + " ========");    
+            if (app.@num.toString() == "") {
+                var numCores = Main.numCores;
+            }
+            else {
+                var numCores = Number(app.@num);
+            }
+            Run.runTest(fileName, numCores);
+        }
+    }
+    print("Closing EVM connection");
+    terminateSessions();
+
+    java.lang.System.exit(0);
+} 
+
+/*
+ *  ======== parseArgs ========
+ */
+function parseArgs(args)
+{
+    var Main = xdc.useModule('runscript.Main');
+    
+    /*  
+     * The first argument should always be the absolute path to settings.xs.
+     * settings.xs is a configuration file that specifies paths, such as the 
+     * default search path, the package root, and the results directory.
+     */
+    Main.settings = xdc.loadCapsule(args[0]);
+    
+    for (var i = 1; i < args.length; i++) {
+        if (args[i] == "-n") {
+            Main.numCores = Number(args[i + 1]);
+            i++;
+        }
+        else if (args[i] == "-v") {
+            Main.enableTracing = true;
+        }
+        else {
+            Main.fileName = args[i];
+        }
+    }
+    
+    if (Main.numCores === undefined) {
+        Main.numCores = Main.cpus.length;
+    }
+    
+    Main.logPrint("parseArgs: numCores = " + Main.numCores + ", fileName = " + Main.fileName);
+
+}
+
+/* 
+ * ======== addCpu ========
+ */
+function addCpu(buildName, ccsName, alwaysConnect)
+{
+    var cpu = new this.RegressionCpu();
+    
+    if (buildName == null) {
+        throw("Main.addCpu: buildName cannot be NULL");
+    }
+    if (ccsName == null) {
+        throw("Main.addCpu: ccsName cannot be NULL");
+    }    
+    
+    cpu.buildName = buildName;
+    cpu.ccsName = ccsName;
+    cpu.session = null;
+    cpu.alwaysConnect = alwaysConnect;
+    
+    this.cpus.$add(cpu);
+}
+
+/* 
+ * ======== setPlatformTarget ========
+ */
+function setPlatformTarget(platform, target)
+{
+    var map = new this.PlatformTargetMap();
+    
+    if (platform == null) {
+        throw("Main.setPlatformTarget: platform cannot be NULL");
+    }
+    if (target == null) {
+        throw("Main.setPlatformTarget: target cannot be NULL");
+    }    
+    
+    map.platform = platform;
+    map.target = target;
+    
+    this.platformTargetMap.$add(map);
+}
+
+/* 
+ * ======== getPlatformTarget ========
+ */
+function getPlatformTarget(platform)
+{
+    for each(var map in this.platformTargetMap) {
+        if (map.platform == platform) {
+            return (map.target);
+        }
+    }
+    
+    return (null);
+}
+
+/*
+ *  ======== containsCpu ========
+ */
+function containsCpu(buildCpuName) 
+{
+    for (var i in this.cpus) {
+        var myCpu = this.cpus[i];
+        if (myCpu.buildName == buildCpuName) {
+            return (true);
+        }
+    }
+    return (false);
+}
+
+/*
+ *  ======== getSession ========
+ */
+function getSession(coreNum) 
+{
+    if (this.cpus.length > coreNum) {
+        return (this.cpus[coreNum].session);
+    }
+    print("ERROR: Cpu " + ccsCpuName + " does not exist");
+    Main.terminateSessions();
+    java.lang.System.exit(0);
+}
+
+/*
+ *  ======== connectCpus ========
+ */
+function connectCpus(debugServer) 
+{
+    for (var i = 0; i < this.numCores; i++) {
+        try {
+            myCpu = this.cpus[i];
+            Main.logPrint("Trying to connect to " + myCpu.ccsName);
+            myCpu.session = debugServer.openSession(this.CCSPlatform, myCpu.ccsName);
+            myCpu.session.target.connect();
+        }
+        catch (e) {
+            print("ERROR: Couldn't open session on " + myCpu.ccsName);
+            print(e);
+            java.lang.System.exit(0);
+        }
+    }
+    
+    print("Connected to cores #0-" + (this.numCores - 1));
+}
+
+/*
+ *  ======== resetCpus ========
+ */
+function resetCpus() 
+{
+    /* Reset each cpu. */
+    for (var i = 0; i < this.numCores; i++) {
+        myCpu = this.cpus[i];
+        try {
+            myCpu.session.target.halt();
+            myCpu.session.target.reset();
+        }
+        catch (e) {
+            print("ERROR: Problem reseting " + myCpu.ccsName);
+            print(e);
+            // java.lang.System.exit(0);
+        }
+    }
+}
+
+/*
+ *  ======== terminateSessions ========
+ */
+function terminateSessions() 
+{
+    for (var i in this.cpus) {
+        try {
+            myCpu = this.cpus[this.cpus.length - i - 1];
+            myCpu.session.terminate();
+            print("Terminated session: " + myCpu.ccsName);
+        }
+        catch (e) {
+            print("ERROR: Problem terminating " + myCpu.ccsName);
+            print(e);
+            java.lang.System.exit(0);
+        }
+    }
+}
+
+/*
+ *  ======== logPrint ========
+ *  Print debugging messages...
+ */
+function logPrint(str)
+{
+    var Main = xdc.useModule('runscript.Main');
+    
+    if (Main.enableTracing) {
+        var curdate = new Date()
+        dstring = curdate.toGMTString()
+
+        print(dstring + ": " + str);
+    }
+}
diff --git a/blas/runscript/mmrun b/blas/runscript/mmrun
new file mode 100644 (file)
index 0000000..612aa2b
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+in="/tmp/evm-input.fifo"
+out="/tmp/evm-output.txt"
+
+if [ ! -f $out ] || ! grep Connected $out > /dev/null || grep "Closing EVM" $out