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

📄 init.c

📁 这是一个片内flash的驱动程序
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                                      
**                                          
**                                杭州央海软件科技有限公司
**
**                                 http://www.armgcc.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: init.c
** 创建日期: 2006年5月25日
** 描    述: 目标板初始化函数定义
**
**--------------历史版本--------------------------------------------------------------------------------
** 修 改 人: 罗辉联 	
** 版    本: V1.0
** 日   期: 2006年5月25日
** 描   述: 原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#include "config.h"

/**************************************系统初始化函数原型************************************************/

void vectors_remap(void);
void arm_clock_init(void);
void emi_cs_init(void);

/*********************************************************************************************************
** 函数名称: target_init
** 功能描述: 目标板系统级低级初始化
** 
** 参    数: 无
**  
** 返 回 值: 无
**         
** 作   者: 罗辉联
** 日   期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 
** 日   期: 
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void target_init(void)
{
	vectors_remap();		/* 异常向量映射      */
	WDG_CR &= ~0x01;			/* 禁止WatchDog      */
	arm_clock_init();		/* 初始化ARM时钟系统 */
	emi_cs_init();			/* 初始化EMI,CS      */
		
}
/*********************************************************************************************************
** 函数名称: vectors_remap
** 功能描述: 异常向量表重新映射
** 
** 参    数: 无
**  
** 返 回 值: 无
**         
** 作   者: 罗辉联
** 日   期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 
** 日   期: 
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void vectors_remap(void)
{
	PCU_BOOTCR &= 0xFC;			//执行重映射命令
	PCU_BOOTCR |= 0x02;			//00_FLASH 10_RAM 11_EXTMEM
}

/*********************************************************************************************************
** 函数名称: arm_clock_init
** 功能描述: 配置ARM时钟系统: MAINOSC/2 =8M MUL =12, DIV =2, SO MCLK = RCLK = 48M
** 
** 参    数: 无
**  
** 返 回 值: 无
**         
** 作   者: 罗辉联
** 日   期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 
** 日   期: 
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void arm_clock_init(void)
{
			 
	RCCU_CKDIV2Config(ENABLE);						// Enable CK Divide 2 (MAINOSC/2)
	
	RCCU_MCLKConfig(RCCU_DEFAULT);					// 配置 MCLK = RCLK 
	//RCCU_MCLKConfig(RCCU_RCLK_2);	
	
	RCCU_FCLKConfig(RCCU_DEFAULT);					// 配置 FCLK = RCLK
	//RCCU_FCLKConfig(RCCU_RCLK_2);
	
	//RCCU_PCLKConfig(RCCU_DEFAULT);				// 配置 PCLK = RCLK/2
	RCCU_PCLKConfig(RCCU_RCLK_2);
	
	RCCU_PLL1Config(RCCU_MUL_12, RCCU_DIV_2) ;		// 配置 PLL1 ( * 12 , / 2 )
	//RCCU_PLL1Config(RCCU_MUL_12, RCCU_DIV_4) ;	// 配置 PLL1 ( * 12 , / 4 )
	
	while(RCCU_FlagBitObtain(RCCU_PLL1_LOCK) == RESET);// 等待 PLL1 锁定
	
	RCCU_RCLKConfig(RCCU_PLL1_OUTPUT);				// 选择PLL1_OUTPUT作为RCLK时钟
		
}
/*********************************************************************************************************
** 函数名称: emi_cs_init
** 功能描述: 初始化片选
** 
** 参    数: 无
**  
** 返 回 值: 无
**         
** 作   者: 罗辉联
** 日   期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 
** 日   期: 
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void emi_cs_init(void)
{	
	//根据实际的目标板配置
	EMI_Config(CS0, EMI_ENABLE, EMI_SIZE_16,7);
	EMI_Config(CS1, EMI_ENABLE, EMI_SIZE_16,10);
	EMI_Config(CS2, EMI_ENABLE, EMI_SIZE_16,7);
	EMI_Config(CS3, EMI_ENABLE, EMI_SIZE_8,15);
	
	
}


/****************************************end of file*******************************************/



⌨️ 快捷键说明

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