• Resolved

CCS/TMS320C6670: Problems testing EDMA on C6670 simulator in CCSv5

Part Number: TMS320C6670

Tool/software: Code Composer Studio

I'm using Windows 7 64-bit, Service Pack 1, CCS version 5.5.0.00077 and Vision SDK 2.10.

I've been trying to test an EDMA autoincrement2D example as described in VISION_SDK_02_10_00_00\ti_components\algorithms_codecs\eve_sw_01_12_00_00\starterware\docs\eve_starterware_userguide.pdf using C6670 Device Cycle Approximate Simulator, Little Endian. (Note that in the end the example should work on a TDA2x board but I need to simulate it in CCS first).

However, I am facing a problem regarding wait(In/Out)Channel calls when a deadlock happens. Here is a code snippet (the test simply transfers data back and forth using two in and out buffers):

int bufId = 0;

//DMA trigger for pipe-up, out transfer is dummy and handled inside DMA utility EDMA_UTILS_autoIncrement_triggerInChannel(dmaAutoContextInOut[bufId]); //Below 2 extra transfers are dummy and needed by DMA utility EDMA_UTILS_autoIncrement_triggerOutChannel(dmaAutoContextInOut[bufId]); EDMA_UTILS_autoIncrement_triggerOutChannel(dmaAutoContextInOut[bufId^1]) ; numRowsPending = height ; while (numRowsPending) { //Wait for previous transfer of in EDMA_UTILS_autoIncrement_waitInChannel(dmaAutoContextInOut[bufId]); // it hangs here but it was triggered, it should finish eventually //DMA trigger for next in buffer EDMA_UTILS_autoIncrement_triggerInChannel(dmaAutoContextInOut[bufId^1]); //Wait for previous transfer out EDMA_UTILS_autoIncrement_waitOutChannel(dmaAutoContextInOut[bufId]) ; EDMA_UTILS_autoIncrement_triggerOutChannel(dmaAutoContextInOut[bufId]) ; bufId ^= 1; numRowsPending -= blkHeight; } //Need to wait for last out transfer EDMA_UTILS_autoIncrement_waitOutChannel(dmaAutoContextInOut[bufId]) ;

I was wondering if I could test this on a simulator at all, and if yes, do I need to configure some additional settings.

I will appreciate any help. Thanks.

  • In reply to Nik Trif:

    Hi Nik,

       It should not take too much time to copy even in simulator. But this is surprising that your code is working on EVM but not working on simulator. Did you tried running the same code on TDA2X(vayu) simulator?

  • In reply to Nik Trif:

    Nik,

    Just a side question. Why are you using this ancient CCS version? Why not try to update to the latest CCSv7, it's free and maybe the simulator there would work just fine?

    thanks
    Alex

     Be sure to read the Forum Guidelines and FAQ.

  • In reply to Anshu Jain:

    Hi Anshu,

    Thank you for the suggestion.

    Unfortunately I cannot acquire a vayu simulator at the moment, as I understand I need to have a CDDS account to download it which I don't have. I'll try contacting my manager for help.

    Will come back to you when I have some results.
  • In reply to Alex Bashkov:

    Hi Alex,

    I am using CCSv5 because, as I know, it is the last version of CCS to support simulators. I have seen posts of people, here on the forum, trying to enable them by copying some files from CCSv5 to CCSv7 but I am not sure what the benefit is.

    It could be that I'm not thinking right which is why I would appreciate some clarification or a guide to enabling simulators in CCSs later than v5.

    Thank you in advance.
  • In reply to Nik Trif:

    Nik Trif
    I am using CCSv5 because, as I know, it is the last version of CCS to support simulators

    This is correct. CCSv5 is the last version to come with simulators.

    Nik Trif
    I have seen posts of people, here on the forum, trying to enable them by copying some files from CCSv5 to CCSv7 but I am not sure what the benefit is.

    This theoretically should work. However this workaround is not a supported solution from TI, hence is not recommended. If you do choose to go this route, there is not much support we can provide since, again, this is an unsupported solution.

    Nik Trif
    It could be that I'm not thinking right which is why I would appreciate some clarification or a guide to enabling simulators in CCSs later than v5.

    There is no supported solution for enabling simulators past CCSv5. Simulators are simply not supported anymore.

    ki

    -----------------------------------

    Did you read the CCS Forum Guidelines & FAQ? If not, PLEASE read it. If you haven't read it in awhile, please read it again to see if any updates were made.

    Having CCS problems? Check out the CCS Troubleshooting Guide

    Looking for CCS Training? Check out the CCS Training Site

    Curious about the status of a bug and know the tracking ID? Track it via the public bug tracking portal

  • In reply to Anshu Jain:

    Hi Anshu,

    I have finally got a Vayu Subsystem Simulator and I'm glad to say that the test is working, and what's more important it is logically correct! What I would like to know now is if this simulator is Cycle Accurate or Cycle Approximate, and generally how precise profiling can be done with it?

    Thank you for your huge help!
  • In reply to Nik Trif:

    Hi Nik,

       If your profiling includes DMA then it is not cycle accurate. If you are measuring cycles just across the loops ( excluding DMA) then simulator basically assumes a flat memory model and hence if your loops are compute bound then cycles will be very close to simulator cycles. But if your loop is load store bound then the cycles will not match with the ones on target.

    Regards,

    Anshu