This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Convert CE universal_copy frames into monolithic buffer

Hello,

The executing time of the universal_copy process is ~150us for a single frame of 1024bytes (measured from hlos side). However the total time that includes 8100 frames of file_read->memcpy->file_write reaches ~1764ms as it shown:

[t=0x000015fa] [tid=0x4003d000] xdc.runtime.Main: [+1] App-> Application starte.
[t=0x0000edd7] [tid=0x4003d000] xdc.runtime.Main: [+1] Alg version:  1.00.00.00
[t=0x001bda55] [tid=0x4003d000] xdc.runtime.Main: [+1] 8100 frames processed    
[t=0x001bdac7] [tid=0x4003d000] xdc.runtime.Main: T2-T1: 1764                   
[t=0x00270657] [tid=0x4003d000] xdc.runtime.Main: [+1] app done.

Obviously it does not concern a real-time application and the question is:

It is possible to define a monolithic buffer to avoid multiple buffer transfers between ARM<->DSP?

Or there is an alternative way to speed up the execution time?

- dm816x
- EZSDK 5.04.00.11

Regards,
gaston

  • In the remote application I've increased the IFRAMESIZE and OFRAMESIZE to 1036800 bytes. For an input file of 8294400 bytes the DSP process (memcpy) reaches 8·36ms=288ms and the read/write file accesses ~500ms. Therefore the total execution time is about 800ms. It is close to a real time application but still not enough. I'd like to know how can I decrease this rate.

    Regards,
    gaston

  • Gaston,

    Some of the overhead may be due to cache maintenance.  If you want to find out how much time is being spent in your processing function on the DSP, you can run
    your app with the following trace:

        CE_DEBUG=1 CE_DSP0TRACE="ti.sdo.ce.VISA=5" ./app_remote.xv5T

    You will then see output like the following:

    [t=0x000a7539] [tid=0x4001e960] xdc.runtime.Main: [+1] App-> Processing frame 1...
    [DSP] [t=0x01e66701] [tid=0x87879fc8] ti.sdo.ce.VISA: [+5] VISA_enter(visa=0x87879700): algHandle = 0x87879738
    [DSP] [t=0x01e77068] [tid=0x87879fc8] ti.sdo.ce.VISA: [+5] VISA_exit(visa=0x87879700): algHandle = 0x87879738

    The time values that I have highlighted in red are the current timer tick count at the beginning of the calls to VISA_enter() and VISA_exit().  So you would subtract
    the first from the second to get an approximate value for your process() function in timer ticks.  You could then subtract the process() time to get the overhead, some
    of which would be cache maintenance.  Codec Engine has some configuration parameters that may help reduce this cache maintenance overhead.  One is

    Server.skelCachingPolicy

    described here:

    http://processors.wiki.ti.com/index.php/Codec_Engine_skelCachingPolicy

    This may help if you have large buffers.

    Another option, is to have the universal_copy skeleton not manage cache for some of your I/O buffers.  If you know, for example, that the DSP will use DMA
    to fill the output buffers, then you could have no cache management for those buffers.  This is described here:

    http://processors.wiki.ti.com/index.php/Codec_Engine_Overhead

    This describes managing cache buffers for a video decoder, but IUNIVERSAL also supports this.  If you look in ti.sdo.ce.universal.IUNIVERSAL.xdc, you
    see:

        config Bool manageInBufsCache[ 16 ] = [
            true, true, true, true, true, true, true, true,
            true, true, true, true, true, true, true, true,
        ];

    etc., with a description of how to use this.

    Best regards,

        Janet

  • Janet,

    janet said:
    The time values that I have highlighted in red are the current timer tick count at the beginning of the calls to VISA_enter() and VISA_exit().

    Okay, here's the obtained results after running the application with the suggested trace:

    IOFRAMESIZE [bytes] 1024
    DSP [MHz] 800
    ticks [hex] hex to dec ticks
    [exit-enter]
    time [us]
    enter VISA 01bc11e7 29102567
    exit VISA 01bd0120 29163808 61241 76.55
    enter VISA 01c46c9d 29650077 486269 607.84
    exit VISA 01c55b5e 29711198 61121 76.40
    enter VISA 01cb0681 30082689 371491 464.36
    exit VISA 01cbf0cc 30142668 59979 74.97
    enter VISA 01d15937 30497079 354411 443.01
    exit VISA 01d244ae 30557358 60279 75.35
    enter VISA 01d7a64f 30910031 352673 440.84
    exit VISA 01d89098 30970008 59977 74.97
    enter VISA 01de2921 31336737 366729 458.41
    exit VISA 01df13e2 31396834 60097 75.12

    I assume there is a direct relationship between the clock and CPU cycles so I use 1/CLK to convert ticks to seconds. Am I right with this assumption?
    In this case, could we be talking about an overhead of approximately 75/(75+450)·100=85%?

    janet said:

    Codec Engine has some configuration parameters that may help reduce this cache maintenance overhead.  One is

    Server.skelCachingPolicy

    In order to avoid cache management performed in skeletons I've added

    Server.skelCachingPolicy = Server.NONE;

    to my server.cfg file but I've not seen any improvement in the application's overhead.

    janet said:

    Another option, is to have the universal_copy skeleton not manage cache for some of your I/O buffers.  If you know, for example, that the DSP will use DMA
    to fill the output buffers, then you could have no cache management for those buffers.  This is described here:

    http://processors.wiki.ti.com/index.php/Codec_Engine_Overhead

    This describes managing cache buffers for a video decoder, but IUNIVERSAL also supports this.  If you look in ti.sdo.ce.universal.IUNIVERSAL.xdc, you
    see:

        config Bool manageInBufsCache[ 16 ] = [
            true, true, true, true, true, true, true, true,
            true, true, true, true, true, true, true, true,
        ];

    Yes, I've found this configuration in my server.cfg. I've changed the InBufs, InOutBufs and OutBufs array values to false but I see no improvements either. Is it necessary to use this option in conjunction with Server.skelCachingPolicy or are there two ways of manage cache buffers? If so, why?
    I've also realized that the codec algorithm (universal copy) is accessing to buffers directly so no DMA is used - and I have not intention to use it -. Is the configuration/enabling of DMA essential in order to use the second option you've suggested?

    Sorry, lot of questions :-)

    Regards,
    gaston

  • Hello Gaston,

    Your processing time (~76 us) is similar to what I got (~70 us), with 1024 byte buffers.  The other overhead you are seeing is including time to get DSP trace, if you are running with CE_DEBUG.  Without doing any file I/O, not running with CE_DEBUG, and using the LOCALBUFFERINVWB Server.skelCachingPolicy (which is the default), I was getting an average of about 630 us per 1024 byte frame.

    When increasing the buffer size to 0x8000, I got about 1900 us per buffer, so (8100 / 32) * 1900 us = 480 ms.  However, I got slightly worse performance when changing the Server.skelCachingPolicy to Server.WBINVALL.  I'm not sure where the boundary is when WBINVALL will give you better performance, but evidently, 0x8000 is too small. You could try using WBINVALL and compare it with the default, since you are using very large buffers.  I don't recommend NONE for the skelCachingPolicy, or you will end up with corrupt buffers.  When I tried setting it to NONE, I only got a slight improvement, anyway.

    One other thing you could check, is to make sure you are building the release profile for the remote app. In the package.bld script for your app, make sure that you have:

        Pkg.attrs.profile = "release";

    Otherwise, you will be building with a few debug libraries linked into your application.

    If you don't intend to use DMA, then you should not change the "manageInBufsCache", "manageOutBufsCache", etc. to false.  Since DMA writes do not go through the CPU, the cache does not need to be written back, and in that case you could set "manageOutBufsCache" to false.

    The difference between the Server.skelCachingPolicy and the manageIn/OutBufsCache, is that the Server.skelCachingPolicy will apply to all algorithms.  The manageIn/OutBufsCache only applies to a particular algorithm.

    Best regards,

        Janet

  • Janet,

    Thank you so much for your help. Going back to the original subject, I'd like to test the example with a monolithic buffer of 8Mb. For this reason I'm trying to understand the usage of cmem and configure it in order to use such a large buffer.

    Regards,
    gaston

  • Going further, I've changed the I/OFRAMESIZE to 8Mb in app.c and configure cmem this way:

    modprobe cmemk phys_start=0x94000000 phys_end=0x96000000 pools=20x4096,10x131072,2x8388608

    so after running the universal copy example I expect to obtain just 1 frame processed of 8Mb. However I get no results at the output file. Here's the debug information:

    [t=0x00001c23] [tid=0x40025000] ti.sdo.ce.Engine: [+6] Engine_init> CE debugging on (CE_DEBUG=1; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)
    [t=0x00001d2e] [tid=0x40025000] xdc.runtime.Main: main> ti.sdo.ce.examples.apps.rt3d
    [t=0x000022f2] [tid=0x40025000] xdc.runtime.Main: [+1] App-> Application started, procId DSP engineName remote_copy_DSP input-file ./in.dat output-file ./out.dat.
    [DSP] [t=0x003e9076] [tid=0x0] xdc.runtime.Main: Welcome to Server's main()
    [DSP] [t=0x02657bea] [tid=0x8b053bc0] ti.sdo.ce.VISA: [+5] VISA_create> local codec created (name='rt3d', handle=0x8b058460)
    EXT_HEAP: base: 0x8b053620 size: 0x20000 used: 0x7eb0, max free block: 0x18150
    INT_HEAP: base: 0x10800000 size: 0xc000 used: 0x0, max free block: 0xc000
    EXTALG_HEAP: base: 0x8c800000 size: 0x800000 used: 0x8, max free block: 0x7ffff8
    [DSP] [t=0x02793579] [tid=0x8b058cf0] ti.sdo.ce.VISA: [+5] VISA_enter(visa=0x8b058428): algHandle = 0x8b058460
    [DSP] [t=0x0279efbe] [tid=0x8b058cf0] ti.sdo.ce.VISA: [+5] VISA_exit(visa=0x8b058428): algHandle = 0x8b058460
    [t=0x000377f9] [tid=0x40025000] xdc.runtime.Main: [+1] Alg version:  1.00.00.00
    [t=0x000eba5f] [tid=0x40025000] xdc.runtime.Main: [+1] 0 frames processed
    [DSP] [t=0x2648d72d] [tid=0x8b053bc0] ti.sdo.ce.VISA: [+5] VISA_delete> deleting codec (localQueue=0x0, remoteQueue=0xffff)
    [DSP] [t=0x26497f3c] [tid=0x8b053bc0] ti.sdo.ce.VISA: [+5] VISA_delete> deleting codec 0x8b058460
    [t=0x000ec066] [tid=0x400a9490] ti.sdo.ce.ipc.Processor: [+2] Processor_delete_d> defaultHeapH: 0xd8d10, proc->heapH: 0xd8d10
    [t=0x000f3c0a] [tid=0x40025000] xdc.runtime.Main: [+1] app done.

    Do you know why I obtain '0' frames processed? VISA_enter/exit appear before than Alg version:  1.00.00.00. That is, before reading a complete frame.

    Regards,
    gaston

  • Hi Gaston,

    I'm glad to hear you were able to use CMEM to allocate the 8MB buffer.  Does the in.dat file already exist, and what is the size?  Maybe it is too small, so the first call to fread() on the Host fails, so no buffer is sent to the DSP.   You could also try running with CE_DEBUG=2 to get more trace information.  I don't see any errors from the trace you have.

    Best regards,

        Janet

  • Hi Janet,

    I know the usage of such a large buffers is not usual but I'm working in a proof of concept / experimental phase. Regarding your questions, the in.dat already exists and its size is slightly bigger than the defined buffers. Even if I defined buffers to read/write 4Mb the first frame is always missed as it shown.

    I've run the application as you suggested CE_DEBUG=2 in order to get more information but I wonder where could be the mistake. Do you see any errors?

    [t=0x00000246] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_init> Enter
    [t=0x000002c7] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4] Global_init> This program was built with the following packages:
    [t=0x000002ef] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package gnu.targets (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/gnu/targets/) [1, 0, 1]
    [t=0x0000032a] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package gnu.targets.arm (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/gnu/targets/arm/) [1, 0, 0, 0]
    [t=0x00000368] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package gnu.targets.arm.rtsv5T (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/gnu/targets/arm/rtsv5T/) [1, 0, 0, 0]
    [t=0x000003a9] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.utils.loggers (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/osal_1_22_01_09/packages/ti/sdo/utils/loggers/) [1, 0, 0]
    [t=0x000003e8] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.xdcruntime.linux (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/osal_1_22_01_09/packages/ti/sdo/xdcruntime/linux/) [1, 0, 0]
    [t=0x00000428] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.global (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/global/) [1, 0, 0]
    [t=0x00000466] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.syslink (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/syslink_2_10_03_20/packages/ti/syslink/) [1, 0, 0, 0]
    [t=0x000004a1] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.linuxutils.cmem (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/linuxutils_3_22_00_02/packages/ti/sdo/linuxutils/cmem/) [2, 2, 0]
    [t=0x000004e2] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.xdais.dm (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdais_7_22_00_03/packages/ti/xdais/dm/) [1, 0, 7]
    [t=0x0000051c] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.utils.xdm (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/utils/xdm/) [1, 0, 2]
    [t=0x0000055c] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.xdais (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdais_7_22_00_03/packages/ti/xdais/) [1, 2.0, 1]
    [t=0x00000595] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.node (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/node/) [1, 0, 0]
    [t=0x000005d2] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.fc.global (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/framework_components_3_22_01_07/packages/ti/sdo/fc/global/) [1, 0, 0]
    [t=0x00000612] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.catalog.arm.cortexa8 (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/ti/catalog/arm/cortexa8/) [1, 0, 0]
    [t=0x00000653] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.catalog.peripherals.hdvicp2 (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/ti/catalog/peripherals/hdvicp2/) []
    [t=0x00000696] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.catalog (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/ti/catalog/) [1, 0, 0]
    [t=0x000006d0] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.catalog.c6000 (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/ti/catalog/c6000/) [1, 0, 0, 0]
    [t=0x0000070f] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.catalog.arm.peripherals.timers (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/ti/catalog/arm/peripherals/timers/) []
    [t=0x00000753] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.catalog.arm.cortexm3 (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/ti/catalog/arm/cortexm3/) [1, 0, 0]
    [t=0x000008d0] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.platforms.evmTI816X (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/xdctools_3_23_01_43/packages/ti/platforms/evmTI816X/) [1, 0, 0]
    [t=0x00000915] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.osal (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/osal/) [2, 0, 2]
    [t=0x00000953] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.ipc.dsplink (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/ipc/dsplink/) [2, 0, 1]
    [t=0x00000994] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.osal.linux (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/osal/linux/) [2, 0, 1]
    [t=0x000009d5] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.ipc (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/ipc/) [2, 0, 1]
    [t=0x00000a11] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.alg (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/alg/) [1, 0, 1]
    [t=0x00000a4e] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/) [1, 0, 6]
    [t=0x00000a89] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ti.sdo.ce.universal (/home/dm816x/ti-ezsdk_dm816x-evm_5_04_00_11/component-sources/codec_engine_3_22_01_06/packages/ti/sdo/ce/universal/) [1, 0, 0]
    [t=0x00000ac9] [tid=0x40011000] ti.sdo.ce.osal.Global: [+4]     package ds.rt3d (/home/dm816x/Desktop/base/apps/ds/rt3d/) [1, 0, 0]
    [t=0x00000b78] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_atexit> Enter (fxn=0x2e3ec)
    [t=0x00000bd2] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_atexit> Enter (fxn=0x33e60)
    [t=0x00000c2b] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+2] Processor_init> SysLink_setup()...
    [t=0x00001784] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+2] Processor_init> ... SysLink_setup() done
    [t=0x000018cb] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_atexit> Enter (fxn=0x2efac)
    [t=0x0000191d] [tid=0x40011000] ti.sdo.ce.alg: [+E] ALG_init> Enter
    [t=0x00001939] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[0] = 0x0
    [t=0x00001950] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[1] = 0x0
    [t=0x00001968] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[2] = 0x0
    [t=0x0000197f] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[3] = 0x0
    [t=0x00001996] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[4] = 0x0
    [t=0x000019ad] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[5] = 0x0
    [t=0x000019c5] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[6] = 0x0
    [t=0x000019dc] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[7] = 0x0
    [t=0x000019f3] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[8] = 0x0
    [t=0x00001a0a] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[9] = 0x0
    [t=0x00001a22] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[10] = 0x0
    [t=0x00001a39] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[11] = 0x0
    [t=0x00001a51] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[12] = 0x0
    [t=0x00001a69] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[13] = 0x0
    [t=0x00001a80] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[14] = 0x0
    [t=0x00001a98] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[15] = 0x0
    [t=0x00001ab0] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[16] = 0x0
    [t=0x00001ac7] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[17] = 0x0
    [t=0x00001adf] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[18] = 0x0
    [t=0x00001af6] [tid=0x40011000] ti.sdo.ce.alg: [+E] _ALG_sems[19] = 0x0
    [t=0x00001b0e] [tid=0x40011000] ti.sdo.ce.alg: [+X] ALG_init> Exit
    [t=0x00001b25] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_atexit> Enter (fxn=0x274b8)
    [t=0x00001b85] [tid=0x40011000] ti.sdo.ce.Engine: [+6] Engine_init> CE debugging on (CE_DEBUG=2; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)
    [t=0x00001bb5] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_atexit> Enter (fxn=0x1ea90)
    [t=0x00001bf2] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine addEngineToList(0xa9430, 1)
    [t=0x00001c18] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+E] Memory_alloc> Enter(0x34)
    [t=0x00001c3e] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+X] Memory_alloc> return (0xd7638)
    [t=0x00001c5f] [tid=0x40011000] ti.sdo.ce.Engine: [+1] Engine addEngineToList> Adding desc: name = local, remoteName = (null)
    [t=0x00001c8b] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+E] Memory_alloc> Enter(0x30)
    [t=0x00001ca9] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+X] Memory_alloc> return (0xd7670)
    [t=0x00001ce2] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_atexit> Enter (fxn=0x2a924)
    [t=0x00001d15] [tid=0x40011000] ti.sdo.ce.Server: [+E] Server_init()
    [t=0x00001d2f] [tid=0x40011000] ti.sdo.ce.Server: [+E] Server_init> Global_useLinkArbiter = 0
    [t=0x00001d4d] [tid=0x40011000] ti.sdo.ce.osal.Global: [+E] Global_atexit> Enter (fxn=0x259d4)
    [t=0x00001d84] [tid=0x40011000] xdc.runtime.Main: main> ti.sdo.ce.examples.apps.rt3d
    [t=0x00001dab] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_addStubFxns('UNIVERSAL_STUBS', 0xa94ec)
    [t=0x00001e03] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] daemon> thread created.
    [t=0x00001e24] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+E] getCmd_d> Enter (proc=0x40100dc4)
    [t=0x00001e5d] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_addStubFxns> return (0)
    [t=0x00001e8e] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_add(0xbeaddb74)
    [t=0x00001eac] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine addEngineToList(0xbeaddb74, 0)
    [t=0x00001ed0] [tid=0x40011000] ti.sdo.ce.Engine: [+1] Engine addEngineToList> Adding desc: name = remote_copy_DSP, remoteName = rt3d_DSP.xe674
    [t=0x00001eff] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_add> return (0)
    [t=0x00002436] [tid=0x40011000] xdc.runtime.Main: [+1] App-> Application started, procId DSP engineName remote_copy_DSP input-file ./in.dat output-file ./out.dat.
    [t=0x00002618] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+4] Memory_contigAlloc> CMEM_alloc(0x400000) = 0x40ae6000.
    [t=0x00002647] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+4] Memory_contigAlloc> CMEM_getPhys(0x40ae6000) = 0x956ac000.
    [t=0x000027f7] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+4] Memory_contigAlloc> CMEM_alloc(0x400000) = 0x41326000.
    [t=0x00002822] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+4] Memory_contigAlloc> CMEM_getPhys(0x41326000) = 0x94eac000.
    [t=0x0000285c] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+4] Memory_contigAlloc> CMEM_alloc(0x80) = 0x400b6000.
    [t=0x00002885] [tid=0x40011000] ti.sdo.ce.osal.Memory: [+4] Memory_contigAlloc> CMEM_getPhys(0x400b6000) = 0x95fff000.
    [t=0x00002ed1] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_open> Enter('remote_copy_DSP', 0xbeaddb24, 0xbeaddaac)
    [t=0x00002f0a] [tid=0x40011000] ti.sdo.ce.Engine: [+1] Engine_open> desc->memMap [0x0], desc->useExtLoader [0]
    [t=0x00002f35] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit> Enter(engine=0xd7a70, ec=0xbeaddaac)
    [t=0x00002f56] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit> engine->desc = 0xd76e8
    [t=0x00002f73] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit> engine->desc->algTab = 0x0
    [t=0x00002f90] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit> engine has server!
    [t=0x00002fab] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit> engine->procId = DSP
    [t=0x00002fca] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit> engine->coreId = 0
    [t=0x00002fe7] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rserverOpen('rt3d_DSP.xe674'), count = 0
    [t=0x00003006] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rserverOpen >, memMap = 0x0, useExtLoader = 0
    [t=0x0000302e] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+E] Processor_create> Enter(imageName='rt3d_DSP.xe674', memMap='(null)', attrs=0xbeadda98)
    [t=0x00003348] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+E] doCmd> Enter (cmdId=1, proc=0xd7ab8)
    [t=0x000033ac] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+X] getCmd_d> Exit (result=1)
    [t=0x000033dd] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+E] Processor_create_d> Enter(proc=0xd7ab8)
    [t=0x000033fe] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Retrieving CPU ID for 'DSP'...
    [t=0x00003425] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Opening DSP ProcMgr for cpuId 0...
    [t=0x000034f3] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Attaching to DSP...
    [t=0x0000387b] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Loading rt3d_DSP.xe674 on DSP (0 args)...
    [t=0x00006ca0] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> calling Ipc_control(LOADCALLBACK)...
    [t=0x0000728a] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Ipc_control(LOADCALLBACK) status: 0
    [t=0x000072bd] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Starting DSP ...
    [t=0x000108f8] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Ipc_control(STARTCALLBACK) status: 159195136
    [t=0x0001093c] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> calling HeapBufMP_create(): nblocks 64, blocksize 0x1000
    [t=0x00010bb3] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> MessageQ_registerHeap(heapH: 0xd8d10, heapId: 0)
    [t=0x00010bf4] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_create_d> CMEM block #0 found, doing ProcMgr_map(0x94000000, 0x2000000)...
    [t=0x00010c42] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> return (1)
    [t=0x00010c70] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+E] getCmd_d> Enter (proc=0x40100dc4)
    [t=0x00010ca3] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+X] doCmd> Exit (result=1)
    [t=0x00010cc1] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+X] Processor_create> return (0xd7ab8)
    [t=0x00010ce2] [tid=0x40011000] ti.sdo.ce.Engine: [+X] rserverOpen('rt3d_DSP.xe674'): 0xd7670 done.
    [t=0x00010e3d] [tid=0x40011000] ti.sdo.ce.Engine: [+E] checkServer(0xd7a70)
    [t=0x00010f12] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit> RMS initialized(0xd7a70); CE_DEBUG on, setting DSP trace mask to ti.sdo.ce.%+EX1234567;ti.sdo.fc.%+EX12345678;ti.sdo.ce.rms=67;ti.sdo.fc.dman3-2;ti.sdo.fc.dskt2-2;time=2
    [t=0x00010f5d] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_setTrace> Enter(engine=0xd7a70, mask='ti.sdo.ce.%+EX1234567;ti.sdo.fc.%+EX12345678;ti.sdo.ce.rms=67;ti.sdo.fc.dman3-2;ti.sdo.fc.dskt2-2;time=2')
    [t=0x00010fe9] [tid=0x40011000] ti.sdo.ce.Engine: [+1] Engine_setTrace> Requesting DSP set trace ...
    [t=0x00011099] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_setTrace> return(0)
    [t=0x000110ba] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rmsInit(0xd7a70), setting DSP trace mask to ti.sdo.ce.VISA=5
    [t=0x000110de] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_setTrace> Enter(engine=0xd7a70, mask='ti.sdo.ce.VISA=5')
    [t=0x00011136] [tid=0x40011000] ti.sdo.ce.Engine: [+1] Engine_setTrace> Requesting DSP set trace ...
    [t=0x000111b9] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_setTrace> return(0)
    [DSP] [t=0x003ea49a] [tid=0x0] xdc.runtime.Main: Welcome to Server's main()
    [t=0x0001129b] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_fwriteTrace> returning count [76]
    [t=0x000112c0] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_initFromServer(0xd7a70)
    [t=0x000112dd] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_getNumServerAlgs(0xd7a70 0xbeadda08)
    [t=0x00011361] [tid=0x40011000] ti.sdo.ce.Engine: [+2] Engine_getNumServerAlgs> number of server algs = 1
    [t=0x00011386] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_getNumServerAlgs> Returning 0
    [t=0x000113a4] [tid=0x40011000] ti.sdo.ce.Engine: [+2] Engine_initFromServer> Number of remote algs statically configured in engine: 0
    [t=0x000113cd] [tid=0x40011000] ti.sdo.ce.Engine: [+2] Engine_initFromServer> Allocating descriptor array for [1] server algs
    [t=0x000113f8] [tid=0x40011000] ti.sdo.ce.Engine: [+2] Engine_initFromServer> Initializing descriptor array for [1] server algs
    [t=0x00011440] [tid=0x40011000] ti.sdo.ce.Engine: [+2] Engine_initFromServer> Sending RMS_GETALG command for alg [0]
    [t=0x000114ec] [tid=0x40011000] ti.sdo.ce.Engine: [+1] Engine_initFromServer engine->server = 0xd7670

    [t=0x00011510] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_initFromServer> Returning 0
    [t=0x0001152e] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_open> return(0xd7a70)
    [t=0x00011568] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_create> Enter (engine=0xd7a70, name='rt3d', params=0x0 (size=0x0))
    [t=0x0001159f] [tid=0x40011000] ti.sdo.ce.VISA: [+E] VISA_create(0xd7a70, 'rt3d', 0x0, 0x648, 'ti.sdo.ce.universal.IUNIVERSAL')
    [t=0x000115d0] [tid=0x40011000] ti.sdo.ce.VISA: [+E] VISA_create2(0xd7a70, 'rt3d', 0x0, 0x0, 0x648, 'ti.sdo.ce.universal.IUNIVERSAL')
    [t=0x00011636] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_createNode(0xd7a70, 'rt3d', 648, 0x0, 0x0, 0xbeadda08)
    [t=0x00011661] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine> allocNode Enter(engine=0xd7a70, impId='rt3d')
    [t=0x00011686] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine> allocNode(). Calling Comm_create(NULL, NULL)
    [t=0x00012173] [tid=0x40011000] ti.sdo.ce.Engine: [+4] Engine_createNode> created node(stdIn=0x1, stdOut=0xd8e78, algName='rt3d', rmsNode=0x8b058318, algHandle=0x8b058428)
    [t=0x000121b0] [tid=0x40011000] ti.sdo.ce.Engine: [+4]   Comm_getId(node->stdOut)=0x30001
    [DSP] [t=+041,742 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_alloc> Enter(size=0x18, params=0x0)
    [DSP] [t=+000,053 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_alloc> return (0x8b058318)
    [DSP] [t=+000,040 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_alloc> Enter(size=0x7, params=0x0)
    [DSP] [t=+000,042 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_alloc> return (0x8b058330)
    [DSP] [t=+000,088 us] [tid=0x8b053bc0] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_create> Enter (engine=0x0, name='rt3d', params=0x0 (size=0x0))
    [DSP] [t=+000,064 us] [tid=0x8b053bc0] ti.sdo.ce.Engine: [+E] Engine_open> Enter('local', 0x0, 0x8b0578bc)
    [DSP] [t=+000,044 us] [tid=0x8b053bc0] ti.sdo.ce.Engine: [+1] Engine_open> desc->memMap [0x0], desc->useExtLoader [0]
    [DSP] [t=+000,045 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_alloc> Enter(size=0x40, params=0x0)
    [DSP] [t=+000,043 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_alloc> return (0x8b0583e8)
    [DSP] [t=+000,040 us] [tid=0x8b053bc0] ti.sdo.ce.Engine: [+E] rmsInit> Enter(engine=0x8b0583e8, ec=0x8b0578bc)
    [DSP] [t=+000,046 us] [tid=0x8b053bc0] ti.sdo.ce.Engine: [+E] rmsInit> engine->desc = 0x8b057d38
    [DSP] [t=+000,037 us] [tid=0x8b053bc0] ti.sdo.ce.Engine: [+E] rmsInit> engine->desc->algTab = 0x8b08d9a0
    [DSP] [t=+000,044 us] [tid=0x8b053bc0] ti.sdo.ce.Engine: [+X] Engine_open> return(0x8b0583e8)
    [DSP] [t=+000,044 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_alloc> Enter(size=0x34, params=0x0)
    [DSP] [t=+000,043 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_alloc> return (0x8b058428)
    [DSP] [t=+000,040 us] [tid=0x8b053bc0] ti.sdo.ce.alg.Algorithm: [+E] Algorithm_create> Enter(fxns=0x8b08dcb0, idma3Fxns=0x0, iresFxns=0x0, params=0x0, attrs=0x8b0579d0)
    [DSP] [t=+000,066 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_alloc> Enter(size=0x10, params=0x0)
    [DSP] [t=+000,043 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_alloc> return (0x8b058460)
    [DSP] [t=+000,052 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_init> Enter
    [DSP] [t=+000,142 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_init> Exit
    [DSP] [t=+000,030 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] DSKT2_createAlg> Enter (scratchId=2, fxns=0x8b08dcb0, parentAlg=0x0, params=0x0)
    [DSP] [t=+000,055 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_init> Enter
    [DSP] [t=+000,030 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_init> Exit
    [DSP] [t=+000,030 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] DSKT2_createAlg3> Enter (scratchId=2, fxns=0x8b08dcb0, parentAlg=0x0, params=0x0
    [DSP] [t=+000,056 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+2] DSKT2_createAlg3> DSKT2_AlgAttrs extHeap 0x0 and singleHeap 0
    [DSP] [t=+000,048 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+2] DSKT2_createAlg3> AlgNumAlloc not implemented
    [DSP] [t=+000,042 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+2] DSKT2_createAlg3> memTab allocated at 0x8b058c78 size=0x50
    [DSP] [t=+000,047 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+4] DSKT2_createAlg3> Num memory recs requested 1
    [DSP] [t=+000,042 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+4] DSKT2_createAlg3> Requested memTab[0]: size=0x4, align=0x0, space=IALG_EXTERNAL, attrs=IALG_PERSIST
    [DSP] [t=+000,063 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_assignInstanceMemory> Enter (scratchId=2, numRecs=1, extHeap=0x8b08dbf8)
    [DSP] [t=+000,057 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_usesInternalScratch> Enter (numRecs=1)
    [DSP] [t=+000,041 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_usesInternalScratch> Exit (returnVal=0)
    [DSP] [t=+000,044 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_allocateInDesignatedSpace> Enter (index=0, ialgSpace=IALG_EXTERNAL, extHeap=0x8b08dbf8)
    [DSP] [t=+000,063 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_allocateInDesignatedSpace> Exit (returnVal=1)
    [DSP] [t=+000,043 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+2] _DSKT2_assignInstanceMemory> memTab[0] allocated in persistent memory in Memory space:IALG_EXTERNAL. Addr=0x8c800000
    [DSP] [t=+000,068 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_usesInternalScratch> Enter (numRecs=1)
    [DSP] [t=+000,040 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_usesInternalScratch> Exit (returnVal=0)
    [DSP] [t=+000,041 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_assignInstanceMemory> Exit (returnVal=1)
    [DSP] [t=+000,042 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+4] DSKT2_createAlg3> Allocated memTab[0]: base=0x8c800000, size=0x4, align=0x0, space=IALG_EXTERNAL, attrs=IALG_PERSIST
    [DSP] [t=+000,070 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_enqueueMemTab> Enter (heap=0x8b08dbd0, memTabSize=80, numRecs=1, extHeapId=0x8b08dbf8)
    [DSP] [t=+000,065 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_enqueueMemTab> Exit (status=TRUE)
    [DSP] [t=+000,039 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+4] DSKT2_createAlg3> Algorithm init successful.
    [DSP] [t=+000,040 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] DSKT2_createAlg3> Exit (algHandle=0x8c800000)
    [DSP] [t=+000,042 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] DSKT2_createAlg> Exit (algHandle=0x8c800000)
    [DSP] [t=+000,042 us] [tid=0x8b053bc0] ti.sdo.ce.alg.Algorithm: [+X] Algorithm_create> return (0x8b058460)
    [DSP] [t=+000,042 us] [tid=0x8b053bc0] ti.sdo.ce.VISA: [+5] VISA_create> local codec created (name='rt3d', handle=0x8b058460)
    [DSP] [t=+000,049 us] [tid=0x8b053bc0] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_create> return (0x8b058428)
    [t=0x00012beb] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_fwriteTrace> returning count [5451]
    [t=0x00012c11] [tid=0x40011000] ti.sdo.ce.Engine: [+2] Engine_createNode> Returning 0xd8e58
    [t=0x00012c37] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_getProcId(0xd7a70)
    [t=0x00012c59] [tid=0x40011000] ti.sdo.ce.VISA: [+5] VISA_create> remote codec created (name='rt3d', localQueueID=0xd8e78, remoteQueueID=0x0001)
    [t=0x00012c86] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_create> return (0xd8e10)
    [t=0x00012ca9] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_getServer(0xd7a70)
    [t=0x00012cc4] [tid=0x40011000] ti.sdo.ce.Server: [+E] Server_getNumMemSegs('0xd7a70', 0xd6f20)
    [t=0x00012cec] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_getNumMemSegs(0xd7a70 0xd6f20)
    [t=0x00012d73] [tid=0x40011000] ti.sdo.ce.Server: [+E] Server_getMemStat('0xd7a70', 0, 0xd6eec)
    [t=0x00012d97] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_getMemStat(0xd7a70, 0, 0xd6eec)
    EXT_HEAP: base: 0x8b053620 size: 0x20000 used: 0x7eb0, max free block: 0x18150
    [t=0x00012e3d] [tid=0x40011000] ti.sdo.ce.Server: [+E] Server_getMemStat('0xd7a70', 1, 0xd6eec)
    [t=0x00012e62] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_getMemStat(0xd7a70, 1, 0xd6eec)
    INT_HEAP: base: 0x10800000 size: 0xc000 used: 0x0, max free block: 0xc000
    [t=0x00012efd] [tid=0x40011000] ti.sdo.ce.Server: [+E] Server_getMemStat('0xd7a70', 2, 0xd6eec)
    [t=0x00012f20] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_getMemStat(0xd7a70, 2, 0xd6eec)
    EXTALG_HEAP: base: 0x8c800000 size: 0x800000 used: 0x8, max free block: 0x7ffff8
    [t=0x00012fa9] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_control> Enter (handle=0xd8e10, id=6, dynParams=0xbeaddab0 (size=0x4), status=0xbeadd9e4 (size=0xcc)
    [t=0x00012ff5] [tid=0x40011000] ti.sdo.ce.VISA: [+4] VISA_getMaxMsgSize(0xd8e10): returning 0x1000
    [t=0x00013016] [tid=0x40011000] ti.sdo.ce.VISA: [+5] VISA_allocMsg> Allocating message for messageId=0x00010004
    [t=0x00013042] [tid=0x40011000] ti.sdo.ce.VISA: [+E5] VISA_call(visa=0xd8e10, msg=0x42cef180): messageId=0x00010004, command=0x1
    [DSP] [t=+004,280 us] [tid=0x8b058cf0] ti.sdo.ce.node: [+5] NODE> 0x8b058338 call(algHandle=0x8b058428, msg=0x8d001180); messageId=0x00010004
    [DSP] [t=+000,067 us] [tid=0x8b058cf0] ti.sdo.ce.osal.Memory: [+E] Memory_cacheInv> Enter(addr=0x95fff000, sizeInBytes=128)
    [DSP] [t=+000,050 us] [tid=0x8b058cf0] ti.sdo.ce.osal.Memory: [+X] Memory_cacheInv> return
    [DSP] [t=+000,035 us] [tid=0x8b058cf0] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_control> Enter (handle=0x8b058428, id=6, dynParams=0x8d0011b4 (size=0x4), status=0x8d0011b8 (size=0xcc)
    [DSP] [t=+000,076 us] [tid=0x8b058cf0] ti.sdo.ce.VISA: [+5] VISA_enter(visa=0x8b058428): algHandle = 0x8b058460
    [DSP] [t=+000,044 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+E] Algorithm_activate> Enter(alg=0x8b058460)
    [DSP] [t=+000,043 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+E] DSKT2_activateAlg> Enter (scratchId=2, alg=0x8c800000)
    [DSP] [t=+000,049 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+2] DSKT2_activateAlg> Last active algorithm 0x0, current algorithm to be activated 0x8c800000
    [DSP] [t=+000,059 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+X] DSKT2_activateAlg> Exit
    [DSP] [t=+000,032 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+X] Algorithm_activate> Exit
    [DSP] [t=+000,037 us] [tid=0x8b058cf0] ti.sdo.ce.VISA: [+5] VISA_exit(visa=0x8b058428): algHandle = 0x8b058460
    [DSP] [t=+000,043 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+E] Algorithm_deactivate> Enter(alg=0x8b058460)
    [DSP] [t=+000,044 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+E] DSKT2_deactivateAlg> Enter (scratchId=2, algHandle=0x8c800000)
    [DSP] [t=+000,048 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+4] DSKT2_deactivateAlg> Lazy deactivate of algorithm 0x8c800000
    [DSP] [t=+000,048 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+X] DSKT2_deactivateAlg> Exit
    [DSP] [t=+000,033 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+X] Algorithm_deactivate> Exit
    [DSP] [t=+000,037 us] [tid=0x8b058cf0] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_control> Exit (handle=0x8b058428, retVal=0x0)
    [DSP] [t=+000,050 us] [tid=0x8b058cf0] ti.sdo.ce.osal.Memory: [+E] Memory_cacheWb> Enter(addr=0x95fff000, sizeInBytes=128)
    [DSP] [t=+000,048 us] [tid=0x8b058cf0] ti.sdo.ce.osal.Memory: [+X] Memory_cacheWb> return
    [DSP] [t=+000,035 us] [tid=0x8b058cf0] ti.sdo.ce.node: [+5] NODE> returned from call(algHandle=0x8b058428, msg=0x8d001180); messageId=0x00010004
    [t=0x000138e8] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_fwriteTrace> returning count [2358]
    [t=0x0001390d] [tid=0x40011000] ti.sdo.ce.VISA: [+X5] VISA_call Completed: messageId=0x00010004, command=0x1, return(status=0)
    [t=0x0001393e] [tid=0x40011000] ti.sdo.ce.VISA: [+5] VISA_freeMsg(0xd8e10, 0x42cef180): Freeing message with messageId=0x00010004
    [t=0x00013968] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_control> Exit (handle=0xd8e10, retVal=0x0)
    [t=0x0001398f] [tid=0x40011000] xdc.runtime.Main: [+1] Alg version:  1.00.00.00
    [t=0x0002ec89] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_process> Enter (handle=0xd8e10, inBufs=0xbeadd920, outBufs=0xbeadd85c, inOutBufs=0x0, inArgs=0xbeaddabc, outArgs=0xbeaddab4)
    [t=0x0002ecdd] [tid=0x40011000] ti.sdo.ce.VISA: [+4] VISA_getMaxMsgSize(0xd8e10): returning 0x1000
    [t=0x0002ed01] [tid=0x40011000] ti.sdo.ce.VISA: [+5] VISA_allocMsg> Allocating message for messageId=0x00010005
    [t=0x0002ed68] [tid=0x40011000] ti.sdo.ce.VISA: [+E5] VISA_call(visa=0xd8e10, msg=0x42cef180): messageId=0x00010005, command=0x0
    [DSP] [t=+114,990 us] [tid=0x8b058cf0] ti.sdo.ce.node: [+5] NODE> 0x8b058338 call(algHandle=0x8b058428, msg=0x8d001180); messageId=0x00010005
    [DSP] [t=+000,064 us] [tid=0x8b058cf0] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_process> Enter (handle=0x8b058428, inBufs=0x8b05b1c8, outBufs=0x8b05b290, inOutBufs=0x0, inArgs=0x8d0013fc, outArgs=0x8d001400)
    [DSP] [t=+000,085 us] [tid=0x8b058cf0] ti.sdo.ce.VISA: [+5] VISA_enter(visa=0x8b058428): algHandle = 0x8b058460
    [DSP] [t=+000,044 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+E] Algorithm_activate> Enter(alg=0x8b058460)
    [DSP] [t=+000,042 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+E] DSKT2_activateAlg> Enter (scratchId=2, alg=0x8c800000)
    [DSP] [t=+000,047 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+2] DSKT2_activateAlg> Last active algorithm 0x8c800000, current algorithm to be activated 0x8c800000
    [DSP] [t=+000,061 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+2] DSKT2_activateAlg> Activation of algorithm 0x8c800000 not required, already active
    [DSP] [t=+000,055 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+X] DSKT2_activateAlg> Exit
    [DSP] [t=+000,032 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+X] Algorithm_activate> Exit
    [DSP] [t=+143,380 us] [tid=0x8b058cf0] ti.sdo.ce.VISA: [+5] VISA_exit(visa=0x8b058428): algHandle = 0x8b058460
    [DSP] [t=+000,044 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+E] Algorithm_deactivate> Enter(alg=0x8b058460)
    [DSP] [t=+000,043 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+E] DSKT2_deactivateAlg> Enter (scratchId=2, algHandle=0x8c800000)
    [DSP] [t=+000,047 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+4] DSKT2_deactivateAlg> Lazy deactivate of algorithm 0x8c800000
    [DSP] [t=+000,047 us] [tid=0x8b058cf0] ti.sdo.fc.dskt2: [+X] DSKT2_deactivateAlg> Exit
    [DSP] [t=+000,032 us] [tid=0x8b058cf0] ti.sdo.ce.alg.Algorithm: [+X] Algorithm_deactivate> Exit
    [DSP] [t=+000,036 us] [tid=0x8b058cf0] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_process> Exit (handle=0x8b058428, retVal=0x0)
    [DSP] [t=+000,051 us] [tid=0x8b058cf0] ti.sdo.ce.node: [+5] NODE> returned from call(algHandle=0x8b058428, msg=0x8d001180); messageId=0x00010005
    [t=0x00051cb3] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_fwriteTrace> returning count [2105]
    [t=0x00051cdf] [tid=0x40011000] ti.sdo.ce.VISA: [+X5] VISA_call Completed: messageId=0x00010005, command=0x0, return(status=0)
    [t=0x00051d0a] [tid=0x40011000] ti.sdo.ce.VISA: [+5] VISA_freeMsg(0xd8e10, 0x42cef180): Freeing message with messageId=0x00010005
    [t=0x00051d34] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_process> Exit (handle=0xd8e10, retVal=0x0)
    [t=0x0008dace] [tid=0x40011000] xdc.runtime.Main: [+1] 1 frames processed
    [t=0x0008dafd] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_delete> Enter (handle=0xd8e10)
    [t=0x0008db24] [tid=0x40011000] ti.sdo.ce.VISA: [+E] VISA_delete(0xd8e10)
    [t=0x0008db3e] [tid=0x40011000] ti.sdo.ce.VISA: [+5] VISA_delete> deleting codec (localQueue=0xd8e78, remoteQueue=0x1)
    [t=0x0008dc29] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_deleteNode(0xd8e58)
    [t=0x0008e302] [tid=0x40011000] ti.sdo.ce.Engine: Engine_deleteNode(0xd8e58): algName = rt3d, algHandle = 0x8b058428, stack size = 16384, stack used = 1852(12%)
    [t=0x0008e39a] [tid=0x40011000] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_delete> return
    [t=0x0008e3bc] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine_close(0xd7a70)
    [DSP] [t=+250,855 us] [tid=0x8b058cf0] ti.sdo.ce.node: [+X] NODE_EXECFXN(0x8b058338): exiting per request ...
    [DSP] [t=+000,339 us] [tid=0x8b053bc0] ti.sdo.ce.node: [+E] NODE_delete(0x8b058338)
    [DSP] [t=+000,057 us] [tid=0x8b053bc0] ti.sdo.ce.universal.UNIVERSAL: [+E] UNIVERSAL_delete> Enter (handle=0x8b058428)
    [DSP] [t=+000,047 us] [tid=0x8b053bc0] ti.sdo.ce.VISA: [+5] VISA_delete> deleting codec (localQueue=0x0, remoteQueue=0xffff)
    [DSP] [t=+000,048 us] [tid=0x8b053bc0] ti.sdo.ce.VISA: [+5] VISA_delete> deleting codec 0x8b058460
    [DSP] [t=+000,038 us] [tid=0x8b053bc0] ti.sdo.ce.alg.Algorithm: [+E] Algorithm_delete> Enter(alg=0x8b058460)
    [DSP] [t=+000,043 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] DSKT2_freeAlg> Enter (scratchMutexId=2, alg=0x8c800000)
    [DSP] [t=+000,051 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+2] DSKT2_freeAlg> Dequeue alg information
    [DSP] [t=+000,039 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_dequeueMemTab> Enter (heap=0x8b08dbd0, alg=0x8c800000)
    [DSP] [t=+000,052 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_dequeueMemTab> Exit (memTab=0x8b058c78)
    [DSP] [t=+000,043 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+2] DSKT2_freeAlg> Dequeued alg information, memTab 0x8b058c78 memTabSize 80, numRecs 1, extHeap 0x8b08dbf8
    [DSP] [t=+000,065 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+2] DSKT2_freeAlg> Free instance memory
    [DSP] [t=+000,037 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_freeInstanceMemory> Enter (scratchMutexId=2, numRecs=1, extHeap=0x8b08dbf8)
    [DSP] [t=+000,056 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_freeAllocatedMemory> Enter (scratchMutexId=2, number=1, extHeap=0x8b08dbf8)
    [DSP] [t=+000,056 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_isSharedScratchAddr> Enter (scratchMutexId=2, addr=0x8c800000)
    [DSP] [t=+000,054 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_isSharedScratch> Exit (status=0 )
    [DSP] [t=+000,041 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_freeAllocatedMemory> Exit (returnVal=1)
    [DSP] [t=+000,041 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_usesInternalScratch> Enter (numRecs=1)
    [DSP] [t=+000,040 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_usesInternalScratch> Exit (returnVal=0)
    [DSP] [t=+000,041 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_freeInstanceMemory> Exit (returnVal=1)
    [DSP] [t=+000,043 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+E] _DSKT2_exit> Enter
    [DSP] [t=+000,087 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] _DSKT2_exit> Exit
    [DSP] [t=+000,030 us] [tid=0x8b053bc0] ti.sdo.fc.dskt2: [+X] DSKT2_freeAlg> Exit
    [DSP] [t=+000,031 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_free> Enter(addr=0x8b058460, size=0x10, params=0x0)
    [DSP] [t=+000,050 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_free> Exit
    [DSP] [t=+000,033 us] [tid=0x8b053bc0] ti.sdo.ce.alg.Algorithm: [+X] Algorithm_delete> Exit
    [DSP] [t=+000,035 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_free> Enter(addr=0x8b058428, size=0x34, params=0x0)
    [DSP] [t=+000,050 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_free> Exit
    [DSP] [t=+000,033 us] [tid=0x8b053bc0] ti.sdo.ce.universal.UNIVERSAL: [+X] UNIVERSAL_delete> return
    [DSP] [t=+000,054 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_free> Enter(addr=0x8b058330, size=0x7, params=0x0)
    [DSP] [t=+000,050 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_free> Exit
    [DSP] [t=+000,032 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+E] Memory_free> Enter(addr=0x8b058318, size=0x18, params=0x0)
    [DSP] [t=+000,050 us] [tid=0x8b053bc0] ti.sdo.ce.osal.Memory: [+X] Memory_free> Exit
    [t=0x0008eaa9] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine_fwriteTrace> returning count [3582]
    [t=0x0008ead2] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rserverDetach(0xd7670), count = 1
    [t=0x0008eb4c] [tid=0x40011000] ti.sdo.ce.Engine: [+X] rserverDetach(0xd7670) done.
    [t=0x0008eba4] [tid=0x40011000] ti.sdo.ce.Engine: [+E] rserverClose(0xd7670), count = 1
    [t=0x0008ebc4] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+E] Processor_delete> Enter(proc=0xd7ab8)
    [t=0x0008ebe6] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+E] doCmd> Enter (cmdId=2, proc=0xd7ab8)
    [t=0x0008ec1b] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+X] getCmd_d> Exit (result=2)
    [t=0x0008ec3a] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+E] Processor_delete_d> Enter (proc=0xd7ab8)
    [t=0x0008ec63] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_delete_d> CMEM block #0 found, doing ProcMgr_unmap(0x94000000, 0x2000000)...
    [t=0x0008ecbb] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_delete_d> defaultHeapH: 0xd8d10, proc->heapH: 0xd8d10
    [t=0x0008ece5] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_delete_d> defaultHeapRefCount = 1
    [t=0x0008ed1a] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_delete_d> unregisterAndDeleteHeap, heapId = 0
    [t=0x0008ed3f] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_delete_d> MessageQ_unregisterHeap(heapId: 0)
    [t=0x0008ed69] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_delete_d> calling HeapBufMP_delete(heapH: 0xd8d10)
    [t=0x0008edd0] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_delete_d> calling Ipc_control(STOPCALLBACK)...
    [t=0x00093193] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_delete_d> Ipc_control(STOPCALLBACK) status: 0x97d2000 [159195136]
    [t=0x000931cd] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_delete_d> Stopping DSP...
    [t=0x00093201] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+2] Processor_delete_d> Unloading DSP...
    [t=0x0009328a] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_delete_d> calling ProcMgr_detach()...
    [t=0x00093592] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+1] Processor_delete_d> calling ProcMgr_close()...
    [t=0x000935ca] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+X] Processor_delete_d> return
    [t=0x000935f6] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+E] getCmd_d> Enter (proc=0x40100dc4)
    [t=0x00093625] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+X] doCmd> Exit (result=1)
    [t=0x00093643] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+1] Processor_delete(0xd7ab8) freeing object ...
    [t=0x00093666] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+X] Processor_delete> return
    [t=0x00093683] [tid=0x40011000] ti.sdo.ce.Engine: [+X] rserverClose(0xd7670) done.
    [t=0x000936a1] [tid=0x40011000] ti.sdo.ce.Engine: [+E] Engine freeServerTab() enter(0xd7a70)
    [t=0x000936bf] [tid=0x40011000] ti.sdo.ce.Engine: [+2] Engine freeServerTab() engine->numRemoteAlgs = 1
    [t=0x000936e2] [tid=0x40011000] ti.sdo.ce.Engine: [+X] Engine freeServerTab() exit
    [t=0x000ebae7] [tid=0x40011000] xdc.runtime.Main: [+1] app done.
    [t=0x000ebb26] [tid=0x40011000] ti.sdo.ce.Engine: Engine cleanup()> Num engines = 2, removing engine local
    [t=0x000ebb4c] [tid=0x40011000] ti.sdo.ce.Engine: Engine cleanup()> Num engines = 1, removing engine remote_copy_DSP
    [t=0x000ebbb0] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+E] doCmd> Enter (cmdId=3, proc=0x0)
    [t=0x000ebbf3] [tid=0x40101490] ti.sdo.ce.ipc.Processor: [+X] getCmd_d> Exit (result=3)
    [t=0x000ebc80] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+X] doCmd> Exit (result=1)
    [t=0x000ebcb4] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+2] Processor cleanup()> SysLink_destroy()...
    [t=0x000ec2fa] [tid=0x40011000] ti.sdo.ce.ipc.Processor: [+2] Processor cleanup()> ... SysLink_destroy() complete

    Regards,
    gaston

  • Gaston,

    I don't see any errors in the trace log.  Is this the original universal_copy example?   I tried this with an 8MB value for NSAMPLES in app.c, and it worked ok.  I had to remove the older in.dat file, though, so that a new one large enough would be created, otherwise I had the problem you had earlier of 0 frames processed.  Could you try doing an 'ls -l' on your in.dat file to see the size in bytes?

    Best regards,

        Janet

  • Janet,

    I believe I start to understand what's going on - but not quite  -. The fread() reads a complete frame of IFRAMESIZE so the file size should be multiple of this chunk in order to process all frames. Otherwise fread() will discard the last frame. If you have generated a file of exactly 8Mb it will work fine. In my case the in.dat is slightly bigger than 8Mb (8388664 bytes = 8Mb + 56 bytes) so this could be the cause of the problem. For this I expect fread() reads a complete frame of 8Mb and discards the remaining bytes (56 bytes). However no frames are processed.

    Regards,
    gaston

  • Gaston,

    Yes, that is correct.  If your file does not contain a multiple of 8MB of data, the remainder at the end will not be processed.

    Best regards,

        Janet

  • Janet,

    I was wrong with the statement "slightly bigger". Actually the file size is "smaller" so this is the reason that no frames were processed. Apologies for the misunderstanding.
    Now, by defining a right size of IOFRAMESIZE buffers I'm able to process a complete frame of 'almost' 8Mb

    Regards,
    gaston