BF533对硬盘测试
0赞
发表于 4/8/2012 9:13:02 AM
阅读(2904)
#include "ccblkfn.h"
#include "sysreg.h"
#include <sys\exception.h>
#include <cdefBF533.h>
#include "dm_ide_base.h"
#include "dm_types.h"
section("sdram0") uint16_t DataBuffer[51200];
section("sdram0") uint16_t TESTBuffer[51200];
extern void Init_EBIU(void);
extern void Init_PLL(void);
extern void Init_SDRAM(void);
/**********************************************************************************
* 名称:Data_Check
* 功能:连续写100个扇区,读出写入数据,校验数据是否有错
* 入口参数:testcon(校验数据次数)
* 出口参数:返回1则效验数据出错,返回0则效验数据正确
***********************************************************************************/
int Data_Check(int_t testcon)
{
int_t i,j=0,k;
int_t flag = 1;
printf("make test data ok!\n\r");
for(j=0;j<100;j++){
for(i=0;i<256;i++){
DataBuffer[i+j*256] = i;
}
}
printf("Check data to IDE Disk!\n\r");
for(k=0;k<testcon;k++){
fnIDE_WriteBufferSector(DataBuffer,1,100);
fnIDE_ReadBufferSector(TESTBuffer,1,100);
for(j=0;j<100;j++){
for(i=0;i<256;i++){
if(DataBuffer[i+j*256] != TESTBuffer[i+j*256]){
flag = 0;
break;
}
}
}
}
if(flag)
printf("data check is OK!\n\r");
else
printf("data check error!\n\r");
return 0;
}
/**********************************************************************************
* 名称:main
* 功能:硬盘测试代码主函数
* 入口参数:无
* 出口参数:无
***********************************************************************************/
void main(void)
{
int_t i;
Set_PLL(22,5); //配置内核时钟为594M,系统时钟为118.8M
Init_EBIU();
Wait_Ready();
for(i=0;i<256;i++){
DataBuffer[i] = i+1;
}
fnIDE_WriteBufferSector(DataBuffer,1,1);
fnIDE_ReadBufferSector(TESTBuffer,1,1);
Data_Check(10);
printf("Test END\n\r");
while(1){
};
}
