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

📄 option.inc

📁 ARM7(s3c44b0)开发平台LCD驱动程序
💻 INC
字号:
;/*
;************************************************************************************************************
;*				        				北京精仪达盛科技有限公司
;*                                     	     研    发    部
;*
;*                                 	     http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;* 文件名称 : Option.inc	
;* 文件功能 : 该文件为S3C44B0硬件平台的CPU的配置文件,包括各相关寄存器地址的定义,ISR开始地址定义,总线宽度定义
;*            时钟频率配置,异常模式向量跳转宏定义,向量中断跳转宏定义。
;* 补充说明 : 基于S3C44B0的ARM7硬件平台的CPU配置文件
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM开发小组
;* 修改日期 : 2004/04/25
;* 版本声明 : V1.0.1
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : ARM开发小组
;* 创建日期 : 2004/04/20
;* 版本声明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/
;/************************************ 中断控制寄存器的地址定义 ********************************************/

INTPND	    EQU		0x01e00004
INTMOD	    EQU		0x01e00008
INTMSK	    EQU		0x01e0000c
I_ISPR	    EQU		0x01e00020
I_CMST	    EQU		0x01e0001c
I_PMST      EQU 	0x01e00014

;/************************************ 看门狗控制器寄存器的地址定义 ****************************************/

WTCON	    EQU		0x01d30000

;/************************************ 时钟控制寄存器的地址定义 ********************************************/

PLLCON	    EQU		0x01d80000
CLKCON	    EQU		0x01d80004
LOCKTIME    EQU		0x01d8000c
	
;/*************************************** 存储器控制寄存器 *************************************************/

REFRESH	    EQU 	0x01c80024
;/*************************************** DMA 控制寄存器 ****************************************************/
BDIDES0     EQU     0x01f80008
BDIDES1     EQU     0x01f80028

;/************************************** 预定义处理器模式常量 **********************************************/

USERMODE    EQU		0x10
FIQMODE	    EQU		0x11
IRQMODE	    EQU		0x12
SVCMODE	    EQU		0x13
ABORTMODE   EQU		0x17
UNDEFMODE   EQU		0x1b
SYSMODE     EQU 	0x1f
NOINT	    EQU		0xc0

;/*************************************** 异常模式向量跳转宏定义 *******************************************/

    MACRO
$HandlerLabel HANDLER $HandleLabel

$HandlerLabel
    sub	    sp,sp,#4	    	                                               ;//sp 减4是为了存储跳转地址用
    stmfd   sp!,{r0}	    	                         ;//工作寄存器r0入栈(LR不入栈,因为它返回到原始地址)
    ldr	    r0,=$HandleLabel	                                          ;//加载 HandleXXX的地址到 r0寄存器
    ldr	    r0,[r0]	    	                        ;//加载HandleXXX的内容(即服务子程序的起始地址)到r0寄存器 
    str	    r0,[sp,#4]	    	                                                         ;//r0寄存器内容入栈
    ldmfd   sp!,{r0,pc}	    	                                  ;//原r0工作寄存器内容和跳转到ISR的地址出栈
    MEND
    
;/************************************** 向量中断跳转宏定义 ************************************************/

    MACRO
$VHandlerLabel VHANDLER $VHandleLabel

$VHandlerLabel
    sub	    sp,sp,#4	     	                                                ;//sp 减4是为了存储跳转地址用
    stmfd   sp!,{r0}		                              ;//工作寄存器入栈r0(LR不入栈,因为它返回到原始地址)
    ldr     r0,=I_ISPR       	                                               ;//把中断挂起寄存器地址放入r0
    ldr     r0,[r0]		                                                       ;//把中断挂起寄存器内容放入r0
    cmp     r0,#0x0		                                                           ;//比较,看是否有中断产生
    beq         %F0		                                                        ;//若无中断产生,跳到标号0处
    
    ldr	    r0,=$VHandleLabel	                                         ;//加载 VHandleXXX的地址到 r0寄存器
    ldr	    r0,[r0]	    	                       ;//加载VHandleXXX的内容(即服务子程序的起始地址)到r0寄存器
    str	    r0,[sp,#4]	     	                                                         ;//r0寄存器内容入栈
    ldmfd   sp!,{r0,pc}	     	                                  ;//原r0工作寄存器内容和跳转到ISR的地址出栈
    
0   stmfd   sp!,{r1}		                             ;//工作寄存器r1入栈(LR不入栈,因为它返回到原始地址)
    ldr     r0,=I_PMST		                                            ;//把中断主从优先级分配器地址放入r0
    ldr     r1,[r0]		                                                            ;//把其里面的内容放入r1
    str     r1,[r0]    		                                 ;//把寄存器r1的内容放入中断主从优先级分配器地址
    
    ldmfd   sp!,{r0,r1}                                      ;//原r0,r1工作寄存器内容出栈//是否r0r1应该交换?
    add     sp,sp,#4		                                                                 ;//指针堆栈加4
    subs    pc,lr,#4  			
    MEND 
    
;/************************************ GCS1:256K SRAM ISR的开始地址 ****************************************/
    
_ISR_STARTADDRESS   EQU   0x0C7fff00 	

;/**************************************** CPU的总线宽度配置 ***********************************************/ 

                GBLA    BUSWIDTH
BUSWIDTH	SETA    16		

;/******************************* 用于GCS6、GCS7的参数定义"DRAM","SDRAM" ***********************************/

                GBLS    BDRAMTYPE
BDRAMTYPE	SETS    "SDRAM"

;/**************************************** 锁相环倍频启动配置 **********************************************/

        	GBLL    PLLONSTART		
PLLONSTART      SETL    {TRUE}

;/****************************************** 锁相环倍频配置 ************************************************/

		GBLA	PLLCLK
PLLCLK		SETA	60000000 		                                                            ;// 系统时钟

	[ PLLCLK = 40000000			                                       ;// 输入频率 =8MHz    输出频率 =40MHz
M_DIV	EQU		0x2A
P_DIV	EQU		0x3
S_DIV	EQU		0x1		
	]

	[ PLLCLK = 60000000			                                       ;// 输入频率 =8MHz    输出频率 =60MHz
M_DIV	EQU		0x43
P_DIV	EQU		0x3
S_DIV	EQU		0x1		
	]
	
	[ PLLCLK = 66000000			                                       ;// 输入频率 =8MHz    输出频率 =66MHz
M_DIV	EQU		0x50
P_DIV	EQU		0x4
S_DIV	EQU		0x1		
	]
;/**********************************************************************************************************/
	END

⌨️ 快捷键说明

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