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

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

?? armtrap.s

?? 可用于嵌入式編程學習
?? S
?? 第 1 頁 / 共 5 頁
字號:
        TTL ARM Interrupt and Exception Processing
;-------------------------------------------------------------------------------
;++
;
; Copyright (c) 1997-2000 Microsoft Corporation.  All rights reserved.
;
; Module Name:
;
;    armtrap.s
;
; Abstract:
;
;    This module implements the code necessary to field and process ARM
;    interrupt and exception conditions.
;
;    WARNING: This module executes in KSEG0 and, in general, cannot
;       tolerate a TLB Miss. Registers k0 and k1 are used during initial
;       interrupt and exception processing, and therefore, extreme care must
;       be exercised when modifying this module.
;
; Environment:
;
;    Kernel mode only.
;
;--
;-------------------------------------------------------------------------------
        OPT     2       ; disable listing
        INCLUDE ksarm.h
        OPT     1       ; reenable listing




;;; P2 h/w defines
  IF {TRUE}
HKEEP_FPGA_REGS_BASE    EQU     0xA4000000      ; housekeeping FPGA reg base
LED_ALPHA       EQU     HKEEP_FPGA_REGS_BASE+0x00060000
LED_DISCRETE    EQU     HKEEP_FPGA_REGS_BASE+0x00040000
SPIN_DELAY      EQU     0x40000
  ENDIF

BANK_SIZE EQU   0x00100000      ; 1MB per bank in MemoryMap table
BANK_SHIFT EQU  20

        MACRO
        BREAKPOINT
        DCD     0xE6000010      ; special undefined instruction
        MEND

; Resister save frame for Code Aborts, Data Aborts and IRQs.
FrameR0 EQU     0
FrameR1 EQU     4
FrameR2 EQU     8
FrameR3 EQU     12
FrameR12 EQU    16
FrameLR EQU     20

; Def(1) to allow ARM to test 920 kernel as 720. Undef(0) for real life.
ARM920_HACK EQU 0

; High memory layout:
;       FFFD0000 - first level page table (uncached) (2nd half is r/o)
;       FFFD4000 - second level page tables (uncached)
;       FFFE0000 - disabled for protection
;       FFFF0000 - exception vectors
;       FFFF03E0 - exception vector jump table
;       FFFF0400 - not used (r/o)
;       FFFF1000 - disabled for protection
;       FFFF2000 - r/o (physical overlaps with vectors)
;       FFFF2400 - Interrupt stack (1k)
;       FFFF2800 - r/o (physical overlaps with Abort stack)
;       FFFF3000 - disabled for protection
;       FFFF4000 - r/o (physical memory overlaps with vectors & intr. stack & FIQ stack)
;       FFFF4900 - Abort stack (2k - 256 bytes)
;       FFFF5000 - disabled for protection
;       FFFF6000 - r/o (physical memory overlaps with vectors & intr. stack)
;       FFFF6800 - FIQ stack (256 bytes)
;       FFFF6900 - r/o (physical memory overlaps with Abort stack)
;       FFFF7000 - disabled
;       FFFFC000 - kernel stack
;       FFFFC800 - KDataStruct
;       FFFFCC00 - r/o for protection (2nd level page table for 0xFFF00000)

        ^ 0xFFFD0000
FirstPT         # 0x4000
PageTables      # 0x4000
                # 0x8000
                # 0x10000       ; not mapped
ExVector        # 0x1000
                # 0x1400        ; not mapped
                # 0x0400        ; 1K interrupt stack
IntStack        # 0x2000        ; not mapped                    (ffff2800)
                # 0x0100        ; not mapped (FIQ stack)        (ffff4800)
                # 0x0700        ; 2K-256 abort stack            (ffff4900)
AbortStack      # 0x1800        ; not mapped                    (ffff5000)
                # 0x0100        ; not mapped (FIQ stack)        (ffff6800)
FIQStack        # 0xC000-0x6900 ; not mapped                    (ffff6900)
KDBase          # 0x07E0        ; 2K-32 kernel stack
KStack          # 0x0020        ; temporary register save area
KData           # 0x400         ; kernel data area


;* .KDATA area is used to reserve physical memory for the above structures.
        AREA |.KDATA|,DATA,NOINIT
KDataArea
PTs     %       0x4000          ; space for first-level page table
        %       0x4000          ; space for 2nd-level page tables
Vectors %       0x0400          ; space for exception vectors
        %       0x0400          ; space for interrupt stack
        %       0x0100          ; space for FIQ stack
        %       0x0700          ; space for Abort stack
KPage   %       0x0c00          ; space for kernel stack & KDataStruct
HighPT  %       0x0400          ; space for 2nd level page table to map 0xFFF00000
KDEnd   %       0


        MACRO
        mtc15   $cpureg, $cp15reg
        mcr     p15,0,$cpureg,$cp15reg,c0,0
        MEND

        MACRO
        mfc15   $cpureg, $cp15reg
        mrc     p15,0,$cpureg,$cp15reg,c0,0
        MEND



        MACRO
        WRITELED $val
  IF {FALSE}
        stmfd   sp!, {r0-r1}
        ldr     r0, =LED_ALPHA
        ldr     r1, $val
        str     r1, [r0]
        ldmfd   sp!, {r0-r1}
  ENDIF
        MEND

        MACRO
        WRITELED_REG $reg
  IF {FALSE}
        stmfd   sp!, {r0}
        ldr     r0, =LED_ALPHA
        str     $reg, [r0]
        ldmfd   sp!, {r0}
  ENDIF
        MEND



  IF Thumbing

    MACRO
    CALL $Fn
    ldr     r12, =$Fn
    mov     lr, pc
    bx      r12
    MEND

    MACRO
    CALLEQ $Fn
    ldreq   r12, =$Fn
    moveq   lr, pc
    bxeq    r12
    MEND

    MACRO
    RETURN
    bx      lr
    MEND

    MACRO
    RETURN_EQ
    bxeq    lr
    MEND

    MACRO
    RETURN_NE
    bxne    lr
    MEND

  ELSE

    MACRO
    CALL $Fn
    bl      $Fn
    MEND

    MACRO
    CALLEQ $Fn
    bleq    $Fn
    MEND

    MACRO
    RETURN
    mov     pc, lr
    MEND

    MACRO
    RETURN_EQ
    moveq   pc, lr
    MEND

    MACRO
    RETURN_NE
    movne   pc, lr
    MEND

  ENDIF

        AREA |.data|, DATA

        TEXTAREA
        IMPORT  ObjectCall
        IMPORT  ServerCallReturn
        IMPORT  LoadPageTable
        IMPORT  HandleException
        IMPORT  NextThread
        IMPORT  ExceptionDispatch
        IMPORT  OEMInterruptHandler
        IMPORT  OEMInterruptHandlerFIQ
        IMPORT  ARMInit
        IMPORT  KernelInit
        IMPORT  idleconv
        IMPORT  TLBClear
        IMPORT  OEMARMCacheMode

  IF CELOG
        IMPORT  CeLogInterrupt
        IMPORT  CELOG_ThreadMigrateARM
  ENDIF

  IF ARM920_HACK <> 1
  IF _TGTCPU = "ARM720"
        IMPORT  OEMDataAbortHandler
  ENDIF
  ENDIF

  IF {FALSE}
        IMPORT  WhereAmI
        IMPORT  WriteHex
        IMPORT  WriteByte
        IMPORT  PutHex
  ENDIF



;-------------------------------------------------------------------------------
; KernelStart - kernel main entry point
;
;       The OEM layer will setup any platform or CPU specific configuration that is
; required for the kernel to have access to ROM and DRAM and jump here to start up
; the system. Any processor specific cache or MMU initialization should be completed.
; The MMU and caches should not enabled.
;
;       This routine will initialize the first-level page table based up the contents of
; the MemoryMap array and enable the MMU and caches.
;
; NOTE: Until the MMU is enabled, kernel symbolic addresses are not valid and must be
;       translated via the MemoryMap array to find the correct physical address.
;
;       Entry   (r0) = pointer to MemoryMap array in physical memory
;       Exit    returns if MemoryMap is invalid
;-------------------------------------------------------------------------------
        LEAF_ENTRY KernelStart


        mov     r11, r0                         ; (r11) = &MemoryMap (save pointer)
        ldr     r9, =PTs                        ; (r9) = "virtual address" of 1st level table

        ldr     r7, =0x1FF00000                 ; VA needs 512MB, 1MB aligned.
        ldr     r8, =0xFFF00000                 ; PA needs   4GB, 1MB aligned.

        and     r6, r9, r7                      ; (r6) = KDATA Virtual Address (1MB)

        mov     r1, r11                         ; (r1) = ptr to MemoryMap array

