?? option.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 + -