?? target.c
字號:
/*
;************************************************************************************************************
;* 北京知天行科技有限公司
;* 研 發(fā) 部
;*
;* http://www.zt-training.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------
;*
;* 文件名稱 : target.c
;* 文件功能 : 該文件為S3C44B0硬件平臺配置具體函數(shù)的初始化。
;* 補充說明 :
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM開發(fā)小組
;* 修改日期 : 2004/04/25
;* 版本聲明 : V1.0.1
;*-------------------------------------------- 歷史版本信息 -------------------------------------------------
;* 文件作者 : ARM開發(fā)小組
;* 創(chuàng)建日期 : 2004/04/20
;* 版本聲明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/
#include "..\INC\44b.h"
#include "..\INC\target.h"
#include "..\INC\44blib.h"
char flag=0;
/*
*************************************************************************************************************
-
- 程序段說明 : 以下函數(shù)為各異常模式服務(wù)子程序。設(shè)成死循環(huán)是為調(diào)試用,一旦發(fā)生此類異常,程序便跳入異常模式服務(wù)
- 子程序,終止程序運行。
-
*************************************************************************************************************
*/
unsigned int bbb=1;
void HaltUndef(void) //未定義
{
Uart_Printf(0,"the programm is haltUndefed");
while(1);
}
void HaltSwi(void) //軟中斷
{
Uart_Printf(0,"the programm is haltSWI");
while(1);
}
void HaltPabort(void) //預取指中止
{
Uart_Printf(0,"the programm is haltPaborted");
while(1);
}
void HaltDabort(void) //數(shù)據(jù)中止
{
Uart_Printf(0,"the programm is haltdaborted");
while(1);
}
void HaltFIQ(void) //快中斷
{
Uart_Printf(0,"the programm is haltdFIQ");
while(1);
}
/*
*************************************************************************************************************
-
- 程序段說明 : 以下函數(shù)均為初始化函數(shù)
-
*************************************************************************************************************
*/
/*
*************************************************************************************************************
- 函數(shù)名稱 : Exep_S3cint_Init(void)
- 函數(shù)說明 : 異常及中斷控制器的初始化
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void Exep_S3cINT_Init(void)
{
int rr,qq;
pISR_UNDEF = (unsigned)HaltUndef;
pISR_SWI = (unsigned)HaltSwi;
pISR_PABORT = (unsigned)HaltPabort;
pISR_DABORT = (unsigned)HaltDabort;
pISR_FIQ = (unsigned)HaltFIQ;
rINTCON = 0x1; // 所有中斷均使用向量中斷,打開 IRQ ,禁止 FIQ
rINTMOD = 0x00; // 所有模式配置為 IRQ 模式
rINTMSK = 0x07ffffff; // 屏蔽所有中斷
rr = rI_ISPC;
rr = rINTPND;
rr = rEXTINPND;
rEXTINPND = 1;
rI_ISPC = 0x3ffffff; //中斷清除;
rr = rEXTINPND;
qq = rINTPND;
}
/*
*************************************************************************************************************
- 函數(shù)名稱 : Cache_Init(void)
- 函數(shù)說明 : S3C44B0內(nèi)部緩存的初始化程序
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void Cache_Init(void)
{
rSYSCFG = SYSCFG_8KB;
rNCACHBE0 = 0x20001c00;
rNCACHBE1 = 0xe0003000;
}
/*
*************************************************************************************************************
- 函數(shù)名稱 : void Timer1_init(void)
- 函數(shù)說明 : 定時器初始化程序
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void Timer1_init(void)
{
rTCFG0 = 0xC8; // MCLK/200
rTCFG1 = 0x20; // MCLK/20/8
rTCNTB1 = 0x61A8; // 在40MHZ下,1秒鐘的記數(shù)值rTCNTB1 = 0x61A8;
rTCMPB1 = 0x00;
rTCON = 0x0200; //禁止定時器1,手動加載
rTCON = 0x0900; //啟動定時器1,自動裝載
}
/*
*************************************************************************************************************
- 函數(shù)名稱 : void __irq Timer1_ISR( void )
- 函數(shù)說明 : 定時器中斷服務(wù)子程序
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void __irq Timer1_ISR( void )
{
//rINTMSK = (BIT_GLOBAL|BIT_TIMER1); // 關(guān)中斷
bbb=2;
if (flag ==0)
{
rPDATB = 0x7ef;
flag = 1;
}
else
{
rPDATB = 0x7ff;
flag = 0;
}
rI_ISPC = BIT_TIMER1;
// rINTMSK = ~(BIT_GLOBAL|BIT_TIMER1); // 開中斷
}
/*
*************************************************************************************************************
- 函數(shù)名稱 : void Timer1INT_Init(void)
- 函數(shù)說明 : 定時器中斷初始化程序
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void Timer1INT_Init(void) //觸摸屏硬件接口使能
{
if ((rINTPND & BIT_TIMER1))
{
rI_ISPC = BIT_TIMER1;
}
rINTMSK = ~(BIT_GLOBAL|BIT_TIMER1); //開中斷;
pISR_TIMER1 = (int)Timer1_ISR;
}
/*
*************************************************************************************************************
- 函數(shù)名稱 : void Target_Init(void)
- 函數(shù)說明 : 目標板初始化程序
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void Target_Init(void)
{
Port_Init();
Exep_S3cINT_Init();
Cache_Init();
// Timer1_init();
// Timer1INT_Init();
StartInterrupt(); //開中斷,在此之前都是關(guān)中斷狀態(tài),在44binit.s中定義
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -