?? target.c
字號:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.zyinside.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: target.c
** Last modified Date: 2006-01-11
** Last Version: v2.0
** Descriptions: 目標板特殊的代碼,包括異常處理程序和目標板初始化程序
**
**------------------------------------------------------------------------------------------------------
** Created By: 陳明計
** Created date: 2003-06-05
** Version: v1.0
** Descriptions: 創建
**
**------------------------------------------------------------------------------------------------------
** Modified by: 甘達
** Modified date: 2006-01-06
** Version: v2.0
** Descriptions: 升級注釋
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#define IN_TARGET
#include "config.h"
/*********************************************************************************************************
** 函數名稱: FIQ_Exception
** 功能描述: 快速中斷異常處理程序,用戶根據需要自己改變程序
**
** 輸 入: 無
**
** 輸 出: 無
**
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 黃紹斌
** 日 期: 2005年11月11日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void FIQ_Exception(void)
{
while(1); // 這一句替換為自己的代碼
}
/*********************************************************************************************************
** 函數名稱: Timer0_Exception
** 功能描述: 定時器0中斷服務程序
** 輸 入: 無
**
** 輸 出: 無
**
** 全局變量: 無
** 調用模塊: OSTimeTick
**
** 作 者: 陳明計
** 日 期: 2004年2月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Timer0_Exception(void)
{
rSRCPND = 1 << 10;
rINTPND = rINTPND;
OSTimeTick();
}
/*********************************************************************************************************
** 函數名稱: Timer0Init
** 功能描述: 定時器0初始化
** 輸 入: 無
**
** 輸 出: 無
**
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2002年4月4日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Timer0Init(void)
{
// 定時器設置
rTCFG0 = 0; // 預分頻器0設置為250,取得200KHz
rTCFG1 = 1; // TIMER0再取1/4分頻,取得50KHz
rTCNTB0 = (PCLK / (4 * OS_TICKS_PER_SEC)) - 1;
rTCON = (1 << 1); // 更新定時器數據
rTCON = (1 << 0) | (1 << 3); // 啟動定時器
}
/*********************************************************************************************************
** 函數名稱: VICInit
** 功能描述: 向量中斷控制器初始化
** 輸 入: 無
**
** 輸 出: 無
**
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年2月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void VICInit(void)
{
// 設置中斷控制器
rPRIORITY = 0x00000000; // 使用默認的固定的優先級
rINTMOD = 0x00000000; // 所有中斷均為IRQ中斷
VICVectAddr[10] = (uint32) Timer0_Exception;
rINTMSK = ~(1<<10); // 打開TIMER0中斷允許
}
// 聲明外部圖片資源
#if DISP_BGPIC!=0
extern uint16 gImage_bliss[];
#endif
/*********************************************************************************************************
** 函數名稱: TargetInit
** 功能描述: 目標板初始化代碼,在需要的地方調用,根據需要改變
** 輸 入: 無
**
** 輸 出: 無
**
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年2月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TargetInit(void)
{
uint32 temp;
OS_ENTER_CRITICAL();
srand((uint32) TargetInit);
VICInit();
Timer0Init();
UART_Select(0);
UART_Init(115200);
GUI_Initialize(); // 初始化LCD顯示
#if DISP_BGPIC!=0
GUI_DispPic(0,0, 640,480, gImage_bliss); // 顯示桌面
#endif
rRTCCON = 0x00; // 禁止RTC接口(只允許RTC計數和讀數)
temp = rBCDYEAR & 0xff;
if(temp > 0x99) // 年判斷
{
goto ChangeRTC;
}
if (temp == 0)
{
goto ChangeRTC;
}
temp = rBCDMON & 0x1F;
if (temp > 0x12) // 月判斷
{
goto ChangeRTC;
}
if (temp == 0)
{
goto ChangeRTC;
}
temp = rBCDDATE & 0x3F;
if (temp > 0x31) // 日判斷
{
goto ChangeRTC;
}
if (temp == 0)
{
goto ChangeRTC;
}
temp = rBCDHOUR & 0x3F;
if (temp > 0x24) // 時判斷
{
goto ChangeRTC;
}
temp = rBCDMIN & 0x7F;
if (temp > 0x59) // 分判斷
{
goto ChangeRTC;
}
temp = rBCDSEC & 0x7F;
if (temp > 0x59) // 秒判斷
{
goto ChangeRTC;
}
OS_EXIT_CRITICAL();
return;
ChangeRTC:
rRTCCON = 0x01; // 標準模式,RTC接口使能(允許寫)
rBCDYEAR = 0x05;
rBCDMON = 0x11;
rBCDDATE = 0x28;
rBCDDAY = 0x01; // 星期,MON:1 TUE:2 WED:3 THU:4 FRI:5 SAT:6 SUN:7
rBCDHOUR = 0x17;
rBCDMIN = 0x01;
rBCDSEC = 0x00;
rRTCCON = 0x00; // 禁止RTC接口(只允許RTC計數和讀數)
}
/*********************************************************************************************************
** 以下為一些與系統相關的庫函數的實現
** 具體作用請ads的參考編譯器與庫函數手冊
** 用戶可以根據自己的要求修改
********************************************************************************************************/
/*********************************************************************************************************
** The implementations for some library functions
** For more details, please refer to the ADS compiler handbook and The library
** function manual
** User could change it as needed
********************************************************************************************************/
#include "rt_sys.h"
#include "stdio.h"
#pragma import(__use_no_semihosting_swi)
int __rt_div0(int a)
{
a = a;
return 0;
}
int fputc(int ch,FILE *f)
{
ch = ch;
f = f;
return 0;
}
int fgetc(FILE *f)
{
f = f;
return 0;
}
int _sys_close(FILEHANDLE fh)
{
fh = fh;
return 0;
}
int _sys_write(FILEHANDLE fh, const unsigned char * buf,
unsigned len, int mode)
{
fh = fh;
buf = buf;
len =len;
mode = mode;
return 0;
}
int _sys_read(FILEHANDLE fh, unsigned char * buf,
unsigned len, int mode)
{
fh = fh;
buf = buf;
len =len;
mode = mode;
return 0;
}
void _ttywrch(int ch)
{
ch = ch;
}
int _sys_istty(FILEHANDLE fh)
{
fh = fh;
return 0;
}
int _sys_seek(FILEHANDLE fh, long pos)
{
fh = fh;
pos = pos;
return 0;
}
int _sys_ensure(FILEHANDLE fh)
{
fh = fh;
return 0;
}
long _sys_flen(FILEHANDLE fh)
{
fh = fh;
return 0;
}
int _sys_tmpnam(char * name, int sig, unsigned maxlen)
{
name = name;
sig = sig;
maxlen = maxlen;
return 0;
}
void _sys_exit(int returncode)
{
returncode = returncode;
}
char *_sys_command_string(char * cmd, int len)
{
cmd = cmd;
len = len;
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -