📄 sys.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 + -