This is a repost from BIOS forum. In essence, I want to know how to configure DSP clock speed from the DSP side or from the ARM side if DSP side is not an option.
Thanks.
Hi,
I am using components from ti-ezsdk_dm816x-evm_5_03_01_15 to build message passing communication path between ARM and DSP cores. The problem I am having is that I configured the DSP to run at 1000MHz in the platform file (where the DSP CPU clock, memory and cache are configured), but when I use CLK_gethtime() to measure clock speed, it shows that the CPU is actually running at about 813MHz!!
The interesting thing is that CLK_getltime() and Task_sleep() works fine no matter what CPU clock speed i configure in the platform configuration file. It is because of this that I figured out that my DSP CPU is actually running at around 813MHz by looking at the CLK_gethtime() results.
Please see my code section and measurement results below. The LogTime(t1), LogLowTime(t1_low) just calls either CLK_gethtime() or CLK_getltime() and CLK_countspms() to figure out the time elapsed and to display it to the console ( as you see in the Measurement Results section below ).
Can some experts please help tell me how to configure the DSP clock to a specified value? This is a repost from BIOS forum, some one there suggested that the U-Boot/Linux configures DSP frequency as well. Is this true? Is there any correlation between ARM and DSP clock frequencies?
Thank you!
Zhao
*******Begin Code Section********
void SendStatus(DspMsg_s* rxMsg, short msgId)
{
unsignedint t1, t1_low;
System_sprintf( rxMsg->d.status.status.versStr, "%s.%02d", "V_00", msgId );
// Test code to find out the CPU clock speed
t1 = CLK_gethtime();
Task_sleep(100);// 100 ms
LogTime(t1);
t1_low = CLK_getltime();
Task_sleep(10000);// 10 s
LogLowTime(t1_low);
}
*******End Code Section********
*********Begin Measurement Results***********
[C674X_0] Sending a message #1 to 3
[C674X_0] elapsed time: ms[81] us[715]
[C674X_0] elapsed time: ms[10000] us[0]
[C674X_0] Sending a message #2 to 3
[C674X_0] elapsed time: ms[81] us[340]
[C674X_0] elapsed time: ms[10000] us[0]
[C674X_0] Sending a message #3 to 3
[C674X_0] elapsed time: ms[81] us[315]
[C674X_0] elapsed time: ms[10000] us[0]
*********End Measurement Results***********
*********Begin ARM Side Debug TimeStamps**********
Jun 26 23:48:18 WCS MeasRcv: Sending message #1 to DSP
Jun 26 23:48:28 WCS MeasRcv: Received DSP msg #1, response #1, Version is V_00.01
Jun 26 23:48:28 WCS MeasRcv: Sending message #2 to DSP
Jun 26 23:48:38 WCS MeasRcv: Received DSP msg #2, response #2, Version is V_00.02
Jun 26 23:48:38 WCS MeasRcv: Sending message #3 to DSP
Jun 26 23:48:49 WCS MeasRcv: Received DSP msg #3, response #3, Version is V_00.03
Jun 26 23:48:49 WCS MeasRcv: Successfully completed DSP message test, 3 loops
*********End ARM Side Debug TimeStamps**********