?? option.inc
字號:
;/*
;************************************************************************************************************
;* 江西師范大學理電學院創(chuàng)新中心
;*
;* 創(chuàng)新研發(fā)小組
;*
;*--------------------------------------------- 文件信息 -----------------------------------------------------
;* 文件名稱 : Option.inc
;* 文件功能 : 該文件為S3C44B0硬件平臺的CPU的配置文件,包括各相關(guān)寄存器地址的定義,ISR開始地址定義,總線寬度定義
;* 時鐘頻率配置,異常模式向量跳轉(zhuǎn)宏定義,向量中斷跳轉(zhuǎn)宏定義。
;* 補充說明 : 基于S3C44B0的ARM7硬件平臺的CPU配置文件
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : zhouhong
;* 修改日期 : 2006/04/20
;* 版本聲明 : V1.0.1
;*-------------------------------------------- 歷史版本信息 -------------------------------------------------
;* 文件作者 :
;* 創(chuàng)建日期 :
;* 版本聲明 :
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/
;/************************************ 中斷控制寄存器的地址定義 ********************************************/
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
;/************************************** 預(yù)定義處理器模式常量 **********************************************/
USERMODE EQU 0x10
FIQMODE EQU 0x11
IRQMODE EQU 0x12
SVCMODE EQU 0x13
ABORTMODE EQU 0x17
UNDEFMODE EQU 0x1b
SYSMODE EQU 0x1f
NOINT EQU 0xc0
;/*************************************** 異常模式向量跳轉(zhuǎn)宏定義 *******************************************/
MACRO
$HandlerLabel HANDLER $HandleLabel
$HandlerLabel
sub sp,sp,#4 ;//sp 減4是為了存儲跳轉(zhuǎn)地址用
stmfd sp!,{r0} ;//工作寄存器r0入棧(LR不入棧,因為它返回到原始地址)
ldr r0,=$HandleLabel ;//加載 HandleXXX的地址到 r0寄存器
ldr r0,[r0] ;//加載HandleXXX的內(nèi)容(即服務(wù)子程序的起始地址)到r0寄存器
str r0,[sp,#4] ;//r0寄存器內(nèi)容入棧
ldmfd sp!,{r0,pc} ;//原r0工作寄存器內(nèi)容和跳轉(zhuǎn)到ISR的地址出棧
MEND
;/************************************** 向量中斷跳轉(zhuǎn)宏定義 ************************************************/
MACRO
$VHandlerLabel VHANDLER $VHandleLabel
$VHandlerLabel
sub sp,sp,#4 ;//sp 減4是為了存儲跳轉(zhuǎn)地址用
stmfd sp!,{r0} ;//工作寄存器入棧r0(LR不入棧,因為它返回到原始地址)
ldr r0,=I_ISPR ;//把中斷掛起寄存器地址放入r0
ldr r0,[r0] ;//把中斷掛起寄存器內(nèi)容放入r0
cmp r0,#0x0 ;//比較,看是否有中斷產(chǎn)生
beq %F0 ;//若無中斷產(chǎn)生,跳到標號0處
ldr r0,=$VHandleLabel ;//加載 VHandleXXX的地址到 r0寄存器
ldr r0,[r0] ;//加載VHandleXXX的內(nèi)容(即服務(wù)子程序的起始地址)到r0寄存器
str r0,[sp,#4] ;//r0寄存器內(nèi)容入棧
ldmfd sp!,{r0,pc} ;//原r0工作寄存器內(nèi)容和跳轉(zhuǎn)到ISR的地址出棧
0 stmfd sp!,{r1} ;//工作寄存器r1入棧(LR不入棧,因為它返回到原始地址)
ldr r0,=I_PMST ;//把中斷主從優(yōu)先級分配器地址放入r0
ldr r1,[r0] ;//把其里面的內(nèi)容放入r1
str r1,[r0] ;//把寄存器r1的內(nèi)容放入中斷主從優(yōu)先級分配器地址
ldmfd sp!,{r0,r1} ;//原r0,r1工作寄存器內(nèi)容出棧//是否r0r1應(yīng)該交換?
add sp,sp,#4 ;//指針堆棧加4
subs pc,lr,#4
MEND
;/************************************ GCS1:256K SRAM ISR的開始地址 ****************************************/
_ISR_STARTADDRESS EQU 0x0C7fff00
;/**************************************** CPU的總線寬度配置 ***********************************************/
;BUSWIDTH; 16,32
GBLA BUSWIDTH
BUSWIDTH SETA 16
;/******************************* 用于GCS6、GCS7的參數(shù)定義"DRAM","SDRAM" ***********************************/
;"DRAM","SDRAM"
GBLS BDRAMTYPE
BDRAMTYPE SETS "SDRAM"
;/**************************************** 鎖相環(huán)倍頻啟動配置 **********************************************/
GBLL PLLONSTART
PLLONSTART SETL {TRUE}
;/****************************************** 鎖相環(huán)倍頻配置 ************************************************/
GBLA PLLCLK
PLLCLK SETA 60000000
[ PLLCLK = 40000000 ;Fin=10MHz Fout=40MHz
M_DIV EQU 0x48
P_DIV EQU 0x3
S_DIV EQU 0x2
]
[ PLLCLK = 50000000 ;Fin=10MHz Fout=50MHz
M_DIV EQU 0x2a
P_DIV EQU 0x3
S_DIV EQU 0x1
]
[ PLLCLK = 60000000 ;Fin=10MHz Fout=60MHz
M_DIV EQU 0x34
P_DIV EQU 0x3
S_DIV EQU 0x1
]
;/**********************************************************************************************************/
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -