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.

Runnig without sysBios enverioment

Other Parts Discussed in Thread: SYSBIOS

HI,

I wrote an Ethernet application based on the Pa_simpleExample.

Everything runs OK,  and now I'm interested to remove all SysBios initialization, because I'm not interested to use SysBIos.

And I have the following problem:

When I remove this line from the .cfgl file:

var HeapMem  =   xdc.useModule('ti.sysbios.heaps.HeapMem'); 

, my application runs 3 times slowly.

The PA, Qmss or the Cppi uses heap memory in real time??

What exacts do this line??

I'll be glad to get information about this issue

Thanks,

Enrique


  • Hi Enrique,

    I see the following explanation in the SPRUEX3L (http://www.ti.com/lit/ug/spruex3l/spruex3l.pdf)

    6.7.2 Specifying the Default System Heap
    The BIOS module creates a default heap for use by SYS/BIOS. When Memory_alloc() is called at runtime with a NULL heap, this system heap will be used.

    I found some Memory_alloc() in simpleExample/paExample/osal.c .  Could you please check where buffers are located in memory?  It may impact.

    Best Regards,
    Atsushi

  • Atsushi,

    Thanks for your answer.

    The Memory_alloc() call functions are used only in the Initialization of Cppi.

    Anyway, I removed this call function, and I used a predefined internal memory instead the malloc function,

    then the slowly performance was not improved.

    Any idea, who can slows the performance, who can uses heap memory in real time???, may be PA or QMSS???

    Maybe the problem is not related with the Heap Memory and it is related with SysBios configuration??

    I'll be glad to get any help.

    Regards,

    Enrique

  • Enrique,

    I'm afraid that this is a generic suggestion, but time measurement by TSCH and TSCL (Time Stamp Counter High and Low) registers may help.  Once initialized, they shows how many cycles a DSP core consumes.  It is similar to a wall clock.  By these registers, you can isolate which part of the software especially consumes how many cycles, or you can profile the code.  It may provide some helpful information.

    Regarding the registers, you will see TSCH and TSCL registers in the CPU and Instruction Set Reference Guide (SPRUGH7) http://www.ti.com/lit/ug/sprugh7/sprugh7.pdf .

    Roughly speaking, the following pseudo code shows an example.

    #include <c6x.h>
    void main(void)
    {
        unsigned int before, after;
        int diff;

        TSCL = 0; // Activating TSCH and TSCL

        before = TSCL;
        // some work consuming clock cycles
        after = TSCL;
        diff = after - before;

        // ...
    }

    Best Regards,
    Atsushi