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

📄 target.c

📁 LPC2292 bios测试程序 说明:YL_LPC229X_BIOS_Data的目录说明
💻 C
字号:
/*******************************************************************************************************
**文   件   名: target.c

********************************************************************************************************/

#define IN_TARGET
#include "config.h"

/*********************************************************************************************************
** 函数名称: IRQ_Exception
** 功能描述: 中断异常处理程序,用户根据需要自己改变程序
********************************************************************************************************/
void __irq IRQ_Exception( void )
{
	while ( 1 );				   // 这一句替换为自己的代码
}

/*********************************************************************************************************
** 函数名称: FIQ_Exception
** 功能描述: 快速中断异常处理程序,用户根据需要自己改变程序
********************************************************************************************************/
void FIQ_Exception( void )
{
	while ( 1 );				   // 这一句替换为自己的代码
}

/*********************************************************************************************************
** 函数名称: TargetInit
** 功能描述: 目标板初始化代码,在需要的地方调用,根据需要改变
********************************************************************************************************/
void TargetInit( void )
{
	/* 添加自己的代码 */
}

/*********************************************************************************************************
** 函数名称: PortInit
** 功能描述: 目标板IO端口初始化
********************************************************************************************************/
void PortInit( void )
{
	//*** 32bit PORT 0 P0.0--P0.15 GROUP function configuration_____________gongjun
	//Ports  :  P0.15    P0.14    P0.13    P0.12	P0.11    P0.10    P0.09    P0.08
	//Signal :  RI  	 CD 	  DTR     DSR      CTS  	RTS 	 RXD1     TXD1 
	//Binary :  01  	 01 	  01	   01   	01  	 01 	  01	   01
	//______________________________________________________________________________
	//Ports  :  P0.07    P0.06    P0.05    P0.04	P0.03    P0.02    P0.01    P0.00
	//Signal :  GPIO	 GPIO     GPIO     GPIO 	GPIO	 GPIO     RXD0     TXD0 
	//Binary :  00  	 00 	  00	   00   	00  	 00 	  01	   01
	//******************************************************************************
	PINSEL0 = ( 0x5555 << 16 ) | ( 0x0005 )  ;		// 设置P0.0--P0.15引脚功能

	//*** 32bit PORT 0 P0.0--P0.31 GROUP direction configuration_____________gongjun
	//Ports  :  P0.31    P0.30    P0.29    P0.28	P0.27    P0.26    P0.25    P0.24
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P0.23    P0.22    P0.21    P0.20	P0.19    P0.18    P0.17    P0.16
	//Signal :  I   	 I  	  o 	   I		o   	 I  	  o 	   I
	//Binary :  0   	 0  	  1 	   0		1   	 0  	  1 	   0
	//______________________________________________________________________________
	//Ports  :  P0.15    P0.14    P0.13    P0.12	P0.11    P0.10    P0.09    P0.08
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P0.07    P0.06    P0.05    P0.04	P0.03    P0.02    P0.01    P0.00
	//Signal :  I   	 o  	  o 	   o		I   	 o  	  I 	   o
	//Binary :  0   	 1  	  1 	   1		0   	 1  	  0 	   1
	//******************************************************************************
	IO0DIR = ( 0x00 << 24 ) | ( 0x2a << 16 ) | ( 0x00 << 8 ) | ( 0x75 )  ;		// 设置P0引脚方向

	//*** 32bit PORT 0 P0.16--P0.31 GROUP function configuration_____________gongjun
	//Ports  :  P0.31    P0.30    P0.29    P0.28	P0.27    P0.26    P0.25    P0.24
	//Signal :  GPIO	 GPIO     AIN2     AIN1 	AIN0	 GPIO     RD1      TD2 
	//Binary :  00  	 00 	  01	   01   	01  	 00 	  01	   01
	//______________________________________________________________________________
	//Ports  :  P0.23    P0.22    P0.21    P0.20	P0.19    P0.18    P0.17    P0.16
	//Signal :  RD2 	GPIO	 PWM5     GPIO     GPIO 	GPIO	 GPIO     GPIO 
	//Binary :  01  	 00 	  01	   00   	00  	 00 	  00	   00
	//******************************************************************************
	PINSEL1 = ( 0x0545 << 16 ) | ( 0x0400 )  ;		// 设置P0.16--P0.31引脚功能

	//*** 32bit PORT 1, PORT 2, PORT 3 GROUP function configuration__________gongjun
	//Ports  :  RESERVER P3.22:2  P3.1
	//Signal :  GPIO	 ADDR2:23 ADDR1 
	//Binary :  00  	 111	   1
	//______________________________________________________________________________
	//Ports  :  P3.00    P2.31    P2.30    P2.29:28 RESERVER P3.24
	//Signal :  ADDR0   GPIO	 GPIO     GPIO     GPIO 	CS3 
	//Binary :  1   	0   	 0  	  0 	   00   	01
	//______________________________________________________________________________
	//Ports  :  P3.25    P3.23    RESERVER P3.26	RESERVER RESERVER P3.27
	//Signal :  CS2 	 ADDR23   GPIO     CS1  	GPIO	 GPIO     nWE 
	//Binary :  01  	 1  	  0 	   1		0   	 0  	  1
	//______________________________________________________________________________
	//Ports  :  P3.28    P3.29    P1.2.3   P1.25:16 P1.31:26 RESERVER RESERVER
	//Signal :  GPIO	 GPIO     GPIO     GPIO		DEBUG	 GPIO     GPIO
	//Binary :  0   	 0  	  01	   0		1   	 0  	  0
	//******************************************************************************
	PINSEL2 = ( 0xf << 24 ) | ( 0x81 << 16 ) | ( 0x69 << 8 ) | ( 0x14 )  ;		// 设置P1-P2-P3引脚功能

	//*** 32bit PORT 0 P1.00--P1.31 GROUP direction configuration_____________gongjun
	//Ports  :  P1.31    P1.30    P1.29    P1.28	P1.27    P1.26    P1.25    P1.24
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   o
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   1
	//______________________________________________________________________________
	//Ports  :  P1.23    P1.22    P1.21    P1.20	P1.19    P1.18    P1.17    P1.16
	//Signal :  o   	 o  	  o 	   I		I   	 o  	  o 	   I
	//Binary :  1   	 1  	  1 	   0		0   	 1  	  1 	   0
	//______________________________________________________________________________
	//Ports  :  P1.15    P1.14    P1.13    P1.12	P1.11    P1.10    P1.09    P1.08
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P1.07    P1.06    P1.05    P1.04	P1.03    P1.02    P1.01    P1.00
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//******************************************************************************
	IO1DIR = ( 0x01 << 24 ) | ( 0xe6 << 16 ) | ( 0x00 << 8 ) | ( 0x00 ) ;		// 设置P1引脚方向

	//*** 32bit PORT 2 GROUP direction configuration_____________gongjun
	//Ports  :  P2.31    P2.30    P2.29    P2.28	P2.27    P2.26    P2.25    P2.24
	//Signal :  o   	 o  	  o 	   o		o   	 I  	  I 	   I
	//Binary :  1   	 1  	  1 	   1		1   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P2.23    P2.22    P2.21    P2.20	P2.19    P2.18    P2.17    P2.16
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P2.15    P2.14    P2.13    P2.12	P2.11    P2.10    P2.09    P2.08
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P2.07    P2.06    P2.05    P2.04	P2.03    P2.02    P2.01    P2.00
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//******************************************************************************
	IO2DIR = ( 0xf8 << 24 ) | ( 0x00 << 16 ) | ( 0x00 << 8 ) | ( 0x00 )  ;		// 设置P2引脚方向

	//*** 32bit PORT 3 GROUP direction configuration_____________gongjun
	//Ports  :  P3.31    P3.30    P3.29    P3.28	P3.27    P3.26    P3.25    P3.24
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P3.23    P3.22    P3.21    P3.20	P3.19    P3.18    P3.17    P3.16
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P3.15    P3.14    P3.13    P3.12	P3.11    P3.10    P3.09    P3.08
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//______________________________________________________________________________
	//Ports  :  P3.07    P3.06    P3.05    P3.04	P3.03    P3.02    P3.01    P3.00
	//Signal :  I   	 I  	  I 	   I		I   	 I  	  I 	   I
	//Binary :  0   	 0  	  0 	   0		0   	 0  	  0 	   0
	//******************************************************************************
	IO3DIR = ( 0x00 << 24 ) | ( 0x00 << 16 ) | ( 0x00 << 8 ) | ( 0x00 )  ;		// 设置P3引脚方向
}

/*********************************************************************************************************
** 函数名称: TargetResetInit
** 功能描述: 调用main函数前目标板初始化代码,根据需要改变,不能删除
********************************************************************************************************/
void TargetResetInit( void )
{
#ifdef __DEBUG    
	MEMMAP = 0x3;   				//remap
	//中断向量重新映射,它位于用户外部Flash的起始地址;
#endif

#ifdef __OUT_CHIP    
	MEMMAP = 0x3;   				//remap
	//中断向量重新映射,它位于用户外部Flash的起始地址;
#endif

#ifdef __IN_CHIP	
	MEMMAP = 0x1;   				//remap
	//中断向量不重新映射,它位于内部Flash的起始地址;
#endif

	/* 设置系统各部分时钟 */
	PLLCON = 1;
#if (Fpclk / (Fcclk / 4)) == 1
	VPBDIV = 0;
#endif
#if (Fpclk / (Fcclk / 4)) == 2
	VPBDIV = 2;
#endif
#if (Fpclk / (Fcclk / 4)) == 4
	VPBDIV = 1;
#endif

#if (Fcco / Fcclk) == 2
	PLLCFG = ( ( Fcclk / Fosc ) - 1 ) | ( 0 << 5 );
#endif
#if (Fcco / Fcclk) == 4
	PLLCFG = ( ( Fcclk / Fosc ) - 1 ) | ( 1 << 5 );
#endif
#if (Fcco / Fcclk) == 8
	PLLCFG = ( ( Fcclk / Fosc ) - 1 ) | ( 2 << 5 );
#endif
#if (Fcco / Fcclk) == 16
	PLLCFG = ( ( Fcclk / Fosc ) - 1 ) | ( 3 << 5 );
#endif
	PLLFEED = 0xaa;
	PLLFEED = 0x55;
	while ( ( PLLSTAT & ( 1 << 10 ) ) == 0 );
	PLLCON = 3;
	PLLFEED = 0xaa;
	PLLFEED = 0x55;

	/* 设置存储器加速模块 */
	MAMCR = 0;
#if Fcclk < 20000000
	MAMTIM = 1;
#else
#if Fcclk < 40000000
	MAMTIM = 2;
#else
	MAMTIM = 3;
#endif
#endif
	MAMCR = 2;

	/* 初始化VIC */
	VICIntEnClr = 0xffffffff;
	VICVectAddr = 0;
	VICIntSelect = 0;

	/* 添加自己的代码 */
	PortInit() ;
}

/*********************************************************************************************************
**  						  End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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