用CUBE建的工程,可以跑,可是觉得SDRAM速度慢,就用以下程序简单测试一下,结果大跌眼镜,请原子团队专家指导一下。
while(1)
{
told=HAL_GetTick(); //刚进入时的计数器值
for(u32 i= 0; i< 1000000; i++)
{
*(u32*)((u32)plcd+4*i)=555;//水平1/2点
*(u32*)((u32)plcd+4*i+4)=99999999; //水平3/4点,放大到1024横向一次画4个像素
*(u32*)((u32)plcd+4*i+8)=55555555;//水平1/2点
*(u32*)((u32)plcd+4*i+12)=99999999; //水平3/4点,放大到1024横向一次画4个像素
}
tnow=HAL_GetTick();
tcnt=tnow-told;
printf("\r\n******************************* benchmark2 : %d \r\n",tcnt);
told=HAL_GetTick(); //刚进入时的计数器值
for(u32 i= 0; i< 1000000; i++)
{
*(u32*)((u32)plcd+4)=55555555;//水平1/2点
*(u32*)((u32)plcd+8)=99999999; //水平3/4点,放大到1024横向一次画4个像素
*(u32*)((u32)plcd+4000)=55555555;//水平1/2点
*(u32*)((u32)plcd+8000)=99999999; //水平3/4点,放大到1024横向一次画4个像素
}
tnow=HAL_GetTick();
tcnt=tnow-told;
printf("\r\n************************** benchmark3 : %d \r\n",tcnt);
//wav_recorder();
}
用原子的录音机HAL例程跑大概耗时44ms和55ms,
用原子的综合实验例程跑大概耗时93ms和98ms左右,
用cube工程和自带的初始化大概耗时214ms和866ms左右,
用cube工程和原子的录音机HAL例程初始化,并且将时钟源设置到PLL2和220M以后,大概耗时146ms和395ms左右,(已经确定时钟源没有对结果产生影响)。
请各位高人看一下问题出在哪里了?
至少原子团队给个录音机和综合实验例程结果差异原因的说明。
|