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

📄 sys.c

📁 以TI 公司的OMAP5910为例
💻 C
字号:
//////////////////////////////////////////////////////////////////////////
//            Copyright (C) 2004, Eyoka @ Microunit
//                           All Rights Reserved
//________________________________________________________________________
//
// FILENAME:    sys.c
// PROJECT:     High-Resolution Video System On OMAP
// MODULE:      MPU System
// DESCRIPTION: MPU hardware system main interface.
// TARGET CPU:  ARM-925T of OMAP5910
// VERSION:     0.2
//________________________________________________________________________
//
// REVISE HISTORY
// DATE         VERSION AUTHOR  DESCRIPTION
// 2004-11-08   0.2     Eyoka   Checked.
// 2004-11-01   0.1     Eyoka   Created.
//////////////////////////////////////////////////////////////////////////

#include "sys.h"


/////////////////////////////////////////////////////////////////////
// FUNCTIONS
/////////////////////////////////////////////////////////////////////

//___________________________________________________________________
// Function: SYS_Init
// Usage: System Initialization
// Parameters:		N/A
// Return Values:	N/A
//___________________________________________________________________
//
void SYS_Init(void)
{
	LCD_PARAM lcd;
	DMA_PARAM dma_camera;
	TLB_PARAM tlb;

	CLK_Init();

	WDG_Disable();

	TIPB2_CNTL = 2 | (TIPB2_CNTL & 0xFFF0);

	DMA_Init();

	// LCD
	lcd.mode = TFT_16BPP;
	lcd.width = 240;
	lcd.height = 320;
	lcd.f1_addr = LCD_BUF;
	lcd.HBP = 2;
	lcd.HFP = 3;
	lcd.HSW = 9;
	lcd.IHS = TRUE;
	lcd.VBP = 10;
	lcd.VFP = 5;
	lcd.VSW = 10;
	lcd.IVS = TRUE;
	lcd.PCD = 8;
	LCD_Setup(&lcd);

	// CAMIF
	I2C_Init();
	CAM_Init();
	memset((void*)&dma_camera, 0, sizeof(DMA_PARAM));
	dma_camera.ch = 0;
	dma_camera.data_type = DATATYPE_32BIT;
	dma_camera.priority = 1;
	dma_camera.sync_req = SYNC_REQ_Camera_RX;
	dma_camera.src_port = PORT_TIPB;
	dma_camera.src_amode = AMODE_CONST;
	dma_camera.src_addr = 0xFFFB6810;
	dma_camera.dst_port = PORT_EMIFF;
	dma_camera.dst_amode = AMODE_AUTO;
	dma_camera.dst_addr = 0x10E70000;
	dma_camera.ele_n = 160;
	dma_camera.frame_n = 240;
	DMA_Setup(&dma_camera);

	// Interrupt
	INT_L1_SetupEntry(L1EVT_CAMERA, 2, TRUE, FALSE);
	INT_L1_SetupEntry(L1EVT_MAILBOX1, 0, TRUE, FALSE);
	ISRTAB_SW[0] = (DWORD)ISR_EnableIRQ;
	ISRTAB_SW[1] = (DWORD)ISR_EnableFIQ;

	// DSPMMU
	DSPMMU_ReleaseReset();
	DSPMMU_Enable();
	tlb.phy_addr = 0x10000000;
	tlb.vir_addr = 0x00000000;
	tlb.size = (BYTE)SIZE_SECTION;
	tlb.ap = (BYTE)FULL_ACCESS;
	tlb.bPreserved = (BYTE)FALSE;
	for (tlb.index=0; tlb.index<14; tlb.index++)
	{
		tlb.phy_addr += 0x00100000;
		tlb.vir_addr += 0x00100000;
		DSPMMU_TLB_Insert(&tlb);
	}
	TC_ENDIANISM = 3;

	// MPUI
	MPUI_Set_WSWAP(WSWAP_NONE);
	MPUI_Set_BSWAP(BSWAP_NONE);
	MPUI_SetDSPBootMode(DSPBOOT_INTERNAL);

	// DSP
	CLK_EnableDSPCK(TRUE);
	RST_ReleaseDSP();
	RST_EnableDSP();
}

//___________________________________________________________________
// Function: WDG_Disable
// Usage: Disable the watchdog
// Parameters:		N/A
// Return Values:	N/A
//___________________________________________________________________
//
void WDG_Disable(void)
{
	MPU_TIMER_MODE_WD = 0x00F5;
	MPU_TIMER_MODE_WD = 0x00A0;
}



// the end
//////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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