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.

CCS5.5 GUI does not interact in real time with the graph

Hi,

I use CCS5.5, in windows 8.1 64bit environment. My card is the old classic DSK6713.

Using the simulator or the emulator i have the following problem.

I try a very simple example  i apply an FIR filter on a  signal.

I use the gui composer to set the value of filter's gain.

When my program is running on the debugger (resume is clicked) the output result (the filtered signal) is not affected by changes of the gain value. The value that i have set from the gui is shown in the expression viewer and in memory browser BUT the graph of the output or the GUI graph of the output are not refreshed with the new values. They will show the new values, if i pause the debugger.

I could post my code if that help you.

Thank you in advance for your help

Kind regards,

Giorgos V.

  • Hi Giorgos,

    Is there an issue with the GUI Graph plug-in or other plug-ins too?

    Regards,
    Gautam
  • Hi Gautam,

    The same is issue is shown on the GUI graph and the view graph from the "Tools" menu.

    I don't use other plugins

    BR,

    Giorgos

  • My Code

    #include "low_fir.cof " // FIR filter coefficients
    #include "signal.cof " //The signal

        int out_buffer[S];
        int h[N];
        short gain = 5;

        void main()                                                       
        {
            short i, j;
            int yn;
            int dly[N];

    while(1){
            for (j = 0; j < S; j++) {
                dly[0] = input[j];  //load next sample from signal file
                yn = 0;
                for (i = 0; i < N; i++)
                    yn = (yn + (h[i] * dly[i])) ;
                for (i = N - 1; i > 0; i--)  
                    dly[i] = dly[i - 1];     

            out_buffer[j]=(yn >> 15 )* gain;
            }
        }
    }

    Except from these i used the CSL library for the DSK6713 and the file from Chassaings examples C6713dsk.cmd, rts6701.lib.

    In the GUI except from the gain controler and the Graph, I used and an analog meter to check the current value of gain (that works ok and shows the real value of the gain ).

    To sum up

    the gain value that is changed with "dial" gui controller is altered in the memory only when the program is paused.

    when the debugger is running:

    i checked the expression menu , I received for the gain variable the following:

    "gain    unknown    Error: Could not read 0x000035B4: Execution state prevented access    "

    From the memory browser i receive the following:

    .bss, __bss, bss, gain
    ????????    ????????    ????????

    when the debugger is suspended:

    Expression menu:

    gain    short    3    0x000035B4   

    Memory browser:

    .bss, __bss, bss, gain
    05100003    051AC02B    00000000   // 03 is the current value of gain, that is set from the gui "dialer"

    So I think that the gain value cannot be changed while the debbuger is running...

    How can I control the gain value while the debugger is on?

     

    Thank you in advance for your help!

    Kind regards,

    Giorgos

     

     

     

  • Giorgos Vasilas said:
    when the debugger is running:

    i checked the expression menu , I received for the gain variable the following:

    "gain    unknown    Error: Could not read 0x000035B4: Execution state prevented access    "

    To be able to access memory while the CPU is running requires use of Real Time Mode. Real Time Mode is only support on some processor cores. The TMS320C6713 uses a C67x CPU. According to http://processors.wiki.ti.com/index.php/Real-Time_Mode and http://software-dl.ti.com/ccs/esd/training/modules/realtime_debug/CCSv5-RealtimeDebug.pptx Real Time Mode is not supported on a C67x CPU (but is supported on some other TMS320C6000 CPUs). I think this is why CCS is reporting the "Execution state prevented access" error when you attempt to access memory while the CPU is running.

  • Giorgos Vasilas said:
    How can I control the gain value while the debugger is on?

    One option is under CCS Project Properties -> Debug -> Auto Run and Launch Options -> Realtime Options enable "Halt the target before any debugger access (will impact servicing of interrupts)".

    As noted in the CCS help:

    Halt the target before any debugger access:


    When the target is running and debugger requires access to the target (e.g. user clicks on refresh button of a view while the target is running), the target will halt for a very brief moment to retrieve the requested data before it continues running again. During this time, time-critical interrupts will be ignored. This option is disabled by default.

    I am not sure how long the target is halted for when the debugger requires access to the target.

  • One option is under CCS Project Properties -> Debug -> Auto Run and Launch Options -> Realtime Options enable "Halt the target before any debugger access (will impact servicing of interrupts)".

    Τhat worked in both simulation and emulation ! Thank you very much!!!!

    How could I check the time that the target is halted ?

     

  • Giorgos Vasilas said:
    How could I check the time that the target is halted ?

    I haven't tried it myself, but the thread https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/403156 suggests GUI Composer logging can be used to estimate how long the target is halted for.

    I was also wondering if was possible to create a program for the target which enables a timer interrupt at a high rate, which is used to used to increment a count. By seeing how many timer interrupts occur when "Halt the target before any debugger access" is enabled would allow an estimate for what percentage of time the target is halted for.