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

📄 system_init.c

📁 dsp5509a USB 驱动 pc端程序 下面还有 dsp端程序
💻 C
字号:
#include "global.h"

#include "hal.h"
/*
 * 1. Clock Generator 
 */
void ClockGeneratorIni(int clk_pll_mult,int clk_pll_div)
{
	*CLKMD_lz = CLOCK_IAI
	+ CLOCK_IOB
	+ CLOCK_PLL_MULT(clk_pll_mult)			/* multiply */
	+ CLOCK_PLL_DIV(clk_pll_div)			/* divide */
	+ CLOCK_PLL_ENABLE
	+ CLOCK_BREAKLN
	+ CLOCK_LOCK;
}



Int16 System_Init()
{

	ClockGeneratorIni(4,0);
	EMIF_module_init();

	User_var_init();

	USB_module_init();
	return	SUCCESS;
}


/*External memory bus interface Initialize*/
Int16 EMIF_module_init()
{
	EMI_RST	= 0x0001;	//EMIF reset
	INIT	= 0x0001;	//SDRAM reset
	
	EGCR	= 0x022e;	//EMIF global control register

	CE0_1	= 0x1fff;	//CE0 is for CPLD
	CE0_2	= 0x5fff;
	CE0_3	= 0x0000;
	
	CE1_1	= 0x1fff;	//CE1 is for FLASH
	CE1_2	= 0x5fff;
	CE1_3	= 0x0000;
	
	CE2_1	= 0x3fff;	//CE2 is for 16bit-SDRAM
	CE2_2	= 0x5fff;
	CE2_3	= 0x0000;
	
	CE3_1	= 0x3fff;	
	CE3_2	= 0x5fff;
	CE3_3	= 0x0000;
	
	SDC1	= 0x8100;//0xF148;//0x8100;	//SDRAM Control Registers
	SDPER	= 0x0080;//0x0080;
	SDC2	= 0x03FF;//0x03ff;
	
	return	SUCCESS;
}

/*Non-multiplexed general purpose I/O Initialize*/
Int16 GPIO_module_init()
{
	ioport int *ptr;
	ptr = (int*)0x3400;
	*ptr = 0x00F0;	/*Set GPIO pin4--pin7 as output*/
	return	SUCCESS;
}

Int16 Set_GPIO_Val(Int16 pin,Int16 val)
{
	ioport int *ptr;
	ptr = (int*)0x3401;
	*ptr = (0x1<<pin)*val;
	return	SUCCESS;
}

/*Interrupt Initialize*/
Int16 IRQ_module_init()
{
	return	SUCCESS;
}

/*Multi-channel buffered serial port Initialize*/
Int16 MCBSP_module_init()
{

	return	SUCCESS;
}


/*PLL Initialize*/
//      0 <= MutiNum <=12
Int16 PLL_module_init(Int16 MutiNum) 
{
	CLKMD = 0x2002;

	CLKMD |= (MutiNum<<7);
	
	CLKMD |= 0x10; //enable PLL
	
	return	SUCCESS;
}


/*Timer peripheral Initialize*/
Int16 TIMER_module_init()
{
	return	SUCCESS;
}


/*USB peripheral Initialize*/
Int16 USB_module_init()
{
	LoadUsbModle();
	return	SUCCESS;
}

/*User custom variable Initialize*/
Int16 User_var_init()
{
	int i;
	for(i=0;i<4;i++)
	UsbRxBuf[i] = 0xFF;
	return	SUCCESS;
}

/*Delay T ms*/
void Delayms(unsigned int T)
{
	unsigned int n;
	for(n = 0; n < T; n++)
	{	
		asm("	RPT #10000");
		asm("	NOP");
	}		
}

⌨️ 快捷键说明

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