欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
arm匯編程序S3C2440
[打印本頁]
作者:
xiaoliuzi
時間:
2017-7-10 16:49
標題:
arm匯編程序S3C2440
pWTCON EQU 0x53000000 ;看門狗定時器口地址
pLOCKTIME EQU 0x4c000000 ;鎖定時間計數值寄存器地址
pCLKDIVN EQU 0x4c000014 ;時鐘控制寄存器地址
pUPLLCON EQU 0x4c000008 ;
pMPLLCON EQU 0x4c000004
pBWSCON EQU 0x48000000 ;設置數據總線寬度與等待狀態控制寄存器地址
pSRCPND EQU 0x4a000000 ;中斷源狀態寄存器地址
pINTPND EQU 0x4a000010 ;中斷狀態寄存器地址
pINTMOD EQU 0x4a000004 ;中斷模式寄存器地址
pINTMSK EQU 0x4a000008 ;中斷屏蔽寄存器地址
pINTSUBMSK EQU 0x4a00001c ;子中斷狀態源寄存器地址
pINTOFFSET EQU 0x4a000014 ;中斷源偏移地址寄存器地址
pGPFCON EQU 0x56000050 ;GPIO F口控制寄存器地址
pGPFUP EQU 0x56000058 ;F口上拉電阻控制寄存器地址
_ISR_STARTADDRESS EQU 0x33FFFF00 ;中斷服務向量表起始地址
vCLKDIVN EQU 0x5
vUPLLCON EQU 0x00038022
vMPLLCON EQU 0x0005c011
vU_MDIV EQU 56 ;Fin=12.0MHz Fout=48MHz
vU_PDIV EQU 2
DW16 EQU (0x1)
DW32 EQU (0x2)
B1_BWSCON EQU (DW16) ; AMD flash(AM29LV160DB), 16-bit, for nCS1
B2_BWSCON EQU (DW16) ; PCMCIA(PD6710), 16-bit
B3_BWSCON EQU (DW16) ; Ethernet(CS8900), 16-bit
B4_BWSCON EQU (DW32) ; Intel Strata(28F128), 32-bit, for nCS4
B5_BWSCON EQU (DW16) ; A400/A410 Ext, 16-bit
B6_BWSCON EQU (DW32) ; SDRAM(K4S561632C) 32MBx2, 32-bit
B7_BWSCON EQU (DW32) ; N.C.
;BANK0CON
B0_Tacs EQU 0x3 ;0clk
B0_Tcos EQU 0x3 ;0clk
B0_Tacc EQU 0x7 ;14clk
B0_Tcoh EQU 0x3 ;0clk
B0_Tah EQU 0x3 ;0clk
B0_Tacp EQU 0x1
B0_PMC EQU 0x0 ;normal
;BANK1CON
B1_Tacs EQU 1;0x0 ;0clk
B1_Tcos EQU 1;0x0 ;0clk
B1_Tacc EQU 6;0x7 ;14clk
B1_Tcoh EQU 1;0x0 ;0clk
B1_Tah EQU 1;0x0 ;0clk
B1_Tacp EQU 0x0
B1_PMC EQU 0x0 ;normal
;Bank 2 parameter
B2_Tacs EQU 1;0x0 ;0clk
B2_Tcos EQU 1;0x0 ;0clk
B2_Tacc EQU 6;0x7 ;14clk
B2_Tcoh EQU 1;0x0 ;0clk
B2_Tah EQU 1;0x0 ;0clk
B2_Tacp EQU 0x0
B2_PMC EQU 0x0 ;normal
;Bank 3 parameter
B3_Tacs EQU 0x1;0 ;0clk
B3_Tcos EQU 0x1;0 ;0clk
B3_Tacc EQU 0x6;7 ;14clk
B3_Tcoh EQU 0x1;0 ;0clk
B3_Tah EQU 0x1;0 ;0clk
B3_Tacp EQU 0x0
B3_PMC EQU 0x0 ;normal
;Bank 4 parameter
B4_Tacs EQU 0x1;0 ;0clk
B4_Tcos EQU 0x1;0 ;0clk
B4_Tacc EQU 0x6;7 ;14clk
B4_Tcoh EQU 0x1;0 ;0clk
B4_Tah EQU 0x1;0 ;0clk
B4_Tacp EQU 0x0
B4_PMC EQU 0x0 ;normal
;Bank 5 parameter
B5_Tacs EQU 0x1;0 ;0clk
B5_Tcos EQU 0x1;0 ;0clk
B5_Tacc EQU 0x6;7 ;14clk
B5_Tcoh EQU 0x1;0 ;0clk
B5_Tah EQU 0x1;0 ;0clk
B5_Tacp EQU 0x0
B5_PMC EQU 0x0 ;normal
;Bank 6 parameter
B6_MT EQU 0x3 ;SDRAM
B6_Trcd EQU 0x1 ;3clk
B6_SCAN EQU 0x1 ;9bit
;Bank 7 parameter
B7_MT EQU 0x3 ;SDRAM
B7_Trcd EQU 0x1 ;3clk
B7_SCAN EQU 0x1 ;9bit
;REFRESH parameter
REFEN EQU 0x1 ;Refresh enable
TREFMD EQU 0x0 ;CBR(CAS before RAS)/Auto refresh
Trp EQU 0x1 ;3clk
Tsrc EQU 0x1 ;5clk Trc= Trp(3)+Tsrc(5) = 8clock
Tchr EQU 0x2 ;3clk
REFCNT EQU 1268;1463;1268 ;HCLK=105Mhz, (2048+1-7.81*100);75M->1463
;CPSR中各種工作模式的設置信息
USERMODE EQU 0x10
FIQMODE EQU 0x11
IRQMODE EQU 0x12
SVCMODE EQU 0x13
ABORTMODE EQU 0x17
UNDEFMODE EQU 0x1b
MODEMASK EQU 0x1f
NOINT EQU 0xc0
;各種工作模式下堆棧指針初值設置
UserStack EQU 0x33ff4800
SVCStack EQU 0x33ff5800
UndefStack EQU 0x33ff5c00
AbortStack EQU 0x33ff6000
IRQStack EQU 0x33ff7000
FIQStack EQU 0x33ff8000
AREA Init,CODE,READONLY
ENTRY
EXPORT __ENTRY
__ENTRY
ResetEntry
b _reset
b . ;handler for Undefined mode
b . ;handler for SWI interrupt
b . ;handler for PAbort
b . ;handler for DAbort
b . ;reserved
b IsrIRQ ;handler for IRQ interrupt
b . ;handler for FIQ interrupt
;SDRAM參數設置,包括數據寬度,刷新模式和頻率
SMRDATA
DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) ;GCS0
DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) ;GCS1
DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) ;GCS2
DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) ;GCS3
DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) ;GCS4
DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) ;GCS5
DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) ;GCS6
DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) ;GCS7
DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Tsrc<<18)+(Tchr<<16)+REFCNT)
DCD 0x32 ;SCLK power saving mode, BANKSIZE 128M/128M
DCD 0x30 ;MRSR6 CL=3clk
DCD 0x30 ;MRSR7 CL=3clk
IsrIRQ
sub sp,sp,#4
stmfd sp!,{r8-r9}
ldr r9,=pINTOFFSET
ldr r9,[r9]
ldr r8,=HandleEINT0
add r8,r8,r9,lsl #2
ldr r8,[r8]
str r8,[sp,#8]
ldmfd sp!,{r8-r9,pc}
LTORG
_reset
ldr r0,=pWTCON ;關閉看門狗定時器
ldr r1,=0x0
str r1,[r0]
ldr r0,=pINTMSK
ldr r1,=0xffffffff ;屏蔽所有中斷請求
str r1,[r0]
ldr r0,=pINTSUBMSK
ldr r1,=0x7fff ;關閉所有子中斷請求,1為無中斷請求,0~14為有效設置位,其余為保留位。
str r1,[r0]
;設置PLL鎖存時間 To reduce PLL lock time, adjust the LOCKTIME register.
ldr r0,=pLOCKTIME
ldr r1,=0xffffff
str r1,[r0]
ldr r0,=pCLKDIVN
ldr r1,=vCLKDIVN ; 0=1:1:1, 1=1:1:2, 2=1:2:2, 3=1:2:4, 4=1:4:4, 5=1:4:8, 6=1:3:3, 7=1:3:6.
str r1,[r0]
;Configure UPLL
ldr r0,=pUPLLCON
ldr r1,=vUPLLCON ;Fin = 12.0MHz, UCLK = 48MHz
str r1,[r0]
nop ;Caution: After UPLL setting, at least 7-clocks delay must be inserted for setting hardware be completed.
nop
nop
nop
nop
nop
nop
;Configure MPLL
ldr r0,=pMPLLCON
ldr r1,=vMPLLCON ;Fin = 12.0MHz, FCLK = 400MHz
str r1,[r0]
;設置SDRAM存儲器參數
;Set memory control registers
adrl r0, SMRDATA ;be careful!
ldr r1,=pBWSCON ;BWSCON Address
add r2, r0, #52 ;End address of SMRDATA
0
ldr r3, [r0], #4
str r3, [r1], #4
cmp r2, r0
bne %B0
InitStacks ;初始化可能用到的工作模式下的堆棧區
mrs r0,cpsr
bic r0,r0,#MODEMASK|NOINT
orr r1,r0,#IRQMODE
msr cpsr_cxsf,r1 ;IRQMode
ldr sp,=IRQStack ; IRQStack=0x33FF_7000
orr r1,r0,#FIQMODE
msr cpsr_cxsf,r1 ;FIQMode
ldr sp,=FIQStack ; FIQStack=0x33FF_8000
orr r1,r0,#USERMODE
msr cpsr_cxsf,r1
ldr sp,=UserStack
ldr pc,=Main
LTORG
Main
ldr r0,=pINTMOD
ldr r1,=0x0
str r1,[r0]
ldr r0,=pGPFCON
ldr r1,=0x080
str r1,[r0]
ldr r0,=pGPFUP
ldr r1,=0xff
str r1,[r0]
ldr r0,=HandleEINT0+0x0c
adrl r1,interrupt
str r1,[r0]
ldr r0,=0x20005000
ldr r1,=0x00
str r1,[r0]
ldr r0,=pINTMSK
ldr r1,=0x0FFFFFFF7
str r1,[r0]
wait_server
b .
;
mrs r0,cpsr
bic r0,r0,#MODEMASK|NOINT
orr r1,r0,#USERMODE
msr cpsr_cxsf,r1
b wait_server
LTORG
interrupt
;sub lr,r14,#4
stmfd sp!,{r8,r9,lr}
LOOP0
ldr r0,=0x20005000
ldr r1,=0x01
str r1,[r0]
bl Delay
ldr r0,=0x20005000
ldr r1,=0x03
str r1,[r0]
bl Delay
ldr r0,=0x20005000
ldr r1,=0x07
str r1,[r0]
bl Delay
ldr r0,=0x20005000
ldr r1,=0x0f
str r1,[r0]
bl Delay
ldr r0,=0x20005000
ldr r1,=0x00
str r1,[r0]
ldr r0,=pSRCPND
mov r1,#8
str r1,[r0]
ldr r0,=pINTPND
str r1,[r0]
ldmfd sp!,{r8,r9,pc}
LTORG
Delay
stmfd sp!,{r8,r9,lr}
ldr r7,=0x7a120
LOOP9 sub r7,r7,#1
cmp r7,#0
bne LOOP9
ldmfd sp!,{r8,r9,pc}
LTORG
AREA RamData,DATA,READWRITE
^ _ISR_STARTADDRESS
HandleEINT0 # 4
HandleEINT1 # 4
HandleEINT2 # 4
HandleEINT3 # 4
END
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1