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.

raw log display incorrect time (o time) for all executions

Other Parts Discussed in Thread: CONTROLSUITE

My project for led toggle using HWI and SWI is successfully running and the LED is being toggled on the board. However the raw logs display 0 time in the time column and as a result nothing is appearing on the CPU load etc. Kindly suggest the reason for this prob. Im using EZDSP kit with a delfino c28335.

  • Which version of BIOS, XDCTools, and CCS are you using?

    Alan

  • I am using ccs 5, sys/bios and I am attaching some screen shots to clearly explain the problem I am facing. Also, the code that I have used is the one provided by ti_rtos workshops available online (example 6) so hopefully there isn't any error in that. the code involves a timer generated HWI which then runs an ISR that posts a SWI that performs the purpose of LED toggle.

    here is a screen shot of the raw logs window and the issue is highlighted in red.

    here are the screen shots for HWI , SWI and BIOS options settings.

  • ccs version 5.5.0.00077

    XDC tools 3.25.5.94

    SYS/BIOS 6.37.01.24

  • Hi Sadia,

    I would like to reproduce this problem, so I need some more information.  Could you post the link where you downloaded this example?  The one I found did not build (looked like some files were missing).  Did you make any changes to the app.cfg file?  If so, could you please post that?  Also, what is the version of UIA that you are using?

    Thanks,

        Janet

  • I am attaching your required details but before that I’d also like to bring it to your notice that we were able to successfully build, debug and run the in which the job of LED toggle was being performed by an idle loop only with no HWIs or SWIs involved. This problem with the raw logs did not occur and the time was incrementing as shown in the row encircled red in the screen shot below. The row encircled green is showing CCS is not recognizing idle loop being run (since the event class is unknown).

     We have also run the system analyzer examples and were able to view raw logs, CPU load, Task load etc successfully, indicating that there is no issue with the installation or UIA versions (or so I think).

    Plz help.

    Yes there were some build problems. The code that we finally used is given in the attached text files below:

    3034.lab4.txt:

    8738.lab5.txt

    Lab 4: led toggle using idle loop

    Lab 6: led toggle using hwi and swi

    command files for these labs are:

    3808.cmd file for lab 4.txt

    4024.cmd file for lab 5.txt

    Also, we have linked the required header files obtained from TI control suite for C28335. I am attaching those files as well. These are two folders (DSP28335 headers, DSP28335 common), link them using file systems option, then include them using the include option from properties.

    I am attaching the zipped folders here:

    5342.DSP2833x_common.zip

    2335.DSP2833x_headers.zip

     

    Exclude the following files from build and run the program:

    • 28332_RAM_lnk.cmd

    • 28334_RAM_lnk.cmd

    • 28335_RAM_lnk.cmd

    • F28332.cmd

    • F28334.cmd

    • F28335.cmd

     

    • DSP2833x_Headers_nonBIOS.cmd

       

    Also there’s a pre-defined symbol u’l need to mention ‘xdc_strict’. (Properties_build_advanced options_predefined symbols)

     

     

     

     

     

     


  • Hi Sadia,

    Thanks for the attached files.  However, I don't see any configuration files here.  I would need those to build the tests.

    Best regards,

        Janet

  • attached are the configuration files for both the labs.

    4606.lab4_cfg.zip7888.lab6_cfg.zip

  • I have attached complete files of both the projects. Plz help.

    1643.lab4.zip

    3022.lab6.zip

  • Hi Sadia,

    Thanks for the lab projects.  I'm able to reproduce the problem and am looking into it.

    Best regards,

        Janet

  • Hi Sadia,

    It looks like some code in DSP2833x_common/source/DSP2833x_CpuTimers.c is interferring with the BIOS timers.  I changed the #ifndef BIOS to #if 0 and rebuilt the program, and the test worked.  It looks like you are not building with BIOS defined.

    Best regards,

        Janet

  • Thank you very much!! Ive tried the changes u recommended n yes it worked!!!

    but can u plz tel the procedure of defining BIOS.. or can u elaborate more on ur statement "It looks like you are not building with BIOS defined."

  • Hi Sadia,

    Under the C2000 compiler options of the project settings, I added a -DBIOS to the compiler flags.  You can right-click on the project in the CCS project explorer, and select "Properties" from the pop-up menu.  Then go to "C2000 Compiler" under the "Build" folder.

    Best regards,

        Janet

  • Dear Janet,

    From your replies I have made the following interpretations. Do check me plz if I am wrong.

    Since I have not built my project with BIOS defined, a file DSP2833x_common/source/DSP2833x_CpuTimers.c is interfering with the BIOS timers, as a result of which incorrect (or 0) time is being displayed in the raw logs.

    • To correct this u suggested the option of changing #ifndef BIOS to #if 0.
    • Also, since  I have not built my project with BIOS defined, I need to correct this and for that u suggested to add a -DBIOS to the set additional flags in the compiler option.

    This means any of the above two options may be used as the remedy for the issue of incorrect display of time in the raw logs option.

    However, only the first option worked, and the raw logs continued to display zero time even after -DBIOS was added to the set additional flags option.

     

    There is another query id like to include here.

    I am very much familiar with the hwi, swi task etc and the structure followed by TI-RTOS for developing a system software. There is also a significant amount of documentation and guidance available to understand the said features. However, when one gets stuck up into in-depth technical matters like the one mentioned above, is there any documentation that can help me sort out these issues myself.

    Thank you very much for continually solving my queries. Waiting for your response on the mentioned issues. Thank you once again.

  • Hi Sadia,

    The correct way to build the project would be to define the pre-processor symbol, BIOS, in the project settings.  Changing the #ifndef BIOS to #if 0 was just my quick way of seeing if that part of the code was causing the problem.  You should also use the -DBIOS compiler flag in case there happened to be other source files with #ifndef BIOS blocks (although, I didn't find any).

    I'm not sure how one would know that this lab needed to be built with -DBIOS, unless it is somewhere in the documentation for the lab.  There wasn't any documentation in the .zip files you posted, so I don't know what instructions you have for building the lab.  I was only able to find the problem by looking at the differences in the source code of the two labs you posted.

    I will try to contact the author of the lab and see if he can add to this post.

    Best regards,

        Janet

  • Janet asked me to chime in because I was the author of those labs. What is most likely happening is that BIOS wants to use Timer1 for Clock and Timer2 for Timestamp. The behavior you are describing occurs when Timer2 (the Timestamp Provider clock) gets whacked by Control Suite - in particular - when the file F2806x_CpuTimers.c (or your equivalent for your device) is used and InitCpuTimers() is called. In that code, Timer0-2 are "set up" by ControlSuite and end up stomping on BIOS' Clock Timer (Timer 1) as well as Timestamp (Timer 2) - the latter causing (most likely) the behavior you are seeing.

    This is why I had to edit my own local copy of the ControlSuite files to avoid this conflict. If you import the project from the workshop (Lab 6 solution), you will see a EWareReadme.txt file inside the EWare_F28069_BIOS folder that reads as follows. I attempted to explain what I did to avoid these conflicts. If you look inside the CpuTimers.c file that I edited, you will see the use of the "BIOS" #define which keeps that file from initializing Timers 1 and 2 to avoid this exact problem. But, who reads Readme files any more?  ;-) Just kidding. I do the same thing.

    So here is the content of the readme file - hopefully this helps solve the problem you are having - because I ran into the same thing when developing the labs for the workshop. And no, my labs run fine with these edits - no worries there. But I would bet 5:1 this is the source of your problem:

    ***********

    TI-RTOS workshop EWareReadme.txt for C28x Users of BIOS
    Author: Eric Wilbur


    Where did EWare come from?

    EWare is what the workshop author called his subset of header files needed to create
    the labs. EWare is "Extracted" Ware - the author's play on the Wares out there. The original
    files came from the standard controlSUITE install at these locations:

    C:\TI\controlSUITE\device_support\f2806x\v136\F2806x_common\source
    C:\TI\controlSUITE\device_support\f2806x\v136\F2806x_headers\source

    All C28x programmers will end up using a subset of header file code depending on what their
    application needs. This implementation is no different.

    The files contained in the EWare folder are the only files necessary to perform the labs
    in this workshop. However, when BIOS is added to the current header file code, there are
    conflicts in the interrupts and timers areas. In all BIOS labs, the author excludes parts
    of these files with the symbol "BIOS" defined at the top of these files. If BIOS is present in the
    program, this symbol is activated and therefore the author used this symbol for exclusions of
    code or files that conflict with BIOS.

    For non-BIOS programs, all files in EWare are used.

    For BIOS programs, the following files are excluded. These
    files have code that conflicts with BIOS' implementation and are therefore excluded:
    F2806x_PieCtrl.c
    F2806x_PieVect.c
    F2806x_DefaultIsr.c

    For BIOS programs, the following FILE has code exclusions using the symbol "BIOS".
    The use of Timer 1 and Timer 2 conflict with BIOS. Timer 0 is left alone:
    F2806x_CpuTimers.c

    ********

    Let us know if this helps...