5       ldr     r2, [r1], #4                    ; (r2) = virtual address to map Bank at
        ldr     r3, [r1], #4                    ; (r3) = physical address to map from
        ldr     r4, [r1], #4                    ; (r4) = num MB to map

        cmp     r4, #0                          ; End of table?
        moveq   pc, lr                          ; RETURN!!!! INVALID MEMORY MAP. NO MAPPING FOR KDATA AREA!

        and     r2, r2, r7                      ; VA needs 512MB, 1MB aligned.
        and     r3, r3, r8                      ; PA needs 4GB, 1MB aligned.

        ;
        ; For each MB in this table entry, compare with KDATA Virtal Address...
        ;
8
        cmp     r2, r6                          ; KDATA VA = Section VA?
        beq     %F9                             ; Found it!!! (r3) is the PA

        add     r2, r2, #0x00100000             ; (r2) = VA + 1MB
        add     r3, r3, #0x00100000             ; (r3) = PA + 1MB

        sub     r4, r4, #1                      ; Decrement number of MB left
        cmp     r4, #0
        bne     %B8                             ; Map next MB

        b       %B5                             ; Get next element


9
        mov     r4, r9
        mov     r1, r3

;       Found MemoryMap entry for .KDATA section which contains the kernel data page,
; the first-level page table, exception vector page, etc.
;
;       (r1) = base address of bank
;       (r4) = virtual address of FirstPT
;       (r11) = ptr to MemoryMap array

15      mov     r10, #BANK_SIZE
        sub     r10, r10, #1                    ; (r10) = mask for offset
        and     r10, r10, r4                    ; (r10) = offset into bank for FirstPT
        orr     r10, r10, r1                    ; (r10) = ptr to FirstPT

;       Zero out page tables & kernel data page

        mov     r0, #0                          ; (r0-r3) = 0's to store
        mov     r1, #0
        mov     r2, #0
        mov     r3, #0
        mov     r4, r10                         ; (r4) = first address to clear
        add     r5, r10, #KDEnd-PTs             ; (r5) = last address + 1
18      stmia   r4!, {r0-r3}
        stmia   r4!, {r0-r3}
        cmp     r4, r5
        blo     %B18

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线观看免费视频| 国产午夜亚洲精品理论片色戒| 欧美精三区欧美精三区| 久久这里只有精品首页| 亚洲成人一二三| 99久久婷婷国产综合精品| 欧美一区二区三区视频在线| 亚洲女与黑人做爰| 国产成人免费视频网站 | 美腿丝袜亚洲综合| 97精品视频在线观看自产线路二| 欧美大胆人体bbbb| 婷婷激情综合网| 色婷婷亚洲综合| 欧美高清在线视频| 国产一区二区不卡| 欧美成人精品3d动漫h| 亚洲第一狼人社区| 欧美三片在线视频观看| 一区二区三区四区高清精品免费观看 | 另类小说一区二区三区| 欧美日韩在线综合| 亚洲午夜在线观看视频在线| voyeur盗摄精品| 国产精品久久久久9999吃药| 国产一区二区视频在线播放| 日韩免费视频一区| 韩国女主播成人在线观看| 日韩一区二区免费电影| 蜜桃av一区二区三区| 91精品国产一区二区三区蜜臀| 亚洲欧美区自拍先锋| 91在线播放网址| 伊人开心综合网| 欧美三级在线视频| 美腿丝袜亚洲一区| 久久精品日产第一区二区三区高清版| 精品一区二区影视| 久久蜜桃av一区精品变态类天堂| 黄色日韩三级电影| 国产日韩精品视频一区| 成人永久aaa| 亚洲日本欧美天堂| 欧美日韩国产在线观看| 美国av一区二区| 欧美精品一区二区高清在线观看| 国产尤物一区二区| 一区在线中文字幕| 欧美伊人精品成人久久综合97| 午夜精品爽啪视频| 26uuu亚洲婷婷狠狠天堂| 国产精品乡下勾搭老头1| 国产精品色婷婷久久58| 一本色道亚洲精品aⅴ| 亚洲无人区一区| 欧美电影免费观看高清完整版 | 久久蜜桃一区二区| 99国产精品一区| 亚洲 欧美综合在线网络| 日韩欧美在线123| 国产91丝袜在线播放九色| 亚洲欧美在线aaa| 欧美色精品在线视频| 国内外精品视频| 亚洲精品一二三区| 欧美r级在线观看| 成人av高清在线| 日韩精品91亚洲二区在线观看 | 亚洲激情在线播放| 欧美日韩亚洲综合在线| 精品一区二区三区免费播放| 亚洲视频在线一区观看| 7777精品伊人久久久大香线蕉经典版下载 | 欧美精品视频www在线观看| 国产在线播放一区三区四| 天天综合日日夜夜精品| 久久这里只有精品6| 欧洲生活片亚洲生活在线观看| 日本欧美在线观看| 亚洲日韩欧美一区二区在线| 日韩一区二区中文字幕| 99九九99九九九视频精品| 久久精品72免费观看| 亚洲乱码国产乱码精品精可以看| 日韩精品一区二区三区视频播放| 色94色欧美sute亚洲13| 国产尤物一区二区在线| 日韩精品1区2区3区| 亚洲日本电影在线| 国产日韩视频一区二区三区| 91精品国产色综合久久ai换脸 | 久久精品欧美日韩精品| 在线观看亚洲精品| 不卡av免费在线观看| 国产麻豆精品theporn| 天天色图综合网| 亚洲另类在线一区| 国产精品免费av| 精品久久久久久亚洲综合网| 91精品国产色综合久久| 欧美久久久久久蜜桃| 91激情五月电影| 99精品国产99久久久久久白柏 | 亚洲视频一二区| 国产欧美综合在线| 久久先锋影音av鲁色资源| 日韩欧美一区在线| 日韩三级视频中文字幕| 日韩一区二区在线看片| 欧美绝品在线观看成人午夜影视| 色狠狠色噜噜噜综合网| 91亚洲精品久久久蜜桃网站 | 国产精品拍天天在线| 精品久久国产字幕高潮| 欧美精品一区二区高清在线观看 | 精品一区二区三区视频| 久久精品免费观看| 91九色最新地址| 色呦呦国产精品| 色一情一乱一乱一91av| 91久久奴性调教| 欧美亚洲国产怡红院影院| 欧美日韩的一区二区| 欧美精品高清视频| 日韩欧美黄色影院| 久久久久久一二三区| 中文在线一区二区| 亚洲女人的天堂| 日韩专区中文字幕一区二区| 日韩精品视频网| 国产精品一区一区三区| 成人午夜激情片| 欧美三级在线播放| 精品国产精品网麻豆系列| 国产日韩欧美综合一区| 亚洲精品美腿丝袜| 日韩精品一区第一页| 国产精品原创巨作av| 91精彩视频在线观看| 欧美精品第1页| 国产午夜精品美女毛片视频| 日韩伦理电影网| 日韩二区三区四区| 成人黄色小视频| 欧美三级韩国三级日本三斤| 精品国产百合女同互慰| 成人欧美一区二区三区黑人麻豆 | 99久久精品免费看| 欧美乱妇15p| 国产日产精品一区| 日韩高清不卡在线| 波多野结衣在线一区| 国产清纯美女被跳蛋高潮一区二区久久w| 成人免费在线观看入口| 亚洲二区视频在线| 国产成人av一区二区三区在线观看| 91蜜桃视频在线| 欧美精品一区二区三区蜜臀| 一区二区三区在线免费视频| 精品一区二区三区免费播放| 色婷婷精品大视频在线蜜桃视频| 91精品国产aⅴ一区二区| 最新欧美精品一区二区三区| 日本sm残虐另类| 91久久一区二区| 欧美激情一区二区三区四区| 性做久久久久久| 91麻豆高清视频| 久久久久久久性| 日韩成人午夜电影| 欧美影院午夜播放| 国产精品久久久久久亚洲毛片 | 欧美日韩在线不卡| 欧美激情综合在线| 青青青爽久久午夜综合久久午夜 | 日韩女同互慰一区二区| 一区二区三区在线视频播放| 国产成人99久久亚洲综合精品| 欧美片网站yy| 亚洲精品自拍动漫在线| 丁香天五香天堂综合| 日韩精品综合一本久道在线视频| 亚洲小说春色综合另类电影| 99精品偷自拍| 国产精品久久二区二区| 国产大陆a不卡| 久久久不卡网国产精品二区| 美女被吸乳得到大胸91| 欧美一区二区女人| 琪琪久久久久日韩精品| 欧美中文字幕不卡| 亚洲国产另类av| 91麻豆精品一区二区三区| 亚洲日本一区二区| 91香蕉视频mp4| 亚洲美腿欧美偷拍| 在线观看一区二区视频| 亚洲国产日韩在线一区模特| 在线一区二区三区四区五区| 亚洲老司机在线|