⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6400_main.c

📁 s3c6400 ADS下官方测试程序
💻 C
字号:
/**************************************************************************************
* 
*	Project Name : S3C6400 Validation
*
*	Copyright 2006 by Samsung Electronics, Inc.
*	All rights reserved.
*
*	Project Description :
*		This software is only for validating functions of the S3C6400.
*		Anybody can use this software without our permission.
*  
*--------------------------------------------------------------------------------------
* 
*	File Name : 6400_main.c
*  
*	File Description : This file implements the test main functon.
*
*	Author : Haksoo,Kim
*	Dept. : AP Development Team
*	Created Date : 2006/11/08
*	Version : 0.1 
* 
*	History
*	- Created(Haksoo,Kim 2006/11/08)
*  
**************************************************************************************/

#include <stdio.h>

#include "option.h"
#include "library.h"
#include "sfr6400.h"
#include "system.h"
#include "sysc.h"
#include "gpio.h"
#include "intc.h"
#include "timer.h"
#include "uart.h"
#include "dmc.h"

extern void SYSC_Test(void);
extern void DMC_Test(void);
extern void SMC_Test(void);
extern void ONENAND_Test(void);
extern void NAND_Test(void);
extern void ATA_Test(void);
extern void PCCARD_Test(void);
extern void Test_GPIO(void);
extern void Test_DMA(void);
extern void SBLOCK_Test(void);
extern void LCD_Test(void);
extern void POST_Test(void);
extern void TVENC_Test(void);
extern void G2D_Test(void);
extern void ROTATOR_Test(void);
extern void CAMERA_Test(void);
extern void MFC_Test(void);
extern void JPEG_Test(void);
extern void MODEM_Test(void);
extern void HOSTIF_Test(void);
extern void OtgDev_Test(void);
extern void Test_SDHC(void);
extern void HSI_Test(void);
extern void Test_HSPI(void);
extern void IIC_Test(void);
extern void UART_Test(void);
extern void Timer_Test(void);
extern void RTC_test(void);
extern void AC97_Test(void);
extern void I2S_Test(void);
extern void PCM_Test(void);
extern void IRDA_Test(void);
extern void ADCTS_Test(void);
extern void KEYPAD_Test(void);

const testFuncMenu menu[] =
{
#if 1
	TestSFR,				"SFR R/W Test",
	SYSC_Test,				"SYSC_Test   ",
	DMC_Test,				"DMC_Test    ",
	SMC_Test,				"SROMC_Test  ",	
	ONENAND_Test,			"ONENAND_Test",
	NAND_Test,				"NAND_Test   ",
	ATA_Test,				"ATA_Test    ",
	PCCARD_Test,			"PCCARD_Test ",
	Test_GPIO,				"GPIO_Test   ",
	Test_DMA,				"DMA_Test    ",
	SBLOCK_Test,			"SBLOCK_Test ",
	LCD_Test,				"LCD_Test    ",	
	POST_Test,				"POST_Test   ",	
	TVENC_Test,				"TVENC_Test  ",
	G2D_Test,				"G2D_Test    ",
	ROTATOR_Test,			"ROTATOR_Test",
	CAMERA_Test,			"CAMERA_Test ",
	MFC_Test,				"MFC_Test    ",
	JPEG_Test,				"JPEG_Test   ",
	MODEM_Test,				"MODEM_Test  ",
	HOSTIF_Test,			"HOSTIF_Test ",
	OtgDev_Test,			"OtgDev_Test ",
	Test_SDHC,				"SDHC_Test   ",
	HSI_Test,				"HSI_Test    ",
	Test_HSPI,				"HSPI_Test   ",
	IIC_Test,				"IIC_Test    ",
	UART_Test,				"UART_Test   ",
	Timer_Test,				"Timer_Test  ",
	RTC_test,				"RTC_Test    ",
	AC97_Test,				"AC97_Test   ",
	I2S_Test,				"I2S_Test    ",	
	PCM_Test,				"PCM_Test    ",
	IRDA_Test,				"IRDA_Test   ",
	ADCTS_Test,				"ADCTS_Test  ",	
	KEYPAD_Test,			"KEYPAD_Test ",
	//MDP i/f
#else
	NAND_Test,				"NAND_Test   ",
	ONENAND_Test,			"ONENAND_Test",
#endif	
	//	TestFunction,		"Desciption",	
	0, 0
};

