📄 target.c
字号:
/*
;************************************************************************************************************
;* 北京精仪达盛科技有限公司
;* 研 发 部
;*
;* http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------
;*
;* 文件名称 : Main.c
;* 文件功能 : 该文件为S3C2410硬件平台初始化主程序。
;* 补充说明 :
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM开发小组
;* 修改日期 : 2005/08/1
;* 版本声明 : V1.0.1
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : ARM开发小组
;* 创建日期 : 2004/04/20
;* 版本声明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/
#include <stdlib.h>
#include <string.h>
#include "..\..\Application\inc\config.h"
/*
*************************************************************************************************************
-
- 程序段说明 : 以下函数为各异常模式服务子程序。设成死循环是为调试用,一旦发生此类异常,程序便跳入异常模式服务
- 子程序,终止程序运行。
-
*************************************************************************************************************
*/
void HaltUndef(void)
{
Uart_Printf("Undefined instruction exception.\n");
while(1);
}
void HaltSwi(void)
{
Uart_Printf("SWI exception.\n");
while(1);
}
void HaltPabort(void)
{
Uart_Printf("Pabort exception.\n");
while(1);
}
void HaltDabort(void)
{
Uart_Printf("Dabort exception.\n");
while(1);
}
/*
*************************************************************************************************************
-
- 程序段说明 : 以下函数均为初始化函数
-
*************************************************************************************************************
*/
/*
*************************************************************************************************************
- 函数名称 : Exep_S3cint_Init(void)
- 函数说明 : 异常及中断控制器的初始化
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void Isr_Init(void)
{
pISR_UNDEF = (unsigned)HaltUndef;
pISR_SWI = (unsigned)HaltSwi;
pISR_PABORT = (unsigned)HaltPabort;
pISR_DABORT = (unsigned)HaltDabort;
rINTMOD = 0x0; //All=IRQ mode
rINTMSK = BIT_ALLMSK; //All interrupt is masked.
rINTSUBMSK = BIT_SUB_ALLMSK; //All sub-interrupt is masked. <- April 01, 2002 SOP
}
/*
*************************************************************************************************************
- 函数名称 : void Timer1_init(void)
- 函数说明 : 定时器初始化程序
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void Timer1_init(void)
{
rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000; //配置GPG口为信号输出
rGPGDAT = rGPGDAT | 0x300;
rTCFG0 = 255; // Prescaler0=255
rTCFG1 = 0 << 4; //
rTCNTB1 = 48828; // 在pclk=50MHZ下,1秒钟的记数值rTCNTB1 = 50000000 / 4 / 256 = 48828;
rTCMPB1 = 0x00;
rTCON = (1 << 11) | (1 << 9) | (0 << 8); //禁用定时器1,手动加载
rTCON = (1 << 11) | (0 << 9) | (1 << 8); //启动定时器1,自动装载
}
/*
*************************************************************************************************************
- 函数名称 : void __irq Timer1_ISR( void )
- 函数说明 : 定时器中断服务子程序
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
int flag;
void __irq Timer1_ISR( void )
{
if (flag == 0)
{
rGPGDAT = rGPGDAT & 0xeff | 0x200;
flag = 1;
}
else
{
rGPGDAT = rGPGDAT & 0xdff | 0x100;
flag = 0;
}
rSRCPND |= BIT_TIMER1;
rINTPND |= BIT_TIMER1;
}
/*
*************************************************************************************************************
- 函数名称 : void Timer1INT_Init(void)
- 函数说明 : 定时器中断初始化程序
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void Timer1INT_Init(void) //定时器接口使能
{
if ((rINTPND & BIT_TIMER1))
{
rSRCPND |= BIT_TIMER1;
}
pISR_TIMER1 = (int)Timer1_ISR;
rINTMSK &= ~(BIT_TIMER1); //开中断;
}
/*
*************************************************************************************************************
- 函数名称 : TargetInit(void)
- 函数说明 : 目标板初始化程序,主函数中只需调用此函数,即可完成目标板的初始化
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void Target_Init(void)
{
MMU_Init();
ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz
Isr_Init();
Port_Init();
Timer1_init();
Timer1INT_Init();
Uart_Init(0,115200);
Uart_Select(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -