I started working on ADSP-SC584 EZ Lite board along with CCES 2.0 for modem development. I tried ADC-DAC Playback code of SC589 on SC584 board as suggested in the forum by changing the processor setting. It worked well but the profiling shows "ProcessBuffers()" function itself consuming around 60%. Earlier also I had worked on 21489EZ-Lite board along with VDSP++ for different modem project. At that time also we had started with the example code of ADC-DAC playback as a starting point and after whole modem development it hardly takes 60-70% resources. I just want to know why this simple pointer assignment function is taking this much resources and also whether I am doing anything wrong in new CCES IDE. Any suggestions will be helpful
Moving to CrossCore Embedded Studio and Add-ins
Hi Anand,Profiling is a method for measuring program performance by sampling the target's PC register to collect data. Profiling view is used to observe where a program spends most of its time executing. The statistical profiler periodically samples the Program Counter of the target and builds a profile of the application in terms of % of processor time spent in different functions of the application based on the number of samples gathered for each function. Similarly, it can provide details of the number of samples gathered for each function. Since the "ProcessBuffers()" is the only function executing inside the while loop after enabling the SPORT it is taking more percentage. For more information about Profiler please refer the below CCES help path:CrossCore Embedded Studio > Integrated Development Environment > Navigating Within the IDE > Views > Debug > Profiling View > About Statistical Profiling and Linear ProfilingRegards,Santha kumari.K
Thank you for your valuable input.
I am able to reduce the profiling percentage to approx 2% (Fig 1). As per my understanding the "ProcessBuffers()" function is executing continuously irrespective of ADC/DAC Interrupts. I modified the code such a way that "ProcessBuffers()" is called only when Interrupts are available. I removed the "Re-submission of ADC/DAC buffer" (Fig 2) from function and put it in while(1) before calling ProcessBuffers() based on Interrupt condition (Fig 3). Everything works fine.