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

📄 target.c

📁 ucosv2.85版本移植s3c44b0x
💻 C
字号:
#include "..\inc\target.h"
#include "ucos_ii.h"               /* uC/OS interface */

/****************************************************************************
【功能说明】 This function initialize an ARM Target board
****************************************************************************/
void ARMTargetInit(void) 
{
   	CacheEnable();
	MemCfgInit();
	Port_Init();			//初始化端口
	Uart_Select(0);			//选择串口0
	Uart_Init(115200);		//设置串口0的速率为115200bps	
	
	ARMInitInterrupts();	//初始化中断,设置中断服务程序
}


/****************************************************************************
【功能说明】 This function start the ARM target running
****************************************************************************/
void ARMTargetStart(void) 
{
	
	ARMInitTimers();			//配置时钟0相关寄存器
	ARMInstallSystemTimer();	//时钟0中断使能
}

void ARMInitInterrupts(void)
{
	rINTCON=0x0;	 	  //IRQ disable,FIQ disable	
	rINTMOD=0x0;	      //All IRQ mode	  
	rINTMSK=BIT_GLOBAL;	  //All interrupt is masked.
    rEXTINT |= 0x40; 	  //EINT1为上升沿触发
	
	/*  设置中断服务程序入口地址 */
//	pISR_RESET	  =							//not used,reserved
	pISR_UNDEF 	  = (unsigned) DebugUNDEF;
	pISR_SWI 	  = (unsigned) DebugSWI;
	pISR_PABORT   = (unsigned) DebugPABORT;
	pISR_DABORT   = (unsigned) DebugDABORT;
//	pISR_RESERVED = 						//not used,reserved
//	pISR_IRQ 	  = 						//not used,reserved
	pISR_FIQ 	  = (unsigned) DebugFIQ;	
	
	pISR_EINT0	  = (unsigned) BreakPoint;
	pISR_EINT1	  = (unsigned) BreakPoint;
	pISR_EINT2	  = (unsigned) BreakPoint;
	pISR_EINT3	  = (unsigned) BreakPoint;
//pISR_EINT4567   = (unsigned) OSEINT4567ISR;
	pISR_TICK	  = (unsigned) BreakPoint;
	pISR_ZDMA0	  = (unsigned) BreakPoint;
	pISR_ZDMA1	  = (unsigned) BreakPoint;
	pISR_BDMA0	  = (unsigned) BreakPoint;
	pISR_BDMA1	  = (unsigned) BreakPoint;
	pISR_WDT	  = (unsigned) BreakPoint;
	pISR_UERR01	  = (unsigned) BreakPoint;
	pISR_TIMER0	  = (unsigned) BreakPoint;
	pISR_TIMER1	  = (unsigned) BreakPoint;
	pISR_TIMER2	  = (unsigned) BreakPoint;
	pISR_TIMER3	  = (unsigned) BreakPoint;
	pISR_TIMER4	  = (unsigned) BreakPoint;
	pISR_TIMER5	  = (unsigned) OSTickISR;
	pISR_URXD0	  = (unsigned) BreakPoint;
	pISR_URXD1	  = (unsigned) BreakPoint;
	pISR_IIC	  = (unsigned) BreakPoint;
	pISR_SIO	  = (unsigned) BreakPoint;
	pISR_UTXD0	  = (unsigned) BreakPoint;
	pISR_UTXD1	  = (unsigned) BreakPoint;
	pISR_RTC	  = (unsigned) BreakPoint;
	pISR_ADC	  = (unsigned) BreakPoint;
}

/****************************************************************************
【功能说明】使用定时器5作为ucos-II系统时钟
****************************************************************************/
void ARMInitTimers(void)
{
	rTCFG0 |= 0x95<<16;		//dead zone=0, Prescaler 0=149
	rTCFG1 |= 0x03<<20;		//all interrupt, MUX0=1/16
	//T5的频率为60000000/150/16=25000,故T5平均1ms向系统申请一次时钟中断
	rTCNTB5 = 25;				
	rTCON  |= 0x02<<24;		//update Timer 0,but Timer0 stop yet
}


/****************************************************************************
【功能说明】开启定时器5并设置为自动装载模式
****************************************************************************/
void ARMStartTimer(void)
{
	//auto reload and start
	rTCON  = 0x05<<24;
}

/****************************************************************************
【功能说明】使能系统相关中断
****************************************************************************/
void ARMInstallSystemTimer(void)
{
	//vectored interrupt mode,IRQ enable
	rINTCON=0x1;
	//开启中断定时器5和网卡中断
	rINTMSK=~( BIT_TIMER5 | BIT_GLOBAL);
}

/****************************************************************************
【功能说明】以下为异常中断ISR
****************************************************************************/
void BreakPoint(void) 
{
	Uart_Printf("Enter BreakPoint");
	SysReset();	//重新复位
}


void DebugUNDEF(void) 
{
	Uart_Printf("Enter DebugUNDEF");
	SysReset();	//重新复位
}

void DebugSWI(void) 
{
	Uart_Printf("Enter DebugSWI");
	SysReset();	//重新复位
}


void DebugPABORT(void) 
{
	Uart_Printf("Enter DebugPABORT");
	SysReset();	//重新复位
}


void DebugDABORT(void) 
{
	Uart_Printf("Enter DebugDABORT");
	SysReset();	//重新复位
}


void DebugFIQ(void) 
{
	Uart_Printf("Enter DebugFIQ");
	SysReset();	//重新复位
}

⌨️ 快捷键说明

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