//////////
// Function Name : main
// Function Desctiption : main function of the validation
// Input : NONE
// Output : NONE
// Version :
int main(void)
{	
	u32 i, uSel;
	bool bClockChange=false;
	
	SYSTEM_InitException();
	SYSTEM_InitMmu();
	
	SYSC_ReadSystemID();
	SYSC_GetClkInform();
	
	CalibrateDelay();

	GPIO_Init();
	OpenConsole();
	INTC_Init();

#if 0 // async mode, 400:100:25MHz
	SYSC_ChangeMode(eASYNC_MODE);
	SYSC_ChangeSYSCLK_1(eAPLL400M, eAPLL200M, 0, 0, 7);
	bClockChange=true;
#elif 0 // async mode, 400:100:50MHz
	SYSC_ChangeMode(eASYNC_MODE);
	SYSC_ChangeSYSCLK_1(eAPLL400M, eAPLL200M, 0, 0, 3);
	bClockChange=true;
#elif 0	 // async mode, 532:133:33.25MHz
	SYSC_ChangeMode(eASYNC_MODE);
	SYSC_ChangeSYSCLK_1(eAPLL532M, eAPLL266M, 0, 0, 7);
	bClockChange=true;
#elif 0 // async mode, 532:133:66.5MHz
	SYSC_ChangeMode(eASYNC_MODE);
	SYSC_ChangeSYSCLK_1(eAPLL532M, eAPLL266M, 0, 0, 3);	
	bClockChange=true;
#elif 0 // async mode, 667:133:33.25MHz
	SYSC_ChangeMode(eASYNC_MODE);
	SYSC_ChangeSYSCLK_1(eAPLL667M, eAPLL266M, 0, 0, 7);
	bClockChange=true;
#elif 0 // async mode, 667:133:66.5MHz
	SYSC_ChangeMode(eASYNC_MODE);
	SYSC_ChangeSYSCLK_1(eAPLL667M, eAPLL266M, 0, 0, 3);
	bClockChange=true;
#endif

	if(bClockChange==true)
	{
		SYSC_GetClkInform();		
		CalibrateDelay();
		OpenConsole();
	}

#if 0 	// For 533MHz-1  VDDARM= 1.15V,  VDDINT= 1.05V
	LTC3714_VoltageSet(3, 1150);	// ARM&INT 1.15V
	Delay(100);

	LTC3714_VoltageSet(2, 1050);	// INT 1.05V
	Delay(100);
#endif

#if 0 	// For 533MHz-2  VDDARM= 1.2V,  VDDINT= 0.975V
	LTC3714_VoltageSet(3, 1200);	// ARM&INT 1.2V
	Delay(100);

	LTC3714_VoltageSet(2, 975);	// INT 0.975V
	Delay(100);
#endif

#if 0 	// For 667MHz  VDDARM= 1.3V,  VDDINT= 0.975V
	LTC3714_VoltageSet(3, 1300);	// ARM&INT 1.3V
	Delay(100);

	LTC3714_VoltageSet(2, 975);	// INT 0.975V
	Delay(100);
#endif

	SYSC_SetLockTime(eAPLL, 100);
	SYSC_SetLockTime(eMPLL, 100);
	SYSC_SetLockTime(eEPLL, 300);

	while(1)
	{
		printf("\n\n");
		printf("***************************************************\n");
		printf("*       S3C6400 - Test firmware v0.5              *\n");
		printf("***************************************************\n");
		printf("System ID : Revision [%d], Pass [%d]\n", g_System_Revision, g_System_Pass);
		printf("ARMCLK: %.2fMHz  HCLKx2: %.2fMHz  HCLK: %.2fMHz  PCLK: %.2fMHz\n",(float)g_ARMCLK/1.0e6, (float)g_HCLKx2/1.0e6, (float)g_HCLK/1.0e6, (float)g_PCLK/1.0e6);
		printf("\n");
	
		for (i=0; (u32)(menu[i].desc)!=0; i++)
		{
			printf("%2d: %s  ", i, menu[i].desc);
			if(((i+1)%4)==0)
				Putc('\n');
		}

		printf("\n\nSelect the function to test : ");
		uSel =GetIntNum();
		printf("\n");

		if (uSel<(sizeof(menu)/8-1))
			(menu[uSel].func) ();
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -