亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? start.s

?? 這是一個實時的嵌入式操作系統的源代碼
?? S
字號:
;
; file:
;       start.S
; description:
;       s3c44b0 startup code.
;

; MEMORY AREA
_RAM_STARTADDRESS   EQU 0x0c000000
_RAM_ENDADDRESS     EQU 0x0c800000
_ROM_STARTADDRESS   EQU 0x00000000
_ROM_ENDADDRESS     EQU 0x00200000


; STACK DEFINITIONS
_FIQ_STACK_ADDRESS  EQU (_RAM_ENDADDRESS-0x00000)   ; 14K
_IRQ_STACK_ADDRESS  EQU (_RAM_ENDADDRESS-0x03800)   ; 14K
_ABT_STACK_ADDRESS  EQU (_RAM_ENDADDRESS-0x07000)   ; 1K
_SVC_STACK_ADDRESS  EQU (_RAM_ENDADDRESS-0x07400)   ; 2K
_UND_STACK_ADDRESS  EQU (_RAM_ENDADDRESS-0x07c00)   ; 1k
_USR_STACK_ADDRESS  EQU (_RAM_ENDADDRESS-0x08000)   ; 0K


; PROCESSOR MODE
FIQ_MODE    EQU     0x11        ; Fast Interrupt Mode (FIQ)
IRQ_MODE    EQU     0x12        ; Interrupt Mode (IRQ)
ABT_MODE    EQU     0x17        ; Abort Mode(ABT)
SVC_MODE    EQU     0x13        ; Supervisor Mode (SVC)
UND_MODE    EQU     0x1b        ; Undefine Mode(UDF)
USR_MODE    EQU     0x10        ; User Mode(USR)
SYS_MODE    EQU     0x1f        ; System Mode(SYS)
MODE_MSK    EQU     0x1f        ; Processor Mode Mask


; IRQ BITS
F_BIT       EQU     0x40        ; FIQ Disable
I_BIT       EQU     0x80        ; IRQ Disable
LOCKOUT     EQU     0xc0        ; Interrupt lockout mask value


; WATCHDOG TIMER SPECIAL REGISTERS
WTCON       EQU     0x01d30000
WTDAT       EQU     0x01d30004
WTCNT       EQU     0x01d30008


; INTERRUPT CONTROLLER SPECIAL REGISTERS
INTCON      EQU     0x01e00000
INTPND      EQU     0x01e00004
INTMOD      EQU     0x01e00008
INTMSK      EQU     0x01e0000c
I_ISPR      EQU     0x01e00020
I_ISPC      EQU     0x01e00024


; CPU WRAPPER SPECIAL REGISTERS
SYSCFG      EQU     0x01c00000
NCACHBE0    EQU     0x01c00004
NCACHBE1    EQU     0x01c00008
SBUSCON     EQU     0x01c40000


; CLOCK GENERATOR & POWER MANAGEMENT SPECIAL REGISTER
PLLCON      EQU     0x01d80000
CLKCON      EQU     0x01d80004
CLKSLOW     EQU     0x01d80008
LOCKTIME    EQU     0x01d8000c
M_DIV       EQU     56          ; Fin= 8MHz Fout=64MHz
P_DIV       EQU     2
S_DIV       EQU     1
;M_DIV      EQU     52          ; Fin=10MHz Fout=60MHz
;P_DIV      EQU     3
;S_DIV      EQU     1


; MEMORY CONTROLLER SPECIAL REGISGERS
BWSCON      EQU     0x01c80000
BANKCON0    EQU     0x01c80004
BANKCON1    EQU     0x01c80008
BANKCON2    EQU     0x01c8000c
BANKCON3    EQU     0x01c80010
BANKCON4    EQU     0x01c80014
BANKCON5    EQU     0x01c80018
BANKCON6    EQU     0x01c8001c
BANKCON7    EQU     0x01c80020
REFRESH     EQU     0x01c80024
BANKSIZE    EQU     0x01c80028
MRSRB6      EQU     0x01c8002c
MRSRB7      EQU     0x01c80030


; NON-CACHEABLE AREA CONTROL REGISTER (NCACHBEn)
NCACHESTART EQU     0x00000000  ; Non cache area start adddress 0x00000000
NCACHEEND   EQU     0xc0000000  ; Non cache area end address 0x0c000000


; STARTUP CODE
        AREA    start, CODE, READONLY, ALIGN=4
        CODE32

        ENTRY
        b       SystemResetHandler
        ldr     pc, =_RAM_STARTADDRESS+4    ; b       SystemUndefinedHandler
        ldr     pc, =_RAM_STARTADDRESS+8    ; b       SystemSwiHandler
        ldr     pc, =_RAM_STARTADDRESS+12   ; b       SystemPrefetchHandler
        ldr     pc, =_RAM_STARTADDRESS+16   ; b       SystemAbortHandler
        ldr     pc, =_RAM_STARTADDRESS+20   ; b       SystemReservedHandler
        ldr     pc, =_RAM_STARTADDRESS+24   ; b       SystemIrqHandler
        ldr     pc, =_RAM_STARTADDRESS+28   ; b       SystemFiqHandler
        LTORG


ConfigMemoryData
        DCD     0x11111112      ; BWSCON
        DCD     0x00000600      ; GCS0
        DCD     0x00007ffc      ; GCS1
        DCD     0x00007ffc      ; GCS2
        DCD     0x00007ffc      ; GCS3
        DCD     0x00007ffc      ; GCS4
        DCD     0x00007ffc      ; GCS5
        DCD     0x00018000      ; GCS6, SDRAM (MT = 11, Trcd = 0, SCAN = 0)
        DCD     0x00018000      ; GCS7, SDRAM (MT = 11, Trcd = 0, SCAN = 0)
    IF M_DIV = 56
        DCD     0x00800000+1050
    ENDIF

    IF M_DIV = 52
        DCD     0x00800000+1113
    ENDIF
                                ; Refresh(REFEN=1, TREFMD=0, Trp=2, Trc=5, Tchr=3)
                                ; If refresh period is 15.6 us and MCLK is 60 MHz,
                                ; the refresh count is as follows;
                                ; refresh count = 2^11 + 1 - 60x15.6 = 1113
        DCD     0x10            ; SCLK power down mode, BankSize 32M/32M
        DCD     0x20            ; MRSR 6(CL=2)
        DCD     0x20            ; MRSR 7(CL=2)


SystemReservedHandler
        b       SystemReservedHandler


SystemResetHandler
        ldr     r0, =WTCON
        ldr     r1, =0x8000
        str     r1,[r0]

        ldr     r0, =INTCON
        ldr     r1, =0x07
        str     r1, [r0]

        ldr     r0, =INTMOD
        ldr     r1, =0x00
        str     r1, [r0]

        ldr     r0, =INTMSK
        ldr     r1, =0x07ffffff
        str     r1, [r0]

        ldr     r0, =I_ISPC
        ldr     r1, =0x03ffffff
        str     r1, [r0]

        ldr     r0, =SYSCFG
        ldr     r1, =0x00
        str     r1, [r0]

        ldr     r0, =NCACHBE0
        ldr     r1, =NCACHESTART | NCACHEEND
        str     r1, [r0]

        ldr     r0, =NCACHBE1
        ldr     r1, =0x00
        str     r1, [r0]

        b       Initialize_Memory
        LTORG


Initialize_Memory
        mov     r0, pc
        ldr     r1, =_RAM_STARTADDRESS
        cmp     r0, r1
        ldr     r0, =ConfigMemoryData
        sublt   r0, r0, r1
        ldmia   r0, {r1-r13}
        ldr     r0, =BWSCON
        stmia   r0, {r1-r13}

        b       Initialize_Code
        LTORG


        IMPORT  |Image$$RO$$Base|
        IMPORT  |Image$$RO$$Limit|
        IMPORT  |Image$$RW$$Base|
        IMPORT  |Image$$RW$$Limit|
        IMPORT  |Image$$ZI$$Base|
        IMPORT  |Image$$ZI$$Limit|
Initialize_Code
        mov     r0, pc
        ldr     r1, =_RAM_STARTADDRESS
        cmp     r0, r1
        bge     Initialize_Clock

        ldr     r0, =_ROM_STARTADDRESS
        ldr     r1, =|Image$$RO$$Base|
        ldr     r2, =|Image$$ZI$$Base|
0
        cmp     r1, r2
        bge     %F1
        ldmia   r0!, {r3-r10}
        stmia   r1!, {r3-r10}
        b       %B0
1
        ldr     pc, =_RAM_STARTADDRESS
        LTORG


Initialize_Clock
        ldr     r0, =LOCKTIME
        ldr     r1, =0x0fff
        str     r1, [r0]

        ldr     r0, =PLLCON
        ldr     r1, =((M_DIV<<12)+(P_DIV<<4)+S_DIV)
        str     r1, [r0]

        ldr     r0, =CLKCON
        ldr     r1, =0x7ff8
        str     r1,[r0]

        b       Initialize_Vector
        LTORG


Initialize_Vector
        ldr     r0, =_RAM_STARTADDRESS;

        add     r0, r0, #4
        ldr     r1, =SystemUndefinedHandler
        sub     r1, r1, #8
        sub     r1, r1, r0
        mov     r1, r1, lsr#2
        orr     r1, r1, #0xea000000
        str     r1, [r0]

        add     r0, r0, #4
        ldr     r1, =SystemSwiHandler
        sub     r1, r1, #8
        sub     r1, r1, r0
        mov     r1, r1, lsr#2
        orr     r1, r1, #0xea000000
        str     r1, [r0]

        add     r0, r0, #4
        ldr     r1, =SystemPrefetchHandler
        sub     r1, r1, #8
        sub     r1, r1, r0
        mov     r1, r1, lsr#2
        orr     r1, r1, #0xea000000
        str     r1, [r0]

        add     r0, r0, #4
        ldr     r1, =SystemAbortHandler
        sub     r1, r1, #8
        sub     r1, r1, r0
        mov     r1, r1, lsr#2
        orr     r1, r1, #0xea000000
        str     r1, [r0]

        add     r0, r0, #4
        ldr     r1, =SystemReservedHandler
        sub     r1, r1, #8
        sub     r1, r1, r0
        mov     r1, r1, lsr#2
        orr     r1, r1, #0xea000000
        str     r1, [r0]

        add     r0, r0, #4
        ldr     r1, =SystemIrqHandler
        sub     r1, r1, #8
        sub     r1, r1, r0
        mov     r1, r1, lsr#2
        orr     r1, r1, #0xea000000
        str     r1, [r0]

        add     r0, r0, #4
        ldr     r1, =SystemFiqHandler
        sub     r1, r1, #8
        sub     r1, r1, r0
        mov     r1, r1, lsr#2
        orr     r1, r1, #0xea000000
        str     r1, [r0]

        b       Initialize_Stack
        LTORG


Initialize_Stack
        mov     r0, #0x00

        orr     r1, r0, #LOCKOUT|FIQ_MODE
        msr     cpsr_cxsf, r1
        ldr     sp, =_FIQ_STACK_ADDRESS

        orr     r1, r0, #I_BIT|IRQ_MODE
        msr     cpsr_cxsf, r1
        ldr     sp, =_IRQ_STACK_ADDRESS

        orr     r1, r0, #LOCKOUT|ABT_MODE
        msr     cpsr_cxsf, r1
        ldr     sp, =_ABT_STACK_ADDRESS

        orr     r1, r0, #LOCKOUT|UND_MODE
        msr     cpsr_cxsf, r1
        ldr     sp, =_UND_STACK_ADDRESS

        orr     r1, r0, #LOCKOUT|SVC_MODE
        msr     cpsr_cxsf, r1
        ldr     sp, =_SVC_STACK_ADDRESS

        b       Initialize_Data
        LTORG


Initialize_Data
        ldr     r0, =|Image$$RO$$Limit|
        ldr     r1, =|Image$$RW$$Base|
        ldr     r2, =|Image$$ZI$$Base|
        ldr     r3, =|Image$$ZI$$Limit|
        mov     r4, #0

        cmp     r0, r1
        beq     %F1
0
        cmp     r1, r2
        ldrcc   r5, [r0], #4
        strcc   r5, [r1], #4
        bcc     %B0
1
        cmp     r2, r3
        strcc   r4, [r2], #4
        bcc     %B1

        b       Initialize_Entry
        LTORG


        IMPORT  _os_entry
Initialize_Entry
        mov     r0, #SYS_MODE
        msr     cpsr_cxsf, r0
        ldr     sp, =_USR_STACK_ADDRESS

        bl      _os_entry
        b       .
        LTORG


        IMPORT  Isr_UndefineHandler
SystemUndefinedHandler
        stmfd   sp!, {r0-r3, ip, lr}
        sub     r0, lr, #4
        bl      Isr_UndefineHandler
        ldmfd   sp!, {r0-r3, ip, pc}^


        IMPORT Isr_SwiHandler
SystemSwiHandler
        stmfd   sp!, {r0-r3, ip, lr}
        sub     r0, lr, #4
        ldr     r1, [r0]
        bic     r1, r1, #0xff000000
        bl      Isr_SwiHandler
        ldmfd   sp!, {r0-r3, ip, pc}^


        IMPORT  Isr_PrefetchAbortHandler
SystemPrefetchHandler
        stmfd   sp!, {r0-r3, ip, lr}
        sub     r0, lr, #4
        bl      Isr_PrefetchAbortHandler
        ldmfd   sp!, {r0-r3, ip, lr}
        subs    pc, lr, #4


        IMPORT  Isr_DataAbortHandler
SystemAbortHandler
        stmfd   sp!, {r0-r3, ip, lr}
        sub     r0, lr, #8
        bl      Isr_DataAbortHandler
        ldmfd   sp!, {r0-r3, ip, lr}
        subs    pc, lr, #8


        IMPORT  _irq_entry
SystemIrqHandler
        stmfd   sp!, {r0-r3, ip, lr}

        ldr     r1, =I_ISPR
        ldr     r1, [r1]
        cmp     r1, #0x00       ; If the IDLE mode work-around is used, r1 may be 0 sometimes.
        beq     %F2
        mov     r0, #0x00
0
        movs    r1, r1, lsr #1
        bcs     %F1
        add     r0, r0, #1
        b       %B0
1
        mov     r2, #1
        mov     r2, r2, lsl r0
        ldr     r1, =I_ISPC
        str     r2, [r1]
        b       _irq_entry
2
        ldmfd   sp!, {r0-r3, ip, lr}
        subs    pc, lr, #4
        LTORG


        IMPORT  _irq_entry
SystemFiqHandler
        stmfd   sp!, {r0-r3, ip, lr}

        ldr     r1, =INTPND
        ldr     r1, [r1]
        cmp     r1, #0x00       ; If the IDLE mode work-around is used, r1 may be 0 sometimes.
        beq     %F2
        mov     r0, #0x00
0
        movs    r1, r1, lsr #1
        bcs     %F1
        add     r0, r0, #1
        b       %B0
1
        mov     r2, #1
        mov     r2, r2, lsl r0
        ldr     r1, =I_ISPC
        str     r2, [r1]
        b       _irq_entry
2
        ldmfd   sp!, {r0-r3, ip, lr}
        subs    pc, lr, #4
        LTORG


        END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91原创在线视频| 色国产综合视频| 国产精品电影院| 欧美日韩你懂得| 国产91高潮流白浆在线麻豆| 亚洲激情五月婷婷| 久久只精品国产| 欧美日韩高清一区二区三区| 成人永久免费视频| 看电影不卡的网站| 亚洲成人黄色小说| 自拍视频在线观看一区二区| 精品国产一区二区在线观看| 欧美亚洲高清一区二区三区不卡| 国产精品99久久久久久久vr| 青青国产91久久久久久| 成人欧美一区二区三区黑人麻豆| 欧美xxxxxxxx| 911精品国产一区二区在线| 色综合咪咪久久| 不卡视频一二三四| 国产一区二区按摩在线观看| 日韩av一区二区在线影视| 亚洲欧美日韩人成在线播放| 欧美高清在线精品一区| 精品电影一区二区三区| 欧美一区二区三区在| 欧美性受xxxx| 欧洲另类一二三四区| 91在线观看地址| 不卡的av中国片| 懂色av一区二区夜夜嗨| 国产精品一级在线| 国产精品一区一区三区| 精品在线免费观看| 美日韩一级片在线观看| 蜜臀av一级做a爰片久久| 日韩精品电影一区亚洲| 婷婷一区二区三区| 日本视频免费一区| 日本免费新一区视频| 日本亚洲欧美天堂免费| 日韩电影免费一区| 日韩av一级电影| 麻豆91在线播放免费| 麻豆国产精品视频| 精品一区二区三区香蕉蜜桃 | 色视频成人在线观看免| 99久久精品免费看国产| 91首页免费视频| 91麻豆swag| 欧美在线播放高清精品| 欧美日韩精品是欧美日韩精品| 欧美日韩国产免费一区二区| 91精品国产手机| 欧美成人精品3d动漫h| 久久久91精品国产一区二区精品| 国产视频一区在线观看| 国产精品美女久久久久久久久| 中文久久乱码一区二区| 亚洲人成网站影音先锋播放| 亚洲一区在线看| 日韩电影免费在线| 国产xxx精品视频大全| 99国产精品视频免费观看| 欧美亚洲国产一卡| 日韩亚洲欧美高清| 久久精品夜色噜噜亚洲a∨| 亚洲特级片在线| 亚洲va欧美va人人爽| 久久99久久久久| 成人福利视频在线看| 欧美性做爰猛烈叫床潮| 日韩一区二区不卡| 中文字幕乱码亚洲精品一区| 樱花草国产18久久久久| 人妖欧美一区二区| 懂色一区二区三区免费观看 | 欧美zozozo| 最新不卡av在线| 日本成人中文字幕| av在线不卡电影| 在线播放/欧美激情| 欧美国产日韩精品免费观看| 亚洲综合丝袜美腿| 国产乱码精品一品二品| 色欧美片视频在线观看在线视频| 欧美一级爆毛片| 中文字幕一区二区三区不卡在线 | 色噜噜偷拍精品综合在线| 91麻豆精品国产91久久久久| 欧美激情在线一区二区| 亚洲123区在线观看| 国产精品66部| 6080yy午夜一二三区久久| 国产亚洲一本大道中文在线| 亚洲国产欧美一区二区三区丁香婷| 精品一区二区免费在线观看| 色欧美片视频在线观看在线视频| 2欧美一区二区三区在线观看视频| 亚洲欧美韩国综合色| 国产一区二区三区免费播放| 欧美性生活影院| 国产精品久久久久三级| 精品一区二区三区不卡| 欧美精品久久99| 亚洲美女淫视频| 丰满白嫩尤物一区二区| 日韩精品一区二区三区四区视频 | 欧美一区二区免费视频| 亚洲欧美日韩综合aⅴ视频| 国产精品自在在线| 欧美一区二区三区日韩视频| 一区二区三区中文字幕精品精品| 国产成人精品免费网站| 日韩视频免费观看高清完整版| 亚洲在线一区二区三区| 99久久久久久| 国产欧美日韩精品a在线观看| 日韩福利视频导航| 欧美日韩一卡二卡三卡| 一区二区三区四区五区视频在线观看| 国产盗摄精品一区二区三区在线 | 国产**成人网毛片九色| 日韩欧美国产电影| 日韩在线a电影| 欧美日韩精品一区二区三区| 亚洲精品视频免费观看| 91在线视频播放地址| 国产精品日韩精品欧美在线| 国产在线精品一区二区夜色| 欧美不卡视频一区| 蜜桃精品视频在线观看| 日韩一区二区三区免费观看| 天堂成人国产精品一区| 欧美乱妇23p| 亚洲va欧美va人人爽| 欧美专区在线观看一区| 亚洲综合一二三区| 欧美日免费三级在线| 亚洲高清视频在线| 欧美日韩精品一区二区| 日韩精品电影在线观看| 日韩视频一区二区三区在线播放| 美女视频黄 久久| 日韩一级免费一区| 黑人巨大精品欧美一区| 久久久久久久免费视频了| 国产91在线看| 一区精品在线播放| 欧美在线综合视频| 午夜久久久影院| 日韩精品一区二区三区中文不卡| 狠狠色狠狠色综合| 中文字幕av免费专区久久| 97久久精品人人做人人爽50路 | 久久精品国产77777蜜臀| 精品少妇一区二区三区日产乱码 | 日本美女一区二区| 精品成人佐山爱一区二区| 国产福利一区二区三区| 最近日韩中文字幕| 欧美日韩高清在线| 国产乱码字幕精品高清av| 国产欧美一区二区精品性| 91亚洲午夜精品久久久久久| 亚洲一区二区黄色| 精品美女在线播放| 成人av免费网站| 亚洲午夜电影在线| 精品成人一区二区三区| 91视频.com| 免费国产亚洲视频| 中文字幕欧美激情| 欧美日韩高清在线| 国产精品性做久久久久久| 亚洲男人的天堂在线aⅴ视频| 欧美日韩精品免费| 国产精品2024| 图片区小说区国产精品视频| 精品国产三级a在线观看| av亚洲精华国产精华| 天天综合色天天综合| 国产偷v国产偷v亚洲高清| 欧美自拍偷拍一区| 国产精品亚洲成人| 丝袜亚洲精品中文字幕一区| 国产日韩av一区| 欧美三级韩国三级日本三斤| 国产精品自产自拍| 亚洲午夜激情网站| 中文字幕巨乱亚洲| 欧美一区二区三区在| 色天天综合色天天久久| 国产美女精品人人做人人爽| 亚洲国产欧美一区二区三区丁香婷| 久久精品日韩一区二区三区| 欧美日韩在线一区二区| 成人黄色小视频在线观看| 久久精品国产久精国产爱|