📄 2410test.c
字号:
// ChangeMPllValue(0x7f,0x2,0x2); // FCLK=101.25MHz
// ChangeMPllValue(0x52,0x2,0x1); // FCLK=135MHz
// ChangeMPllValue(0x96,0x5,0x1); // FCLK=135428571Hz
// ChangeMPllValue(0x47,0x1,0x1); // FCLK=158MHz
// ChangeMPllValue(0x48,0x1,0x1); // FCLK=160MHz
// ChangeMPllValue(0x4d,0x1,0x1); // FCLK=170MHz
// ChangeMPllValue(0x52,0x1,0x1); // FCLK=180MHz , Confirmed from MS Core P/J
// ChangeMPllValue(0x59,0x1,0x1); // FCLK=194MHz , Confirmed from MS Core P/J
ChangeMPllValue(0x5c,0x1,0x1); // FCLK=200MHz
// ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz, Confirmed from MS Core P/J
// ChangeMPllValue(0x64,0x1,0x1); // FCLK=216MHz , Confirmed from MS Core P/J
// ChangeMPllValue(0x66,0x1,0x1); // FCLK=220MHz
// ChangeMPllValue(0x69,0x1,0x1); // FCLK=226MHz
// ChangeMPllValue(0x96,0x2,0x1); // FCLK=237MHz
// ChangeMPllValue(0x70,0x1,0x1); // FCLK=240MHz
// ChangeMPllValue(0x75,0x1,0x1); // FCLK=250MHz
// ChangeMPllValue(0x7a,0x1,0x1); // FCLK=260MHz
// ChangeMPllValue(0x7d,0x1,0x1); // FCLK=266MHz
// ChangeMPllValue(0x7f,0x1,0x1); // FCLK=270MHz
// ChangeMPllValue(0x84,0x1,0x1); // FCLK=280MHz
// ChangeMPllValue(0x89,0x1,0x1); // FCLK=290MHz
// ChangeMPllValue(0x8e,0x1,0x1); // FCLK=300MHz
// ChangeMPllValue(0x93,0x1,0x1); // FCLK=310MHz
// ChangeMPllValue(0x96,0x1,0x1); // FCLK=316MHz
// ChangeMPllValue(0x98,0x1,0x1); // FCLK=320MHz
// ChangeMPllValue(0x9d,0x1,0x1); // FCLK=330MHz
// ChangeMPllValue(0xa2,0x1,0x1); // FCLK=340MHz
// ChangeMPllValue(0xa7,0x1,0x1); // FCLK=350MHz
// ChangeMPllValue(0xac,0x1,0x1); // FCLK=360MHz
Port_Init();
Isr_Init();
// Rtc_Init();
// Uart_Init(0,115200);
//Uart_Init(FCLK/2,115200);
Uart_Init(FCLK/4,115200);
Uart_Select(0);
//Check whether or not the POWER_OFF wake-up.
Delay(0); //calibrate Delay()
Check_PowerOffWakeUp(); //It's needed for power-off STOP mode test.
//SJS July 15, 2002
//Turn on LCD. All test will be done while the LCD is turned on.
//PWR_Lcd_Tft_16Bit_240320_On();
//Save the wasted power consumption on GPIO.
rIISPSR=(2<<5)|(2<<0); //IIS_LRCK=44.1Khz @384fs,PCLK=50Mhz.
rGPHCON = rGPHCON & ~(0xf<<18)|(0x5<<18); //CLKOUT 0,1=OUTPUT to reduce the power consumption.
//SJS July 15, 2002
//Turn on LCD. All test will be done while the LCD is turned on.
Test_Lcd_Tft_8Bit_240320_On();
if (0x32410000 == rGSTATUS1)
Uart_Printf("\nCPU ID : S3C2410X01 (203MHz) or S3C2410X02 (270MHz)\n");
if (0x32410002 == rGSTATUS1)
Uart_Printf("\nCPU ID : S3C2410A01 (270MHz)\n");
//12/23/2003 SOP
#if CACHE_EN
Uart_Printf("Now Cache Enabled...\n");
#else
Uart_Printf("Now Cache Disabled...\n");
#endif
#if LPC3600ENABLE // 12/15/2004 SOP
Uart_Printf("LPC3600 Enabled...\n");
#else
Uart_Printf("LPC3600 Disabled...\n");
#endif
#if 0
//Test Only, Oyster-N VDDMOP Voltage Margin Test 04/28/2004 SOP
//Uart_Printf("\n\nS3C2410A01 (SMDK2410) Test Program Ver 1.2(20040521) FCLK = %d Hz\n\n", FCLK);
Uart_Printf("\n\nPower Consumption Test (Power Measurement).\n\n");
//while(!Uart_GetKey())
//{
MeasurePowerConsumption();
// Test_DMA();
// Test_MEM(); // 04/28/2004 SOP
// Test_DMAWorst();
// Uart_Printf("\nTest Continue, Press to any key.\n");
// while(!Uart_GetKey());
//}
//Test end
#endif
/*
//Test Only,Pin F4 : GPB2(TOUT2) 07/25/2003 SOP
while(1)
{
Uart_Printf("\nrGPBDAT (Before) : 0x%x\n",rGPBDAT);
rGPBDAT &= 0x7fb; //GPB2 Data out '0'
Uart_Printf("rGPBDAT (0x7fb) : 0x%x, GPB2 Data out '0'\n",rGPBDAT);
for(i=0;i<100000000;i++);
rGPBDAT |= 0x7ff; //GPB2 Data out '1'
Uart_Printf("rGPBDAT (0x7ff) : 0x%x, GPB2 Data out '1'\n",rGPBDAT);
for(i=0;i<100000000;i++);
}
//Test end
*/
/*
//Test Only,Pin M17 : GPF3(EINT3) 01/09/2004 SOP
//=== PORT F GROUP
//Ports : GPF7 GPF6 GPF5 GPF4 GPF3 GPF2 GPF1 GPF0
//Signal : nLED_8 nLED_4 nLED_2 nLED_1 nIRQ_PCMCIA EINT2 KBDINT EINT0
//Setting: Output Output Output Output Output EINT2 EINT1 EINT0
//Binary : 01 01 , 01 01 , 01 10 , 10 10
rGPFCON = 0x556a;
rGPFUP = 0xff; // The pull up function is disabled GPF[7:0]
Uart_Printf("\nrGPFDAT (Before) : 0x%02x\n",rGPFDAT);
while(1)
{
rGPFDAT = 0xf7; //GPF3 Data out '0'
Uart_Printf("LED1 ~ 4: Off\n");
Uart_Printf("rGPFDAT (0xf7) : 0x%02x, GPF3 Data out '0'\n\n",rGPFDAT);
for(i=0;i<10000;i++);
rGPFDAT = 0x0f; //GPF3 Data out '1'
Uart_Printf("LED1 ~ 4: On\n");
Uart_Printf("rGPFDAT (0x0f) : 0x%02x, GPF3 Data out '1'\n\n",rGPFDAT);
for(i=0;i<10000;i++);
}
//Test end
*/
while(1)
{
i = 0;
//GPG4 Output Port [9:8] 00 -> LCD power off
// rGPGCON = (rGPGCON & 0xfffffcff) | (1<<8);
// rGPGDAT &= 0xffef;
Uart_Printf("\n\nS3C2410A01 (SMDK2410) Test Program Ver 1.2(20041215) FCLK = %d Hz\n\n", FCLK);
rGPHCON = rGPHCON & ~(0xf<<18)|(0xa<<18); //CLKOUT 0,1
rMISCCR = rMISCCR & ~(0xff<<4)|(0x32<<4); //CLKOUT0=FCLK, CLKOUT1=HCLK
// Uart_Printf("\n[ CPU Cache Speed Testing ..... ]\n");
// Test_CpuSpeed();
// Uart_Printf("\n[ Power-Off Mode Entry ..... ]\n");
// Test_InitSDRAM();
// Test_PowerOffMode();
while(1)
{ //display menu
Uart_Printf("%2d:%s",i,function[i][1]);
i++;
if((int)(function[i][0])==0)
{
Uart_Printf("\n");
break;
}
if((i%4)==0)
Uart_Printf("\n");
}
Uart_Printf("\nSelect the function to test : ");
i = Uart_GetIntNum();
Uart_Printf("\n");
//GPG4 Output Port [9:8] 01 -> LCD power On
rGPGCON = (rGPGCON & 0xfffffcff) | (1<<8);
rGPGDAT = (rGPGDAT & 0xffef) | (1<<4);
if(i>=0 && (i<(sizeof(function)/8)) )
( (void (*)(void)) (function[i][0]) )();
}
}
//===================================================================
void Isr_Init(void)
{
pISR_UNDEF = (unsigned)HaltUndef;
pISR_SWI = (unsigned)HaltSwi;
pISR_PABORT = (unsigned)HaltPabort;
pISR_DABORT = (unsigned)HaltDabort;
rINTMOD = 0x0; //All=IRQ mode
// rINTCON=0x5; //Non-vectored,IRQ enable,FIQ disable
rINTMSK = BIT_ALLMSK; //All interrupt is masked.
rINTSUBMSK = BIT_SUB_ALLMSK; //All sub-interrupt is masked. <- April 01, 2002 SOP
// rINTSUBMSK = ~(BIT_SUB_RXD0); //Enable Rx0 Default value=0x7ff
// rINTMSK = ~(BIT_UART0); //Enable UART0 Default value=0xffffffff
// pISR_UART0=(unsigned)RxInt; //pISR_FIQ,pISR_IRQ must be initialized
}
//===================================================================
void HaltUndef(void)
{
Uart_Printf("Undefined instruction exception.\n");
while(1);
}
//===================================================================
void HaltSwi(void)
{
Uart_Printf("SWI exception.\n");
while(1);
}
//===================================================================
void HaltPabort(void)
{
Uart_Printf("Pabort exception.\n");
while(1);
}
//===================================================================
void HaltDabort(void)
{
Uart_Printf("Dabort exception.\n");
while(1);
}
/*
//=========================
while(1)
{
Led_Display(3);
}
//=========================
*/
/*
//=========================
while(1)
{
Led_Display(1);
Delay(1500);
Led_Display(2);
Delay(1500);
Led_Display(4);
Delay(1500);
Led_Display(8);
Delay(1500);
}
//=========================
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -