📄 init.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 + -