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.

Issues with C6748 LCD performance

Other Parts Discussed in Thread: TMS320C6748

I am using Code composer v3.3 with EVM C6748, It was working OK but. suddenly I am seeing lot of misbeaviour.

When I profile what used to take 3 or 4 micro seconds is taking more than 400 mili seconds. I am driving an LCD, so I see flicker. I thought CC is corrupted, I tried to reinstall.

After reinstalling, the IDE is not opening. It is the version which I got with the EVM.

I get an that appropriate registry key not found. I am stuck up since two days, I am not able to progress.

  • Visweswaraiah MS said:
    When I profile what used to take 3 or 4 micro seconds is taking more than 400 mili seconds. I am driving an LCD, so I see flicker. I thought CC is corrupted, I tried to reinstall.

    Is it the profile data that is showing the slow down in performance? Or is it CCS itself that seems to be sluggish?

    Visweswaraiah MS said:

    After reinstalling, the IDE is not opening. It is the version which I got with the EVM.

    I get an that appropriate registry key not found. I am stuck up since two days, I am not able to progress.

    Did you uninstall the old version first? You may want to uninstall again and then clean up your registry and leftover files before re-installing again:

     

    If you are uninstalling the only installation of CCS that exists on your machine or removing ALL installations of CCS, the following steps can be followed:

    1. Uninstall all installed CCS plug-ins/add-ons first (Scripting Utility, 3rd Party emulator drivers, etc..)
    This includes standalone BIOS and CGT
    2. Uninstall (all versions of) CCS
    3. Check/delete any leftover folder/files
    CCS installed files that were modified and custom files/folders created in the CCS installation directory will not be removed during uninstall
    4. Clean up (delete) all CCS registry entries left over:
    My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Texas Instruments
    My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\GODSP
    5. Delete the following folder:

     

  • I tried as suggested, Still the problem continues. I am just loosing time.

    So, I want to format the drive, install OS and then CCS.

    If it works OK after this, I will tell you.

    Regards.

    MS Visweswaraiah.

  • I formated the drive, installed the OS and then CCS 3.3.

    It is working and I am getting the display, but when I profile the execution is taking more time.

    Earlier with the same EVM I had measured time for clearing one frame buffer for 640 x 480 resolution and draw two lines and two circles as about 3 microseconds. Now i am measuring the same as 371 mili seconds.

    I am understanding what is wrong where?

    Which is correct?

    How do I know the DDR clock, I can approximately calculate the number of accesses to frame buffer and calculate the time required to clear frame buffer.

    Regards.

    M.S.Visweswaraiah.

  • As you seem to be ok with CCS now I am going to move this into a device forum.

     

  • When I use LCDC, will be processor through put get affected, I am trying to verify this.

    How I will know exactly the speed of DDR2 SDRAM on the C6748 EVM?

    Are there any test programs to check or demostarte the execution speed or through put of C6748?

    Regards.

    M.S.Visweswaraiah.

  • I tried to profile with CCS 3.3 and its compiler with EVM C6748.

    When I execute the following statements to check execution time using profile I got the following results;

    Frame_array [0] = 0x00;

    ---

    Frame_array [9] = 0x09;   10 statements, it took 64 clocks or 0.2 microsecs. Frame_array is in shared ram

    *((uint8_t *)(FRAME_BUF_START_ADD + 0)) =0X00;

    ---

    *((uint8_t *)(FRAME_BUF_START_ADD + 9)) =0X09; 10 statements, it took 734 clocks or 2.49 microsecs. Locations are in External mDDR.

    When I execute the following statments

    for(x=0; x< 307200; x++0

    *((uint8_t *)(FRAME_BUF_START_ADD + x)) =0X00;

    it is taking 79.09 milisecs.

    I am using C6748 multicore DSP, I expect the above for loop to complete execution in about 1 milisecs time.

    That means the compiler is not generating code for the multicore C6748, You do I set the options for the compiler so that the execution time will be about 1 milisecs.

    Regards.

    M.S.Visweswaraiah.

     

  • I tried to profile with CCS 3.3 and its compiler with EVM C6748.

    When I execute the following statements to check execution time using profile I got the following results;

    Frame_array [0] = 0x00;

    ---

    Frame_array [9] = 0x09;   10 statements, it took 64 clocks or 0.2 microsecs. Frame_array is in shared ram; liker file says shared ram, I do not know which shared ram?

    *((uint8_t *)(FRAME_BUF_START_ADD + 0)) =0X00;

    ---

    *((uint8_t *)(FRAME_BUF_START_ADD + 9)) =0X09; 10 statements, it took 734 clocks or 2.49 microsecs. Locations are in External mDDR.

    When I execute the following statments

    for(x=0; x< 307200; x++0)

    *((uint8_t *)(FRAME_BUF_START_ADD + x)) =0X00;

    it is taking 79.09 milisecs.

    I am using C6748 multicore DSP, I expect the above for loop to complete execution in about 1 milisecs time.

    That means the compiler is not generating code for the multicore C6748, How do I set the options for the compiler so that the execution time will be about 1 milisecs.

    Because if add another statement inside the for loop, it is taking more time, so first I have to set compiler options. How I can do it?

    Regards.

    M.S.Visweswaraiah.

  • With TMS320C6748 operating at 300MHz and with mDDR at 150mHz, DSP should be able to read or write data to 16 bit mDDR at (300MHz * 2) 600 Mbytes per second.

    When I define a frame buffer in mDDR for 640 x 480 pixel resolution it is 307200 bytes when it is 8 bits per pixel. So, when DSP writes 16 bits, it should be able to write zeros to clear frame buffer in 153600 clocks of 300MHz. So, it should take 153600 x 3.33 = 511488 n secs or 0.511 milisecs.

    When I compile the following statement

    for (x=0; x<307200; x++)

    *((uint8_t*)(0xC0000000 + x)) = 0x00;

    and profile, I expect it to complete the job in 0.511 milisecs. If it can do the clearing in 0.511 milisecs we can be sure we will be able to update the display page within 16 milisecs and we can use the DSP chip.

    I have tried different build options under CCS v 3.3, the best timing I got is 19 milisecs, and it is totally useless. With 8 functional units each capable of executing one instruction per clock, I should be able to clear the frame buffer with the above “for” statement within 0.511 milisecs.

    But when it takes 19 milisecs it is working like single execution unit processor operating at 16 MHz, not a 300 MHz DSP with 8 function units based VLIW architecture with DDR2 SDRAM.

    So, to get the execution speed what compile options I have to select?

    Regards.

    M.S.Visweswaraiah.